检查内核参数
|
|
检查通性
用 ping 来检查软路由到相关服务器之间是否通。
检查网络包流程
在软路由上用 tcpdump 排查以下几个问题:
- Does the outbound connection request reach the router?
- Does the router forward the request onto the other network?
- Does the reply reach the router?
- Does the router forward the reply back onto the original network?
如果 1 和 3 有问题,则说明问题和 IP Forwarding 无关。
如果 2 和 4 有问题,则有以下几个可能:
- forwarding has not been switched on;
- the output interface has not been correctly configured;
- there is an error in the routing table; or
- the traffic is being dropped by a firewall, iptables.
前两种可能应该在之前的步骤排除掉了,
检查路由规则
利用 ip 工具在软路由上测试路由规则:
|
|
上面的命令用来测试一个从 eth0 网卡进来的,来自 192.168.0.2 的包,要去 198.51.100.1 会走哪个网卡出去,转发给哪个网关。
比如结果:
|
|
检查防火墙
需要结合 iptables 的知识一起看。
检查 filter
table 的规则:
|
|
nat
和 mangle
表也有可能把包丢弃,所以也检查一下:
|
|
也可以通过观察 Rule 的网络包计数来观察哪个规则丢器了包:
先将网络包计数清零:
|
|
然后 ping
测试,同时观察网络包计数器:
|
|
如果某个规则丢弃的Forward网络包,你可能会看到类似这样的结果:
|
|
说明有 6 个包被这条规则给丢弃了。
评论