网络层-7、网络地址转换-NAT

参考哈工大公开课。


网络地址转换(NAT)的核心

网络地址转换的核心思想就是在局部范围内用私有网络IP(外部无法访问),可以在这个局部范围内相互访问,但是如果需要访问外部的资源就需要通过一个统一的对外公布的非私有的IP地址进行数据交换。这个好比一群人被关在一个封闭的房子里面,声音传不出去,房间里面只有一个电话,每个人在房间内可以随意交流,但是要对外交流就必须通过这部电话机了。

图一:网络地址转换的核心思想

当外面的数据报发进来,那个统一出口的服务器就会根据数据报的信息和本地网络内的IP和端口号进行识别。这个就像上面那个比方,外面的人打电话进来,对方告诉我们让谁接电话,然后根据这个名字找人。‘

 

动机

采用网络地址转换的方式进行数据访问的动机有4个:

1、 IPv4规定的IP地址只有32位,只有40亿+个,不够用了;

2、 本地网络设备IP地址的变更,无需通知外界网络。

3、 当外界网络IP地址变更时,无需修改内部网络设备的IP地址。

4、 内部网络设备对外界网络是不可见的,即不能直接寻址,一定程度上保证了本地网络的安全。

 

实现

网络地址转换的实现只需要三个步骤:替换、记录和替换。

替换:当数据输出时间,利用(NAT IP地址,新端口号)替换每一个外出IP数据报的(源IP地址,源端口号)。

记录:将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中。

替换:当外部网络向本地网络发送数据时,根据NAT转换表,利用(源IP地址,源端口号)替换每个进入内网的IP数据报的(目的IP地址,目的端口号),即(NATIP地址,新端口号)。

 

图二:网络转换地址实现过程

 

但是上面的有个问题,就是如果本地网络没有对外访问数据,那么NAT表格就为空,这时外面的网络需要访问本地网络的服务器就实现不了。为了解决这个问题,可以采用3种方式:

1、 静态配置NAT,将特定端口的连接请求转发给本地网络的服务器。简单的说就是人工输入NAT表格中的内容。

2、 利用UPnP互联网网关协议(IGD)自动配置,就是本地服务器自动学习到NAT公共IP地址,并下NAT转换表中,增删端口映射。

3、 中级(如Skype),NAT内部的客户与中继服务器建立连接,外部客户也与中继服务器建立连接,中继服务器桥接两个连接的分组。

 

图三:2、3种方式示例

 

NAT的争议

NAT通过修改端口号,做地址转换解决了实际问题,但是也有不少争议,主要有以下争议:

1、 NAT是在路由器上面操作的,应该只处理第三层功能,但是NAT却修改了运输层的端口号

2、 NAT违背了端到端的通信原则,应用开发者必须考虑NAT的存在,比如:P2P应用。

地址短缺问题应该有64位IP地址的IPv6来解决,而不应该采用这种折中的方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值