网络地址转换相关知识总结(NAT)
网络地址转换知识总结(NAT Network Address Translation)
一、在下图中,如果不区分公网和私网的情况下,做好相应路由相关配置,抓取节点数据流量进行分析:
从两节点设备,抓取数据,很明显:IP数据包在网络中流转时,IP数据包传输的来回模式都一样。即:源IP地址和目标IP地址是不变的,变的是依次传输的各网络节点设备的接口的源MAC地址和目标MAC地址。
在公网中IP地址是唯一的,如果私网IP地址(每个个人在家或在企业中任意设置的IP地址)都实际参与网络数据流转,显然将导致整个网络体系中,IP地址唯一性这一条严重的挑战,整个网络体系直接崩溃瘫痪。
但现实中,企业的服务器在特殊情况下,需要对外开放,但私网IP地址又开放不了,也因此产生特殊情况下,打通私网和公网,又不至于导致网络瘫痪的方法NAT,即:内外网地址相互转换的技术。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上部署NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。
二、NAT相关知识,如下:
在一定程度上外网等同于公网,内网等同于私网。
以下3个区域IP地址就是处于私网:
A类私网:10.*.*.*
B类私网:172.16.*.* 至 172.31.*.*
C类私网:192.168.*.* ( * 为0到255之间的任意数字 )
以上3个区域外的IP地址就是处于公网之中了。
公网地址
公网地址是指在因特网上直接可达的地址,如果你有一个公网地址,那就意味着你不但能访问别人,还能被人访问。公网地址是架设各种服务器必不可少的条件。
私网地址
私网地址产生的一个原因是因为公网地址非常缺乏,大家不得不使用同一个公网IP地址上网,这就是共享上网的由来。同样,私网地址仍然可以被再次共享。
静态NAT
静态NAT实现了私有IP地址和公有IP地址的一对一的对应关系;即:一个公网IP地址只固定分配给内网唯一的主机。
动态NAT
动态NAT,会建立地址池,基于地址池来实现私有地址和公有地址的转换,实现公有地址的内部共享。
注:私网地址可以直接ping外网远程服务器,但是对方服务器在公网中找不到这个地址,所以无法回信。
三、NAT配置
3.1.静态NAT
3.1.1.PC基本配置
3.1.2.服务器基本配置
3.1.3.交换机配置
vlan batch 10
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 10
3.1.4.路由器配置
AR1路由器
interface GigabitEthernet0/0/0
ip address 200.1.1.1 255.255.255.240
//经过NAT转换,三个内网地址就相关与对外网透明,但换了马甲。
nat static global 200.1.1.11 inside 192.168.10.1 netmask 255.255.255.255
nat static global 200.1.1.12 inside 192.168.10.2 netmask 255.255.255.255
nat static global 200.1.1.13 inside 192.168.10.3 netmask 255.255.255.255
#
interface GigabitEthernet0/0/1
ip address 192.168.10.254 255.255.255.0
ip route-static 0.0.0.0 0.0.0.0 200.1.1.2 //根据前面分析,可看出,内网数据是可以出去的,但回来找不到私有地址见面的路。即有出无回。也是NAT的配置的前提。
AR2路由器(不需要配置路由,因为是模拟ISP运行换机,没有配置任何路由,但3个内网主机IP地址在经NAT转换后,相当于与AR2直连,所以逻辑上就通了)
#
interface GigabitEthernet0/0/0
ip address 200.1.1.2 255.255.255.240
#
interface GigabitEthernet0/0/1
ip address 220.1.1.254 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 220.1.2.254 255.255.255.0
连通性测试
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fec8:6809
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.10.1
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.10.254
Physical address..................: 54-89-98-C8-68-09
DNS server........................:
PC>ping 220.1.2.1
Ping 220.1.2.1: 32 data bytes, Press Ctrl_C to break
From 220.1.2.1: bytes=32 seq=1 ttl=253 time=32 ms
From 220.1.2.1: bytes=32 seq=2 ttl=253 time=31 ms
From 220.1.2.1: bytes=32 seq=3 ttl=253 time=47 ms
From 220.1.2.1: bytes=32 seq=4 ttl=253 time=31 ms
From 220.1.2.1: bytes=32 seq=5 ttl=253 time=47 ms
--- 220.1.2.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/37/47 ms
连通性测试并抓取数据,对比发现:经过出接口的NAT操作后,源地址从内网地址变成公网地址
3.2.动态NAT (选择配置的接口方法与静态NAT方法一致)
静态NAT:能从内向外PING,也能从外向内ping
动态NAT:能从内向外PING,但不能从外向内ping(因为动态NAT的地址池里的地址是动态使用,回传未必是原来的那个外网IP对应的内网地址,故只能抛弃数据包)
SW交换机配置
interface GigabitEthernet0/0/1
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 5
Router1配置
vlan 5
acl 2000 //建立acl 2000,用于控制192.168.100.0网络
rule 5 permit source 192.168.100.0 0.0.0.255
nat address-group 1 200.1.2.1 200.1.2.10 //建立nat 公网地址组,要从小到大,中间不能跳跃
interface GigabitEthernet0/0/0
ip address 192.168.100.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.11 255.255.255.240
nat outbound 2000 address-group 1 no-pat //将内网段与公网地址组进行映射
ip route-static 0.0.0.0 0.0.0.0 200.1.2.2
Router2配置
interface GigabitEthernet0/0/0
ip address 210.1.2.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.2 255.255.255.240
动态PNAT总结
PNAT ( Port Address Translation或者称为PAT )
地址与端口一起转换,与动态NAT配置区别,只是没有no pat这一项,其他一样
SW交换机配置
interface GigabitEthernet0/0/1
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 5
Router1配置
vlan 5
acl 2000 //建立acl 2000,用于控制192.168.100.0网络
rule 5 permit source 192.168.100.0 0.0.0.255
nat address-group 1 200.1.2.10 200.1.2.10 //建立nat 公网地址组,这里其实就一个公网IP地址
interface GigabitEthernet0/0/0
ip address 192.168.100.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.1 255.255.255.240 //出接口地址
//nat outbound 2000 address-group 1 no-pat //将内网段与公网地址组进行映射,就这句不同,其他都相同
nat outbound 2000 address-group 1 //这句没有no-pat,默认为pat模式
ip route-static 0.0.0.0 0.0.0.0 200.1.2.2 //默认路由
Router2配置
interface GigabitEthernet0/0/0
ip address 210.1.2.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.2 255.255.255.240
动态PNAT的EasyIP
PNAT EasyIP
地址与端口一起转换,与动态PNAT配置区别,
没有no pat,也没有地址池,用出接口本身外网地址
//动态PNAT模式的EasyIP
ACL 2000
rule 10 permit source 192.168.10.0 0.0.0.255 //0通配符的考虑,即全网通过
rule 20 permit source 192.168.20.1 0.0.0.254 //二进制以1结尾的IP地址通过
rule 30 deny source 192.168.30.1 0.0.0.0 //通配符全0,即精确匹配
rule 40 permit source 192.168.30.0 0.0.0.255
//EasyIP没有地址池,用的是出接口的外网IP地址
interface g0/0/1
nat outbound 2000 //EasyIP就这条绑定命令,无地址池即默认任意地址,默认PAT
SW交换机配置
vlan batch 10 20 30 100
#
interface Vlanif10
ip address 192.168.10.254 255.255.255.0
#
interface Vlanif20
ip address 192.168.20.254 255.255.255.0
#
interface Vlanif30
ip address 192.168.30.254 255.255.255.0
#
interface Vlanif100
ip address 192.168.100.254 255.255.255.0
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 30
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 100
Router1配置
acl 2000
rule 10 permit source 192.168.10.0 0.0.0.255
rule 20 permit source 192.168.20.1 0.0.0.254
rule 30 deny source 192.168.30.1 0
rule 40 permit source 192.168.30.0 0.0.0.255
#
interface GigabitEthernet0/0/0
ip address 192.168.100.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.1 255.255.255.240
nat outbound 2000 //没有no pat,也没有地址池,用出接口本身外网地址
ip route-static 0.0.0.0 0.0.0.0 200.1.2.2
ip route-static 192.168.10.0 255.255.255.0 192.168.100.254
ip route-static 192.168.20.0 255.255.255.0 192.168.100.254
ip route-static 192.168.30.0 255.255.255.0 192.168.100.254
静态PNAT与 NAT server
首先PNAT是由内网访问外网进行的NAT配置,无非是采用内网地址与外网地址:一对一(内网IP与外网IP一一对应,能出能回),多对多(动态NAT,建立外网IP地址次,轮着用,能出不能回),多对一(动态PNAT,IP与端口一起转换,用的是单独外网IP。EasyNAT,IP与端口一起转换,但用的是出接口的现有IP地址 )
NAT Server是建立外网访问内网服务器的映射,远程用户客户端,表面上访问的是外网的地址及端口,实际访问的是内网服务器及端口
相关配置样式如下:
interface GigabitEthernet0/0/1
ip address 200.1.2.12 255.255.255.240 //配置出接口IP地址
nat server protocol icmp global 200.1.2.11 inside 192.168.100.3
nat server protocol tcp global 200.1.2.11 www inside 192.168.100.1 www //配置入向NAT转换,即由外向内转换。但要注意的是,表面是访问外网地址200.1.2.11,实际是访问192.168.100.3
nat outbound 2000 address-group 1 //配置出向NAT转换,即由内向外访问
1.建立NATServer模型
2.基础配置
服务器,客户端,交换机基本配置
交换机配置如下:
port-group 5
group-member GigabitEthernet0/0/1
group-member GigabitEthernet0/0/2
group-member GigabitEthernet0/0/3
group-member GigabitEthernet0/0/4
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 5
#
interface GigabitEthernet0/0/4
port link-type access
port default vlan 5
3.出向配置
Router1
nat address-group 1 200.1.2.10 200.1.2.10
acl number 2000
rule 5 permit source 192.168.100.0 0.0.0.255
interface GigabitEthernet0/0/0
ip address 192.168.100.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 200.1.2.12 255.255.255.240
nat outbound 2000 address-group 1
4.入向配置
Router1
interface GigabitEthernet0/0/1
nat server protocol icmp global 200.1.2.11 inside 192.168.100.3 //开通PING的工能,ping 200.1.2.11,但实际是ping 192.168.100.3
nat server protocol tcp global 200.1.2.11 www inside 192.168.100.1 www //开通HTTP服务器,客户访问的地址是外网200.1.2.11:80,但实际访问的是192.168.100.1:80
5.测试连通性
http 是否转换成功测试:
nat server protocol tcp global 200.1.2.11 www inside 192.168.100.1 www //开通HTTP服务器,客户访问的地址是外网200.1.2.11:80,但实际访问的是192.168.100.1:80
从下图可以看图完整的过程:建立连接,传输http,关闭连接的过程。其中访问200.1.2.11,但打开的是192.168.100.1上http服务
ping的功能是否开通测试:
nat server protocol icmp global 200.1.2.11 inside 192.168.100.3 //开通PING的工能,ping 200.1.2.11,但实际是ping 192.168.100.3
由210.1.2.1 对200.1.2.11进行连通测试,ping 3个包
210.1.2.1确实交给了200.1.2.11,但是Router1转手就给了192.168.100.3。左右两边对比,很明显。
这里要求注意,从外网是不可以直接访问内网的,ping肯也不行,所以ping 192.168.100.3是不是通,只能ping200.1.2.11.
注:NAT Server转换后,他是双向的,当然它只是对应访问它的客户端。
PNAT则是访问外网,而不是单独某个服务器。
附NAT解释截图: