谢聪
第6章:路由器实用配置 路由器NAT配置 1 NAT的概念和工作原理 1、NAT的概念 NAT(Network Address Translation,网络地址转换)是将IP 数据报头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP 地址空间的枯竭。 说明: 私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。 RFC 1918 为私有网络预留出了三个IP 地址块,如下: A 类:10.0.0.0~10.255.255.255 B 类:172.16.0.0~172.31.255.255 C 类:192.168.0.0~192.168.255.255 上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。 2
第6章:路由器实用配置 路由器NAT配置 1 NAT的概念和工作原理 2、NAT工作原理 ①如右图这个 client 的 gateway 设定为 NAT 主机, 所以当要连上 Internet 的时候,该封包就会被送到 NAT 主机了,这个时候的封包 Header 之 source IP 为 192.168.1.100 ; ②而透过这个 NAT 主机,它会将 client 的对外联机 封包的 source IP ( 192.168.1.100 ) 伪装成 ppp0 ( 假设为拨接情况 )这个接口所具有的公共 IP ,因 为是公共 IP 了,所以这个封包就可以连上 Internet 了!同时 NAT 主机并且会记忆这个联机的封包是由 哪一个 ( 192.168.1.100 ) client 端传送来的; ③由 Internet 传送回来的封包,当然由 NAT 主 机来接收了,这个时候 NAT 主机会去查询原本记 录的路由信息,并将目标 IP 由 ppp0 上面的公共 IP 改回原来的 192.168.1.100 ; ④最后则由 NAT 主机将该封包传送给原先发送 封包的 Client ! 3
第6章:路由器实用配置 路由器NAT配置 3、NAT技术实现方式 静态转换:是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。 动态转换:是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。 4
路由器NAT配置 2 任务目标
RA路由器 Router>en Router#conf Router(config)#hostname RA RA(config)#int f0/0 RA(config-if)#ip address 192.168.1.1 255.255.255.0 RA(config-if)#ip nat inside RA(config-if)#no shut RA(config-if)#exit RA(config)#int s0/0/0 RA(config-if)#ip address 211.1.1.1 255.255.255.0 RA(config-if)#ip nat outside RA(config)#route eigrp 100 RA(config-router)#net 211.1.1.0 0.0.0.255
RA(config-router)#exit RA(config)#ip access-list standard xc RA(config-std-nacl)#permit 192.168.1.0 0.0.0.255 RA(config-std-nacl)#exit RA(config)#ip nat pool xc0 211.1.1.100 211.1.1.200 netmask 255.255.255.0 RA(config)#ip nat inside source list xc pool xc0 RA(config)#ip nat inside source static tcp 192.168.1.20 80 211.1.1.1 80
RB:路由器 Router>en Router#conf t Router(config)#hostname RB RB(config)#int s0/0/0 RB(config-if)#ip address 211.1.1.2 255.255.255.0 RB(config-if)#exit RB(config)#int f0/0 RB(config-if)#ip address 211.2.2.1 255.255.255.0 RB(config-if)#no shut RB(config)#route eigrp 100 RB(config-router)#net 211.1.1.0 0.0.0.255 RB(config-router)#net 211.2.2.0 0.0.0.255
实验结果:从外网PC发送ICMP数据包给内网失败。 从内网的PC给外网的PC和服务器发送ICMP数据包成功。
内部私有地址转换为外部公有地址的转换: