路由表在家庭组网中的应用

在家庭局域网的组建中,我们经常会用到两个以上的路由器,一台路由器物理放置在入户线缆附近,使用PPPoE拨号连接互联网,另一台路由,另一台路由器物理放置在家的另一头,作为client连接上一台路由器来增强无线覆盖。网络拓扑图如下:

如图,绝大部分时候 路由器B 是作为 路由器A 的客户端( Client )存在于局域网中的,路由器B 再进行NAT以使 电脑B 可以连接互联网。

由此,局域网中就存在两个NAT路由器,电脑B可以直接访问电脑A的服务,但是电脑A取无法访问电脑B的服务。因为,路由器B 作为NAT路由器隔断了两台电脑的连接,电脑A 无法主动向隐藏在 路由器B 后方的 电脑B 发起连接,只能被动接受 电脑B 的请求。

如何解决 电脑A电脑B 之间相互访问的问题,就是本文的主要内容

解决方法其实多种多样:

1.可以关掉 路由器B 的路由功能,使其作为交换机存在于局域网
2.设置 路由器A 的路由表,将子网192.168.100.0/24的路由指向 路由器B
3.作为上一个方案的替代(有些路由器不支持修改路由表)。设置 路由器A 下的所有设备的路由表,将子网192.168.100.0/24的路由指向 路由器B

我自己使用的方案二,快速直接,暂时没发现副作用。

配置

现在以第三方Padavan路由器固件为例进行设置。路由器刷机相关文章请看这里

路由器A

将子网设置成192.168.1.0/24
在 路由器后台->内部网络->路由设置 中添加静态路由

注意保存设置

路由器B

将路由器模式设置为静态IP模式,IP设置为192.168.10.100/24

关闭路由器的NAT和Firewalls(防火墙)

原理

NAT外的设备无法访问NAT后的设备归根到底是不知道NAT后设备的IP地址和数据包不知道该发向何处。如果不加入静态路由,电脑A(192.168.10.202/24)发给 电脑B(192.168.100.161/24)的数据包到达 默认网关路由器A(192.168.10.1/24)后,由于目的IP是保留IP故数据包不会被送出NAT,加入静态路由后,路由器A就知道了数据包的下一跳地址。目的地址是 电脑B(192.168.100.161/24)的数据包在送到 路由器B(192.168.10.100/24,192.168.100.1/24)之后,由于是自己子网的IP,故路由器B可以根据默认路由表继续转发。

数据包路径
电脑A -> 路由器A -> 路由器B -> 电脑B

进阶

研究NAT、Firewalls和静态路由对本方案的影响(电脑端阅读效果最佳)

路由器A静态路由 路由器B 的NAT 路由器B的Firewalls 电脑A ping 电脑B 电脑B ping 电脑A 电脑A访问电脑B的Web server 电脑B访问电脑A的Web server
ON ON ON 不通 不通 通(日志显示192.168.10.100)
ON ON OFF 通(日志显示192.168.10.100)
ON OFF ON 取决于是否开启“响应外部ping”,见下表三、四行 不通 通(日志显示192.168.100.161)
ON OFF OFF 通(日志显示192.168.100.161)
OFF ON ON 不通 不通 通(日志显示192.168.10.100)
OFF ON OFF 不通 不通 通(日志显示192.168.10.100)
OFF OFF ON 不通 不通 不通 半通(日志有请求记录(192.168.100.161),但客户端无法接收回复)
OFF OFF OFF 不通 不通 不通 半通(日志有请求记录(192.168.100.161),但客户端无法接收回复)

路由器Firewalls是否开启响应外部ping对连通状态的影响

路由器A静态路由 路由器B 的NAT 路由器B的Firewalls 路由器B的Firewalls(是否响应外部ping) 电脑A ping 电脑B
ON ON ON 响应外部ping 不通
ON ON ON 不响应外部ping 不通
ON OFF ON 响应外部ping
ON OFF ON 不响应外部ping 不通

路由表在家庭组网中的应用

https://blog.zscself.com/posts/e98b4ab4/

作者

F!redent

发布于

2017-12-01

更新于

2021-12-15

许可协议

CC BY-NC-SA 4.0

评论