NAT技术原理
NAT:对IP数据报文中的IP地址进行转换,一般部署在网络出口设备,例如路由器或防火墙上。
1、内网数据包出去会将私网IP转换成特定的公网IP,实现访问。
2、公网回包之后再根据NAT映射表进行转换,找到真正的内网IP。
3、NAT不是单纯只是用来上网的,也不是只用来内网访问外网的。
NAT的作用:
1、把内网私网IP转换公网IP
2、隐藏内网,起到保护内网作用
3、适当的缓解IPv4地址空间枯竭
4、解决公网设备回包的路由问题
静态NAT原理
每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
缺点:静态NAT需要一个私网IP对应一个公网IP,需要用到多个公网,造成公网IP浪费。没有缓解IPv4地址空间不足的问题。
静态NAT配置实例
[R1]interface GigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24 [R1-GigabitEthernet0/0/1]nat static global 122.1.2.1 inside 192.168.1.1 [R1-GigabitEthernet0/0/1]nat static global 122.1.2.2 inside 192.168.1.2 [R1-GigabitEthernet0/0/1]nat static global 122.1.2.3 inside 192.168.1.3
动态NAT原理
需要配合ACL使用。
静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
当内部主机访问外部网络时临时分配一个地支持中并未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“No Use”。当主机访问外网时,会用掉地支持中的一个公网,其他主机就不能继续使用这个地址;当不使用时,再归还到地址池中。另一种程度上的一对一映射。
优点:在某种程度上提高公网IP地址使用率。
缺点:依然需要多个公网IP地址组成公网地址池。
动态NAT配置实例
[R1]nat address-group 1 100.1.1.1 100.1.1.1 [R1]acl 2000 [R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255 [R1-acl-basic-2000]quit [R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1 no-pat
NAPT原理
动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
NAPT(网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址效率。
NAPT配置实例
•在R1上配置NAPT让内网所有私有地址通过122.1.2.1访问公网。
[R1]nat address-group 1 100.1.1.1 100.1.1.1 [R1]acl 2000 [R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255 [R1-acl-basic-2000]quit [R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1
Easy IP
实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
优点:1、节省公网IP地址。
2、配置简单。
Easy IP配置实例
•在R1上配置Easy-IP让内网所有私有地址通过100.1.1.1访问公网。
[R1]acl 2000 [R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255 [R1-acl-basic-2000]quit [R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]nat outbound 2000
动态NAT和NAPT的配置,区别在于,动态NAT需要写no-pat(不带端口号),而NAPT不需要写(带端口号)。
NAPT与Easy IP的配置,区别在于,NAPT需要写地址池,而Easy IP不需要写。而NAPT至少需要2个地址(地址池至少有一个,接口一个),Easy IP至少需要1个地址。
NAT Server配置实例
实现公网访问内网服务器
•在R1上配置NATServer将内网服务器192.168.1.3的80端口映射到公有地址100.1.1.100的80端口。
[R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]ip address 100.1.1.100 24 [R1-GigabitEthernet0/0/0]nat server protocol tcp global 100.1.1.100 www inside 192.168.1.3 #100.1.1.150为公有地址未使用的 #现网中可以使用easy ip和nat server一起使用一个地址
当Client去访问Server时,地址要写公网地址。如:
公网上的client去访问内网服务的80端口时,要写映射的公网地址,写私网地址是访问不了的。如果内网有多个服务器的80端口要对公网公开,可以这样做:nat server protocol tcp global 100.1.1.100 81 inside 192.168.1.4,这样一个公网地址,可以映射多个内网服务器。