计算机网络(十八)NAT及IP隧道

NAT

1.NAT定义

NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。
转换IP地址外,还出现了可以转换 TCP、UDP端口号的NAPT技术,由此可以实现用一个全局IP地址与多个主机的通信 。
NAT (NAPT)实际上是为正在面临地址枯竭的IPv4而开发的技术。
在IPv6中为了提高网络安全也在使用NAT, 在IPv4和IPv6之间的相互通信当中常常使用NAT-PT。

2.NAT工作机制

NAT
在NAT(NAPT)路由器的内部,有一张自动生成的用来转换地址的表。
当私有网络内的多台机器同时都要与外部进行通信时,仅仅转换 IP地址,人们不免担心全局 IP地址是否不够用。
采用包含端口号一起转换的方式(NAPT)可以解决这个问题。
NAPT
在使用TCP或UDP的通信当中,只有目标地址、源地址、目标端口、源端口以及协议类型(TCP还是UDP )五项内容都一致时才被认为是同一个通信连接。此时所使用的正是NAPT。
转换表在NAT路由器上自动生成。

3.NAT-PT(NAPT-PT)

现在很多互联网服务都基于IPv4。如果这些服务不能做到在IPv6中也能正常使用的话,搭建IPv6网络环境的优势也就无从谈起了。
NAT-PT是将IPv6的首部转换为IPv4的首部的一种技术。
NAT-PT
NAT-PT有很多形式,其中最让人们期待的当属结合DNS和IP首部替换的DNS-ALG。

4.NAT的潜在问题

由于NAT (NAPT)都依赖于自己的转换表,因此会有如下几点限制:
1.无法从NAT的外部向内部服务器建立连接。
2.转换表的生成与转换操作都会产生一定的开销。
3.通信过程中一旦NAT遇到异常需重新启动时,所有的TCP连接都将被重置。
4.即使备置两台NAT做容灾备份,TCP连接还是会被断开。

5.解决NAT的潜在问题与NAT穿越

第一种方法就是改用IPv6。在IPv6 环境下可用的IP地址范围有了极大的扩展, 以至于公司或家庭当中所有设备都可以配置一个全局IP地址。
另一种方法是,即使是在一个没有NAT的环境里,根据所制作的应用,用户可以完全忽略NAT的存在而进行通信。
在NAT内侧(私有IP地址的一边)主机上运行的应用为了生成NAT转换表,需要先发送一个虚拟的网络包给NAT的外侧。
而NAT并不知道这个虚拟的包究竟是什么,还是会照样读取包首部中的内容并自动生成一个转换表。
如果转换表构造合理,那么还能实现NAT外侧的主机与内侧的主机建立连接进行通信。就可以让那些处在不同NAT内侧的主机之间也能够进行相互通信。
应用还可以与NAT路由器进行通信生成NAT表,并通过一定的方法将NAT路由器上附属的全局IP地址传给应用。
NAT外侧与内侧可以进行通信,这种现象叫做"NAT穿越” 。
这种方法与已有的IPv4环境的兼容性非常好,即使不迁移到IPv6也能通信自如。
NAT友好的应用程序也有它的问题。例如,NAT的规范越来越复杂,应用的实现变得更耗时。

IP隧道

夹着IPv4网络的两个IPv6的网络
如上图所示的网络环境里,网络A、B使用IPv6, 如果处于中间位置的网络C支持使用IPv4的话,网络A与网络B之间将无法直接进行通信。
为了让它们之间正常通信,这时必须得采用IP隧道的功能。
IP隧道中可以将那些从网络A发过来的IPv6的包统和为一个数据,再为之追加一个IPv4的首部以后转发给网络C。
在网络层的首部后面继续追加网络层首部的通信方法就叫做 "IP隧道” 。
IP隧道
构造一个既支待IPv4又支待IPv6的网络是一项极其庞大的工程。
骨干网上通常使用IPv6或IPv4进行传输。
那些不支持的路由器就可以采用IP隧道的技术转发数据包,而对应的IP地址也可以在一旁进行统一管理。
由于骨干网的设备上仅在一旁应对IP隧道即可,这也可以大量地减少投资成本。
应用:
1.Mobile IP
2.多播包的转播
3.IPv4网络中传送IPv6的包(6to4)
4.IPv6网络中传送IPv4的包
5.数据链路帧通过IP包发送(L2TP)
多播隧道
现在很多路由器上没有多播包的路由控制信息,多播消息也就无法穿越路由器发送信息。
使用IP隧道,就可以使路由器用单播的形式发包,也就能够向距离较远的链路转发多播消息。

猜你喜欢

转载自blog.csdn.net/NEUChords/article/details/91394773