一、简介
网络地址转换NAT(Network Address Translation)是将IP数据包报头中的IP地址转换为另一个IP地址的过程,用于实现私有网络和公有网络直接的互访。
优点:
NAT节省公网IP地址
NAT在实现地址转换的同时,还隐藏了内网主机的真实IP地址,从而防止外部网络对内部主机的攻击行为,提高了内网的安全性
NAT可以控制访问外部网络的内网主机范围,方便了内网的管理。
NAT特性 |
应用场景 |
NAT |
用于内网主机使用内网IP访问外网地址 |
NAT Sserver |
用于外网用户访问内网服务器 ,当内网需要提供外网服务时,可以在内网边缘路由上配置NAT Sserver |
静态NAT |
用于内网的重要主机映射成固定外网IP地址和端口号与外网主机通信 |
二、NAT配置
1、拓扑图
2、在AR1上进行配置:
第一步,定义可以上网的地址段列表
acl 2000
rule 5 permit source 192.168.0.0 0.0.255.255
第二步,定义地址池范围
nat address-grou 1 202.100.1.101 202.100.1.102
第三步,在端口配置地址转换
int g0/0/1
nat outbound 2000 address-group 1 //配置端口-IP地址转换,一个IP可以承载65535-1023个会话进程,后面还可跟可选项no-pat,变成一对一转换,即一个内网IP对应一个外网IP
测试NAT是否成功:
在AR2上配置:
user-interface vty 0 4
authentication-mode password test1234
在LSW1上telnet AR2:
telnet 202.100.1.2
在AR2上可以看到登录地址为202.100.1.101:
dis users
在AR1上可以查看nat具体会话,192.168.100.254地址被转换为202.100.1.101:10241
display nat session all
在int g0/0/1端口上配置地址转换的完整方法:
nat outbound acl-number {address-group group-index [no-pat] | interface loopback interface-number }
由此,第三步还有如下的配置:
配置转换成回环口100地址:nat outbound 2000 interface loopback 100
配置转换成端口本身地址:nat outbound 2000
三、NAT一对一映射
拓扑图同上,目的是将右侧的server1内网地址转换为公网地址。
在AR2上进行配置:
方法一:
int g0/0/1
nat static global 202.100.1.121 inside 172.16.1.1
方法二:
int g0/0/1
nat static enable
quit
nat static global 202.100.1.121 inside 172.16.1.1 netmask 255.255.255.255
这样配置后,左侧客户端就可通过公网地址202.100.1.121访问server1。
display nat static //查看NAT
nat static protocol tcp global 202.100.1.121 8080 inside 172.16.10.1 80 //同时转换端口,这样配置后,如果端口不匹配 ,不会触发转换。
四、NAT Server功能
命令格式:nat server protocol {protocol-number|icmp|tcp|udp} global {global-address|current-interface} global-port inside host-address [host-port] [vpn-instance vpn-instance-name] [acl acl-number] [description description]
示例:
nat server global 202.100.1.102 inside 172.16.1.1
nat server protocol tcp global 202.100.1.102 8080 inside 172.16.1.1 80
五、NAT ALG功能
一般情况下,NAT只能对IP报文头和TCP/UDP头部的端口信息进行转换,对于特殊协议,如NDS\FTP等,他们报文的数据部分可能包含IP地址或端口信息,这些内容不能被NAT有效转换,从而无法正确完成通信。
使能ALG(Application Level Gateway)功能可以使NAT设备识别被封装在报文数据部分的IP地址或端口信息,并根据映射列表进行替换,实现报文正常穿越NAT。目前ALG支持的协议有DNS、FTP、SIP、RTSP。
在全局模式下:
nat alg all/dns/ftp/rtsp/sip enable
六、NAT DNS
还是以上面的拓扑图为例,右侧的PC1使用内部地址可以直接访问Server1,假如Server1有自己的域名www.abc.com,PC1直接访问域名www.abc.com就会去访问Server1的外部地址,导致访问失败。这个时候AR2需要做DNS转换:
nat alg dns enable
nat dns-map www.abc.com 202.100.1.103 80 tcp //这样配置后,PC1访问www.abc.com,AR2会把外网地址转换为内网地址,PC1就可以正常访问了。