网络地址转换
2.1 实验目的
(1)理解动态NAT和静态映射的区别;
(2)掌握NAT地址池的配置;
(3)掌握NAT转换中访问控制列表的应用;
(4)掌握静态NAT的配置
2.2 实验原理
1.动态NAT
动态转换(亦称NAT pool)是指不建立内部地址和全局地址的一对一的固定对应关系。而通过共享NAT地址池的IP地址动态建立NAT的映射关系。当内网主机需要进行NAT地址转换时,路由器会在NAT地址池中选择空闲的全局地址进行映射,每条映射记录是动态建立的,在连接终止时也被收回。
图3 动态NAT的工作原理
如图9-3所示,内网主机A的报文经过边缘路由器时,路由器会在预先配置好的NAT地址池中选出空闲的内部全局地址进行映射。如图9-3所示,NAT地址池中只有202.80.20.2是空闲的,所以路由器选取该地址和172.16.10.10建立映射关系,172.16.10.10ßà202.80.20.2。因此数据包1的源IP地址将会替换为202.80.20.2。数据包从外网返回则替换目的IP地址。
2.动态NAT配置命令
动态NAT的配置过程如表3所示:
表3 动态NAT的配置步骤
配置说明 | 命令 | |
步骤1 | 配置内部接口、和外部接口 | //配置外部接口 Router(config-if)#interface interface-id Router(config-if)#ip nat outside //配置内部接口 Router (config-if)#interface interface-id Router (config-if)#ip nat inside |
步骤2 | 配置转换地址池 | Router (config)#ip nat poolname start-ip end-ip {netmaskx.x.x.x| prefix-length x } |
步骤3 | 配置需要进行地址转换源IP访问控制列表 | Router(config) # access-list number permit x.x.x.x(网络号) x.x.x.x (子网掩码) |
步骤4 | 配置NAT转换 | Router(config)# ip nat inside source list number pool pool-name |
步骤4 | 检查NAT的运行结果 | Router #show ip nat translations |
例子:允许内部地址为192.168.20.0/24的网络进行转换,转换的地址池为
210.20.20.10~210.20.20.15,子网掩码为255.255.255.0。配置命令如下:
R1(config)# ip nat pool NAT-POOL 210.20.20.10 210.20.20.15 netmask 255.255.25.0
//主要配置以下参数:
//地址池名称: TEST_POOL
//地址池开始地址:210.20.20.10
//地址池结束地址:210.20.20.15
//地址池的子网掩码:255.255.255.0
R1(config)# access-list 1 permit 192.168.20.0
R1(config)# ip nat inside source list 1 pool NAT-POOL
3.动态NAT配置实例
网络拓扑图如图4所示:
图4 动态NAT网络拓扑图
地址表如表4所示:
表4 动态NAT网络IP地址表
设备 | 接口 | IP地址 | 子网掩码 |
R0 | Fa 0/0 | 10.10.10.2 | /24 |
Fa0/1 | 192.168.1.1 | /24 | |
Fa1/0 | 192.168.2.1 | /24 | |
R1 | S2/0 | 210.38.220.1 | /24 |
Fa0/0 | 10.10.10.1 | /24 | |
R2 | S2/0(DCE) | 210.38.220.2 | /24 |
PC1 | NIC | 192.168.1.10 | /24 |
PC2 | NIC | 192.168.1.20 | /24 |
PC3 | NIC | 192.168.2.10 | /24 |
背景说明:对于一些公司,它们可能会一次性申请很多个公网IP来为公司各个部门提供上网服务。我们假设某公司申请了6个公网IP,所属网段为: 210.38.220.10à 210.38.220.15,子网掩码为255.255.255.0;合法的公网IP地址不够每人分配一个,但该公司一般情况下有1/2的人员在外跑业务或做技术支持,在公司的员工也不会一直需要提供网络服务,据此,我们可以通过动态分配全局地址的地址转换技术来解决该公司的需要。
配置要求:配置动态NAT,允许转换IP地址属于192.168.1.0/24的网段,其他网段不允许进行NAT转换。
实验步骤:
步骤1:R0配置
R0(config)# interface f0/0
R0(config-if)# ip address 10.10.10.2 255.255.255.0 //配置接口IP地址
R0(config-if)# no shutdown
R0(config)# interface f0/1
R0(config-if)# ip address 192.168.1.1 255.255.255.0 //配置接口IP地址
R0(config-if)# no shutdown
R0(config)# interface f1/0
R0(config-if)# ip address 192.168.2.1 255.255.255.0 //配置接口IP地址
R0(config-if)# no shutdown
R0(config-if)#ip route 0.0.0.0 0.0.0.0 f0/0 //配置R0默认路由。
步骤2:R1的配置。
R1(config)# interface f0/0
R1(config-if)# ip address 10.10.10.1 255.255.255.0 //配置接口IP地址
R1(config-if)#ip nat inside //配置f0/0为内部接口
R1(config-if)# no shutdown
R1(config)# interface s2/0
R1(config-if)# ip address 210.38.220.1 255.255.255.255 //配置接口IP地址
R1(config-if)#ip nat outside //配置s2/0为外部接口
R1(config-if)# no shutdown
R0(config-if)#ip route 0.0.0.0 0.0.0.0 S2/0 //配置默认路由。
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255//配置匹配内网ip地址访问控制列表
//配置NAT地址池
R1(config)#ip nat pool TEST_POOL 210.38.220.10 210.38.220.15 netmask 255.255.255.0
R1(config)#ip nat inside source list 1 pool TEST_POOL //配置动态NAT转换
步骤3:R2的配置。
R2(config)#int s2/0
R2(config-if)#ip address 210.38.220.2 255.255.255.255
R2(config-if)# clock rate 64000
R2(config-if)#no shutdown
步骤4:检查配置结果与测试
(1)动态NAT的映射关系不是静态建立的,而是通过数据流触发建立的,因此每次建立的映射关系可能是不一样的,在没有触发流量的时候,查看nat映射表。
R2#sh ip nat translations
R2#
可以看到映射表是空的,说明映射关系并没有建立。
我们分别从PC1、PC2触发流量,在观察NAT映射表的情况。
R1#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 210.38.220.10:21 192.168.1.10:21 210.38.220.2:21 210.38.220.2:21
icmp 210.38.220.10:22 192.168.1.10:22 210.38.220.2:22 210.38.220.2:22
icmp 210.38.220.11:15 192.168.1.20:15 210.38.220.2:15 210.38.220.2:15
icmp 210.38.220.11:16 192.168.1.20:16 210.38.220.2:16 210.38.220.2:16
可以看到192.168.1.10 à210.38.220.10,192.168.1.20 à210.38.220.11,说明地址转换起到效果。
(2)使用debug命令查看到的转换过程。
R1#debug ip nat
IP NAT debugging is on
R1#
NAT: s=192.168.1.10->210.38.220.11, d=210.38.220.2 [21] // s表示源地址转换
NAT*: s=210.38.220.2, d=210.38.220.11->192.168.1.10 [32] //d表示目的地址转
NAT: s=192.168.1.10->210.38.220.11, d=210.38.220.2 [22]
NAT*: s=210.38.220.2, d=210.38.220.11->192.168.1.10 [33]
(3) 动态NAT映射表条目存在一定生存时间,时间超过时转换条目将会被自动删除。一对一的动态NAT超时时间为10分钟(600秒);基于端口的动态NAT超时时间为1分钟(60秒)。
注意事项:
1)不要把inside和outside应用的接口弄错:
2)如果有条件,尽量不要用outside接口的全局地址作为内部全局地址,该接口地址的所有者是互联网服务提供商(ISP)。当线路变更时地址就会改变,就需要更改DNS记录了,如果是直接通过IP提供服务,那就更麻烦,而线路的变更是常有的。另外,路由器的outside接口有可能不是可用的地址,而是私有地址等。
文章最后发布于: 2018-07-04 11:23:31
相关阅读
一、应用场合: 传统公司、部分个人开发者喜欢用jpa;而互联网公司更青睐于mybatis 原因: 1、mybatis更加灵活,开发迭代模式决定了他是
C#中(int)、Conver.Toint32()、int.Parse()三种类型转换
自己也是刚学习C#程序设计语言,总结了一点知识点,想分享给大家。毕竟刚学习这门语言,学得不深,哪里如果有错误,请帮个忙指出一下哈,谢谢
Knative 社区很早就在讨论用 Tekton 替换 Build 模块的事宜。Knative Build 官方已经正式说明不再建议使用 Knative Build 了。
摄氏度和华氏度转换?自己写的几种垃圾程序,里面有swithc
先是第一种,需要用户自己先选择时摄氏度还是华氏度,不好用 #include <iostream> using namespace std; int main() { char FC;
终止线程两个函数:ExitThread() 和 TerminateThread()
若要终止线程的运行,可以使用下面四种的方法:线程函数退出循环来返回 (最佳方法 )。通过调用ExitThread 函数,线程将自行撤消(尽