前言
- 随着Internet的发展和网络应用的增多,有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题,NAT (Network Address Translation,网络地址转换)技术应需而生。
- NAT技术主要用于实现内部网络的主机访问外部网络。一方面NAT缓解了IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。
NAT技术原理
- NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
- NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内”的流量,则对数据包的目的地址进行转换。
- 通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。
静态NAT
静态NAT原理:
- 静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
- 支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
实验配置
PC1:
IP地址:192.168.1.1
子网掩码:255.255.255.0
网关:192.168.1.254
PC2:
IP地址:192.168.2.1
子网掩码:255.255.255.0
网关:192.168.2.254
PC3:
IP地址:192.168.3.1
子网掩码:255.255.255.0
网关:192.168.3.254
Server1:
IP地址:200.200.200.1
子网掩码:255.255.255.252
网关:200.200.200.2
AR1:
<Huawei>sys
[Huawei]un in en
[Huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.2.254 24
[AR1-GigabitEthernet0/0/1]int g0/0/2
[AR1-GigabitEthernet0/0/2]ip add 192.168.3.254 24
在AR1上配置静态NAT将内网主机的私有地址一对一映射到公有地址。
[AR1-GigabitEthernet0/0/2]int g4/0/0
[AR1-GigabitEthernet4/0/0]ip add 100.100.100.1 24
global参数用于配置外部公有地址,inside参数用于内部私有地址。
[AR1-GigabitEthernet4/0/0]nat static global 100.100.100.3 inside 192.168.1.1 netmask 255.255.255.255
[AR1-GigabitEthernet4/0/0]nat static global 100.100.100.4 inside 192.168.2.1 netmask 255.255.255.255
[AR1-GigabitEthernet4/0/0]nat static global 100.100.100.5 inside 192.168.3.1 netmask 255.255.255.255
[AR1-GigabitEthernet4/0/0]quit
[AR1]ip route-static 0.0.0.0 0 100.100.100.2
[AR1]quit
<AR1>save
AR2:
<Huawei>sys
[Huawei]un in en
[Huawei]sys R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 100.100.100.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 200.200.200.2 30
[R2-GigabitEthernet0/0/0]quit
[R2]quit
<R2>save
我们可以分别用PC1、PC2、PC3去ping200.200.200.1,在ping之前我们先在AR1上g4/0/0端口开启抓包。
抓包来分析源IP地址是否转换为公网IP
动态NAT
动态NAT原理:
- 动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
- 当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
实验配置
PC1:
IP地址:192.168.1.1
子网掩码:255.255.255.0
网关:192.168.1.254
PC2:
IP地址:192.168.2.1
子网掩码:255.255.255.0
网关:192.168.2.254
PC3:
IP地址:192.168.3.1
子网掩码:255.255.255.0
网关:192.168.3.254
Server1:
IP地址:200.200.200.1
子网掩码:255.255.255.252
网关:200.200.200.2
AR1:
<Huawei>sys
[Huawei]un in en
[Huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.2.254 24
[AR1-GigabitEthernet0/0/1]int g0/0/2
[AR1-GigabitEthernet0/0/2]ip add 192.168.3.254 24
[AR1-GigabitEthernet0/0/2]int g4/0/0
[AR1-GigabitEthernet4/0/0]ip add 100.100.100.1 24
[AR1-GigabitEthernet4/0/0]quit
在AR1上配置动态NAT将内网主机的私有地址动态映射到公有地址。
1、创建地址池
配置公有地址范围,其中group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址。
[AR1]ip route-static 0.0.0.0 0 100.100.100.2
[AR1]nat address-group 1 100.100.100.3 100.100.100.254
2、配置地址转换的ACL规则
配置基础ACL,匹配需要进行动态转换的源地址范围。
[AR1]acl 2000
[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[AR1-acl-basic-2000]rule 10 permit source 192.168.2.0 0.0.0.255
[AR1-acl-basic-2000]rule 15 permit source 192.168.3.0 0.0.0.255
[AR1-acl-basic-2000]quit
3、接口试图下配置带地址池的NAT Outbound
接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换。no-pat:禁止端口复用
[AR1]int g4/0/0
[AR1-GigabitEthernet4/0/0]nat outbound 2000 address-group 1 no-pat
[AR1-GigabitEthernet4/0/0]quit
[AR1]quit
<AR1>save
AR2:
<Huawei>sys
[Huawei]un in en
[Huawei]sys AR2
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 100.100.100.2 24
[AR2-GigabitEthernet0/0/1]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 200.200.200.2 30
[AR2-GigabitEthernet0/0/0]quit
[AR2]quit
<AR2>save
抓包来分析源IP地址是否转换为公网IP