在多级NAT上做回程静态路由——实现访问inside内的主机

瘦欲@ 提交于 2019-12-04 22:31:57


我们知道做NAT后,对于outside上行出口的网络来说,inside下行的网络是个未知数。那么如何才能直接访问inside内的网段IP呢??

我们选择从一级nat路由器router2上ping192.168.100.2,结果肯定是Reply from 192.168.1.1: Destination host unreachable.

这是因为router2上没有路由达到192.168.100.X的原因。

为此我们在router2上添加路由ip route 192.168.100.0 255.255.255.0 192.168.1.10          ip route 192.168.200.0 255.255.255.0 192.168.200.20

在router6上添加ip route192.168.100.0 255.255.255.0 192.168.200.20


到这里一级NAT路由器已经有到达192.168.100.X网段了,并且又由于各NAT路由器上都做有默认的出口路由。因此我们可以知道在各NAT路由器上不做NAT技术的话,他们之间已经是个互通网段的局域网了的。但我们在这个互通的局域网上做NAT技术,将会怎么样呢?它们还是互通的吗?如果互通时它们的数据包做NAT还是不做NAT通信了?


在pc3上ping 192.168.1.1通过在各NAT路由器上的debug ip packat和debug ip nat 显示可知,前往与回应都做了相应的地址转换。这在前面的博客已经细解。可以看出回应包没有选择使用回程的静态路由ip route 192.168.100.0 255.255.255.0 192.168.1.10          ip route 192.168.200.0 255.255.255.0 192.168.200.20等,因为回应包的目标IP是变化转换的,其目标地址总是下行NAT路由器的outside的IP地址。


那么是不是意味着我们之前在NAT路由器上配置的静态路由没用处了呢?

我们在router2上ping 192.168.100.2

router2上ping的debug显示数据包(绿色字体表示前往,蓝色字体表示回应)

Router2#ping 192.168.100.2


IP: tableid=0, s=192.168.1.1 (local), d=192.168.100.2 (FastEthernet0/0), routed via RIB         (前往目标查找路由表)


IP: s=192.168.1.1 (local), d=192.168.100.2 (FastEthernet0/0), len 128, sending              (数据包转发出去)

!
IP: tableid=0, s=192.168.1.10 (FastEthernet0/0), d=192.168.1.1 (FastEthernet0/0), routed via RIB    (回应包在路由表)


IP: s=192.168.1.10 (FastEthernet0/0), d=192.168.1.1 (FastEthernet0/0), len 128, rcvd 3              (表示收到回应包)



route6上debug显示数据包的情况(绿色字体表示前往,蓝色字体表示回应)

Router6#

IP: tableid=0, s=192.168.1.1 (FastEthernet0/0), d=192.168.100.2 (FastEthernet0/1), routed via RIB


IP: s=192.168.1.1 (FastEthernet0/0), d=192.168.100.2 (FastEthernet0/1), g=192.168.200.20, len 128, forward



IP: tableid=0, s=192.168.200.20 (FastEthernet0/1), d=192.168.1.1 (FastEthernet0/0), routed via RIB


IP: s=192.168.200.20 (FastEthernet0/1), d=192.168.1.1 (FastEthernet0/0), g=192.168.1.1, len 128, forward


NAT: s=192.168.200.20->192.168.1.10, d=192.168.1.1 [24]


可知在router6前往inside主机192.168.100.2时,直接使用默认路由且没有NAT技术;而回应数据包中则做了NAT转换。


router4上debug显示数据包的情况(绿色字体表示前往,蓝色字体表示回应)

router4#

IP: tableid=0, s=192.168.1.1 (FastEthernet0/0), d=192.168.100.2 (FastEthernet0/1), routed via RIB


IP: s=192.168.1.1 (FastEthernet0/0), d=192.168.100.2 (FastEthernet0/1), g=192.168.100.2, len 128, forward



IP: tableid=0, s=192.168.100.2 (FastEthernet0/1), d=192.168.1.1 (FastEthernet0/0), routed via RIB


IP: s=192.168.100.2 (FastEthernet0/1), d=192.168.1.1 (FastEthernet0/0), g=192.168.1.1, len 128, forward


NAT: s=192.168.100.2->192.168.200.20, d=192.168.1.1 [28]


从router4输出显示可知其数据包过程实现与router6是一样的。



总结:

1、NAT路由器以及outside上行设备没有回程指向inside的下行静态路由时,outside的上行网络无法访问inside下行网络的。

2、NAT路由器以及outside上行设备都配置回程指向inside的下行静态路由后。inside下行网络访问outside上行网络时,前往与回应过程都有NAT转换;outside上行网络访问inside下行网络(直接ping   inside的下行ip)时,前往是没有nat转换的,回应时使用了nat(就像inside网络ping的outside的ip的前往过程)。





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!