我搞了个软路由,
eth0 是 WAN 口,也就是上行链路
eth1 是 LAN 口,开启 DHCP 开启各项服务, 192.168.3.233
网上教程让开启 NAT 输入下面一句话:
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE
游戏电脑接了 eth1 ,现在可以正常上网,没什么问题
可是我有个疑问:
比如我的 DNS 请求,是不是也要通过 NAT 从 eth1 转到 eth0 才能响应呢?
那如果有些服务我不想在 eth0 上,我就不想让 eth1 给我做 NAT ,那个 iptables 规则怎么写啊?
我不知道是走 filter 的 forward 还是走 nat 表的 prerouting
1
privil 2017-02-18 13:54:44 +08:00
怎么说呢,你的 dns 请求是外部的话,肯定走 nat ,当你请求是内部的话压根就不过 nat 表,你去看看表链的图示,理解一下就知道了。想重定向的话是 dnat ,在 nat 表的 prerouting 做。
|
2
whx20202 OP |
3
whx20202 OP @privil
好像确实是这样 C:\Users\ruirui>tracert 192.168.3.233 通过最多 30 个跃点跟踪到 192.168.3.233 的路由 1 5 ms 4 ms 4 ms 192.168.3.233 跟踪完成。 C:\Users\ruirui>tracert 8.8.8.8 通过最多 30 个跃点跟踪 到 google-public-dns-a.google.com [8.8.8.8] 的路由: 1 5 ms 4 ms 4 ms 192.168.3.233 2 5 ms 5 ms 5 ms 192.168.2.1 3 6 ms 5 ms 7 ms 192.168.1.1 |
4
privil 2017-02-18 14:04:40 +08:00
@whx20202 你请求的是 192.168.3.233 的 53 端口, prerouting 过后,就是路由判断,请求是本机,就进入本机 input 了,不是本机,就是去 forward 了
|
5
Sh888 2017-02-18 14:38:40 +08:00
你的命令里不是写着-s -o 么?
|
6
julyclyde 2017-02-19 09:43:16 +08:00
首先你要知道,“是否转发”不是 NAT 控制的,而是 FILTER 控制的
|