网络(三) 之 网络地址转换NAT(使用Cisco Packet Tracer模拟)

推荐书籍《奠基计算机网络》

pkt文件链接:
http://pan.baidu.com/s/1eSuyQHW

应用场景

NAT的最初目的是允许将私有IP地址映射到公网(合法的Internet IP) 地址的,以此来减缓IP地址空间的消耗

NAT使用场景:
- 需要连接Internet,但是你的主机没有公网IP地址
- 更换了一个新的ISP,需要重新组织网络
- 需要合并两个具有相同网络地址的内网

NAT一般应用在边界路由器中,比如公司连接Internet的路由器上,其最显著的优点是节约合法公网IP地址,正是因为NAT,我们到现在还能使用IPv4,否则早已升级到IPv6了.

NAT有三种类型:
- 静态NAT: 一对一映射,每台主机对应一个真实的IP地址
- 动态NAT: 映射一个未注册IP地址到注册IP地址池中的一个注册IP地址.
- PAT: 通过端口区分内网主机,将多个私网IP地址映射到一个公网IP


配置NAT基础拓扑

1.按照下图所示,搭建拓扑图,并且根据图配置好各个机器的IP地址
左半部分为内网,右半部分为外网

这里写图片描述

2.配置2个路由器的静态路由:
这里写图片描述
这里写图片描述


配置静态NAT

3.静态地址规划:

机器名称 私网ip地址   映射公网地址
pc0     10.0.0.3    131.107.0.3
pc1     10.0.0.2    131.107.0.2
server0 10.0.0.4    131.107.0.4

4.对CEP路由器进行NAT配置
这里写图片描述
主要命令:

//将0/0(左端) 设置为内部端口
interface FastEthernet0/0
ip nat inside
exit

//将0/1(右端) 设置为外部端口
interface FastEthernet0/1
ip nat outside
exit

//设置静态NAT
ip nat inside source static 10.0.0.2 131.107.0.2
ip nat inside source static 10.0.0.3 131.107.0.3
ip nat inside source static 10.0.0.4 131.107.0.4
exit

使用pc0 ping一下外网下的服务器,成功
这里写图片描述


动态NAT

这种类型的Nat可以实现映射一个未注册IP地址到注册IP地址池中的一个注册IP地址.但必须保证拥有足够的真实IP,保证每个在因特网中收发包的用户都有真实的IP可用.
比如: 你有3个外网IP,但内网有5台机器,使用动态NAT,只能同时有3台计算机访问Internet.

3.将上面配置的静态NAT保存为staticNAT.pkt,再另存一份为dynamicNAT.pkt
我们从dynamicNAT.pkt上修改:
清除之前对CEP路由器的静态配置:

//清除静态配置
no ip nat inside source static 10.0.0.2 131.107.0.2
no ip nat inside source static 10.0.0.3 131.107.0.3
no ip nat inside source static 10.0.0.4 131.107.0.4
exit

4.配置动态NAT

//配置动态NAT
//定义访问控制列表,将网段添加到列表中
access-list 10 permit 10.0.0.0 0.0.0.255
//定义公网地址池,名称定义为todd
ip nat pool todd 131.107.0.1 131.107.0.3 netmask 255.255.255.0
//将列表list 10 和 公网地址池todd 关联
ip nat inside source list 10 pool todd

这里写图片描述

5.测试:
这里写图片描述

查看CEP路由器转发的数据包,NAT地址转换成功
(点击那个数据包:
这里写图片描述
)
结果截图之一(不一一累赘,有兴趣的同学,可以自己尝试演示):
这里写图片描述


PAT模式

写过网络程序的同学应该都懂, 多台机器相互通讯通过 ip地址确定是哪台物理机器,通过端口号确定具体的程序.
例如: web程序通常是80端口,mysql数据库是3306

记得大三上学期时候,在笔记本上写了几个web程序, 然后将宿舍里路由器的80端口映射给我笔记本ip的80端口,就实现了外网访问我笔记本上的网站.

PAT模式和这个类似:

例如有两台物理机 A,B,一个路由器L, 外网W
A,B连着L,L连着外网W
设定:
A机器映射到L路由器5000端口
B机器映射到L路由器6000端口

那么A访问外网流程如下:

A –> L –> W (A的ip:端口 转为 L的ip:5000 ; L 访问 W)
W –> L –> A (W 发送 L ; L的ip:5000 转为 A的ip:端口 ; L 发送给A)

3.保存dynamicNAT.pkt后,另存一份patNAT.pkt,我们在patNAT.pkt进行修改,
我们就使用之前提供的ip吧,另外增加几台机器.
service1 ip为 10.0.0.5
service2 ip为 10.0.0.6

这里写图片描述

//删除之前的动态NAT配置
no ip nat inside source list 10 pool todd

4.启用PAT,命令和之前的动态NAT命令极其相似, 具体如下:

access-list 10 permit 10.0.0.0 0.0.0.255
ip nat pool todd 131.107.0.1 131.107.0.3 netmask 255.255.255.0
//注意区别在后面加了个overload,即启用PAT
ip nat inside source list 10 pool todd overload

此时可以使用ping测试了,所有内网机器都能ping通外网的服务器

5.端口映射,要想让内网的服务器供外网访问,还需要做端口映射:

//端口映射,将我们拥有的三个公网ip的80端口分别映射给三台服务器
ip nat inside source static tcp 10.0.0.6 80 131.107.0.3 80
ip nat inside source static tcp 10.0.0.5 80 131.107.0.2 80
ip nat inside source static tcp 10.0.0.4 80 131.107.0.1 80

6.测试:
用外网的server做测试:
这里写图片描述
这里写图片描述

需要注意的是: 内网地址访问外网地址时,PAT对外地址地址只有一个,
意思是:
尽管我用了3个外网地址做PAT,但其实所有机器访问外网,路由器只会用一个外网地址,剩下两个没有用到.
但是,做端口映射的时候,是可以用到剩下的两个IP的!
也就是,外网访问内网服务器时才会用到做过端口映射的IP.

所以,一般做PAT地址转换,一组机器只用一个公网IP.


pkt文件链接如下:
http://pan.baidu.com/s/1eSuyQHW

  • 21
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值