Basic NAT网络地址转换实验
实验拓扑
实验介绍及任务
该拓扑中PC1、PC2为私有网络客户端,R1、R2分别为私网和公网路由、同时也各为对应网络的网关(配置客户端IP时填写完整
),实验中PC1和PC2需要正常访问到公网部分的Server服务器
。
实验分析
拓扑中R2为公网路由,所以不会存储私网也就是192.168.1.0/24的信息,因此我们需要在私网路由R1上配置Basic NAT网络地址转换的功能,当PC1、PC2访问公网时动态地予其分配公网IP,从而实现访问到Server服务器的效果。
实验步骤
一、配置设备基本IP信息
1、路由配置
# R1
[R1]int g0/0
[R1-GigabitEthernet0/0]ip add 120.0.0.1 24
[R1-GigabitEthernet0/0]int g0/1
[R1-GigabitEthernet0/1]ip add 192.168.1.254 24
[R1-GigabitEthernet0/1]qu
[R1]ip route-static 0.0.0.0 0 120.0.0.2 #配置路由,注意0.0.0.0 0(是所有IP,最后一个0是掩码)
# R2
[R2]int g0/0
[R2-GigabitEthernet0/0]ip add 120.0.0.2 24
[R2-GigabitEthernet0/0]int g0/1
[R2-GigabitEthernet0/1]ip add 128.0.0.254 24
2、客户端配置(下图为PC1,PC2与Server依此类推)
二、检验网络通断
在PC1上PingPC2和Server:
发现PC2(192.168.1.2)能互通,但是Server(128.0.0.1)是不能通信的,产生这种结果的原因是在公网路由器上没有私网的路由,从Server回应的Ping响应报文到R2的路由表上无法找到 192.168.1.0/24网段的路由,所以无法通信。
三、配置Basic NAT(R1)
1、首先需要配置ACL,定义私有网络(192.168.1.0/24)的网段数据流允许进行NAT转换
[R1]acl basic 2000
[R1-acl-ipv4-basic-2000]rule 0 permit source 192.168.1.0 0.0.0.255 #注意这里使用的是反掩码
2、其次需要配置NAT用于转换成公网的地址池(一个公网地址范围)
ps:这里使用的是多对多的转换方式
[R1-acl-ipv4-basic-2000]qu
[R1]nat address-group 1 # 设置地址池的编号为1
[R1-address-group-1]address 120.0.0.100 120.0.0.200 # 转换范围为100~200
3、最后将NAT的这个地址池与ACL关联上,并在正确的接口的正确方向上下发
# 公网接口是g0/0,所以在该接口操作
[R1-address-group-1]int g0/0
[R1-GigabitEthernet0/0]nat outbound 2000 address-group 1 no-pat
# no-pat:表示不使用 TCP/UDP 端口信息实现多对多地址转换,也即表示使用一对一地址转换,只转换数据包的地址而不转换端口信息
四、验证网络通断
从PC1、PC2上Ping公网Server(128.0.0.1)的IP发现能Ping通:
五、查看NAT转换的地址信息
在R1与R2的连接链路上开启抓包功能,然后使用PC1或者PC2去Ping公网Server,最后打开Wireshark查看Ping包的信息,发现包的源IP已经不再是私有网络的IP地址,而是被转换成了我们设定的公网地址池里的随机一个IP,如下图:
细看详细信息会发现包括返回的的响应包目的IP也是转换后的IP,但是目的Mac会是R1的,关于这个知识点,有兴趣的可以参考我面的数据包传递流程图,有疑问的欢迎评论区讨论!
流程图