nat程序设计(带你做NAT转换小实验)
nat程序设计(带你做NAT转换小实验)R1#debug ip nat让我们在R1上启用NAT调试 这样我们就可以看到nat在工作中数据包中的源目IP地址如何转换的下面和大家介绍下外部源地址和内部源地址有何区别:拓扑:在H1和H2上禁用路由 它们将使用R1作为其默认网关.在H1丶H2丶R1上分别配置IP地址 并在R1上的GI0/1配置ip nat inside和GI0/2配置ip nat outside。
网络地址转换技术
NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能.当局域网内的主机需要访问外部网络时 通过NAT技术可以将其私网地址转换为公网地址 并且多个私网用户可以共用一个公网地址 这样既证网络互通 又节省了公网地址
大家在做实验的时候常做内部IP源的转换也就是
IP nat inside source
下面和大家介绍下外部源地址和内部源地址有何区别:
拓扑:
在H1和H2上禁用路由 它们将使用R1作为其默认网关.在H1丶H2丶R1上分别配置IP地址 并在R1上的GI0/1配置ip nat inside和GI0/2配置ip nat outside。
让我们在R1上启用NAT调试 这样我们就可以看到nat在工作中数据包中的源目IP地址如何转换的
R1#debug ip nat
IP NAT debugging is on
我们先进行ip nat inside source的实验
让我们从ip nat inside source我们最熟悉的命令开始.我将配置一个将192.168.1.1转换为192.168.2.200的条目:
R1(config)#ip nat inside source static 192.168.1.1 192.168.2.200
我们从H1发送ping到192.168.2.2
H1#ping 192.168.2.2 repeat 1
Type escape sequence to abort.
Sending 1 100-byte ICMP Echos to 192.168.2.2 timeout is 2 seconds:
!
Success rate is 100 percent (1/1) round-trip min/avg/max = 4/4/4 ms
现在在R1上查看nat的调试:
R1#
NAT*: s=192.168.1.1->192.168.2.200 d=192.168.2.2 [3]
NAT*: s=192.168.2.2 d=192.168.2.200->192.168.1.1 [3]
从调试中我们看出:
当IP数据包从内部传播到外部时,源IP地址192.168.1.1被转换为192.168.2.200。
当返回IP数据包从外部传播到内部时,目标IP地址192.168.2.200被转为192.168.1.1。
我们也可以去试试H2的ping 让我们看看当我们ping192.168.2.200会发生什么:
H2#ping 192.168.2.200 repeat 1
Type escape sequence to abort.
Sending 1 100-byte ICMP Echos to 192.168.2.200 timeout is 2 seconds:
Success rate is 100 percent (1/1) round-trip min/avg/max = 5/5/5 ms
在R1生成以下调试输出:
R1#
NAT*:s=192.168.2.2 d=192.168.2.200>192.168.1.1 [8]
NAT*:s=192.168.1.1->192.168.2.200 d=192.168.2.2 [8]
从这块可以看出:
当IP数据包从外部传输到内部时,目标IP地址从192.168.2.200转换为192.168.1.1。
当返回IP数据包从内部传播到外部时,源IP地址从192.168.1.1转换为192.168.2.200
再来看看ip nat outside source命令式如何工作的 我将使用一下命令:
R1(config)#ip nat outside source static 192.168.2.2 192.168.2.200
让我们尝试从H2到192.168.1.1的ping:
H2#ping 192.168.1.1 repeat 1
Type escape sequence to abort.
Sending 1 100-byte ICMP Echos to 192.168.1.1 timeout is 2 seconds:
Success rate is 100 percent (1/1) round-trip min/avg/max = 8/8/8 ms
我们在R1上看到以下NAT转换:
R1#
NAT:s=192.168.2.2->192.168.2.200 d=192.168.1.1 [9]
NAT:s=192.168.1.1 d=192.168.2.200->192.168.2.2 [9]
当IP数据包从外部传播到内部时,源IP地址192.168.2.2被转换为192.168.2.200。
当返回IP数据包从内部传播到外部时,目标IP地址192.168.2.200被转换为192.168.2.2。
从H1到192.168.2.200的ping怎么样?
H1#ping 192.168.2.200 repeat 1
Type escape sequence to abort.
Sending 1 100-byte ICMP Echos to 192.168.2.200 timeout is 2 seconds:
Success rate is 100 percent (1/1) round-trip min/avg/max = 6/6/6 ms
这是R1上的调试:
R1#
NAT: s=192.168.1.1 d=192.168.2.200->192.168.2.2 [11]
NAT*: s=192.168.2.2->192.168.2.200 d=192.168.1.1 [11]
结论:
当IP数据包从内部传播到外部时,目标IP地址192.168.2.200被转换为192.168.2.2。
当返回IP数据包从外部传播到内部时,源IP地址192.168.2.2被转换为192.168.2.200。
其实只要理解inside和outside中数据包中的源目IP地址的转换就行.还有就是思科的路由器起了NAT之后 从内部到外部是先路由再NAT 从外部到内部是先NAT再路由.我这里做的实验不能够充分说明路由的概念 大家可以多加几台路由器进行实验.也可以利用ip nat inside和ip nat outside做一下双向nat实验.
总结来说这两者的区别:
ip nat inside source:
· 当数据包从内部传播到外部时,转换源IP地址。
· 当数据包从外部传播到内部时,转换目标IP地址。
ip nat outside source
· 当数据包从外部传播到内部时,转换源IP地址。
· 当数据包从内部传播到外部时,转换目标IP地址。
更多相关知识 请关注官方公众号:网络工程师集中营(Tiger_lab)
回复“资料”即可免费获得太阁独家网工入门视频包