【发布时间】:2014-08-30 04:04:01
【问题描述】:
我有一个带有三个网络接口的系统。下面是我正在尝试设置的配置。 wlan0(它实际上是一个 WiFi AP 接口) - 其他设备通过此接口连接。 net1 - 面向互联网的接口,必须链接到 wlan0 才能为通过 wlan0 连接的设备提供互联网服务。 net0 - 面向受限互联网访问的接口,仅回答来自该子网内的请求的查询。
默认接口是 net0 及其网关。 ip route show 的输出如下所示:
default via 10.228.103.241 dev net0
10.228.103.240/30 dev net0 src 10.228.103.242
现在我想在表 7 中查找所有对 eth0 和 net1 的请求的路由规则。所以我创建了如下的 ip 规则: EDIT AFTER RESPONSE:
0: from all lookup local
255: from 8.8.0.0/16 lookup iTbl
256: from 192.168.225.1 lookup iTbl
257: from 192.168.172.2 lookup iTbl
32758: from all lookup main
32767: from all lookup default
8.8.0.0 用于名称服务器。它列为 iTbl 是因为我在 /etc/iproute2/rt_tables 中将 7 定义为 iTbl。
表 7 的 ip route show 如下所示:
default via 192.168.172.3 dev net1
8.8.0.0/16 via 192.168.172.3 dev net1
192.168.172.0/24 dev net1 src 192.168.172.2
192.168.225.0/24 dev wlan0 src 192.168.225.1
最后我的 iptables 看起来像这样:
iptables -nvL
Chain INPUT (policy ACCEPT 245 packets, 49904 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3 180 ACCEPT all -- wlan0 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 190 packets, 19182 bytes)
pkts bytes target prot opt in out source destination
iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 22 packets, 2205 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 21 packets, 2145 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 91 packets, 7782 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 90 packets, 7226 bytes)
pkts bytes target prot opt in out source destination
2 616 MASQUERADE all -- * net1 0.0.0.0/0 0.0.0.0/0
当我将设备连接到 wlan0 接口并尝试浏览互联网时,tcpdump 显示来自 wlan0 的所有请求似乎都通过 net0,实际上它必须通过 net1。我阅读了许多帖子和论坛。在尝试了不同的事情后,我无法解决问题。我无法理解哪里出了问题。从 tcpdump 和逻辑上看,似乎对表 7 的 ip 规则查找不起作用。请帮助检查是否需要更正任何规则。
【问题讨论】:
标签: networking routing routes ip iptables