还是来一个视频讲解下吧
https://www.bilibili.com/video/BV11J411B7mW/
NAT在现网环境中大量使用,很多时候都是用在出口进行源地址转换,以达到一个公网IP地址能够给多个私网地址上网的效果。
然而NAT不止是这样玩,很多环境下需要隐藏真实的IP地址,我们一步步讲解NAT的基本原理。
一.什么是NAT
NAT:网络地址转换
正常情况数据在传输的时候,地址是不会变化的。MAC地址没经过一次三层设备转发会改变。
也是因为公网IP地址不够用,这时候使用NAT技术可以极大的降低公网IP地的成本,什么IPv4地址紧缺,什么IPv4地址裸奔了等等,虽然IPv6出来
打个比方,你家拉了一条宽带,只有一个公网的IP地址,但你一家人几十个设备都能通过这个公网IP进行上网,而不用多交几十份的网费。
二.NAT技术原理
在网络传输中,我们要知道有源IP地址和目的IP地址,我们首先要知道转换的是什么?
1.源地址转换
1.1静态一对一
一个私网的源地址转换为一个公网的地址。
比如阿里云..一对一映射,这样操作有利于中间加入防火墙或者IPS等安全设备,流量计费统计等等。
1.2端口复用
端口复用也是大家使用最多的NAT的一种方式,有公网的IP才能访问互联网,内网多台设备私网地址可以通过端口复用将源地址进行转换为公网地址使用。
1.2.1发送流程
1)PC电脑端发起:
S:192.168.30.132:10000
D:114.114.114.114:51
2)出口路由器收到:
S:192.168.30.132:10000转换为123.1.1.1:10000
D:114.114.114.114:51
NAT表内部端口入方向:源地址192.168.30.132:10000转换为123.1.1.1:10000
对应产生外部端口入方向:目的地址123.1.1.1:10000转换为192.168.30.132:10000
3)到达外网的目的
S:123.1.1.1:10000
D:114.114.114.114:51
1.2.2回包流程
1)外网目的回包
S:114.114.114.114:51
D:123.1.1.1:10000
2)出口路由器接收
S:114.114.114.114:51
D:123.1.1.1:10000转换为192.168.30.100:10000
NAT表内部端口入方向:源地址192.168.30.132:10000转换为123.1.1.1:10000
对应产生外部端口入方向:目的地址123.1.1.1:10000转换为192.168.30.132:10000
3)PC电脑端收到
S:114.114.114.114:51
D:192.168.30.100:10000
2.目的NAT(端口映射)
目的NAT的效果就是公网访问内网的应用等等
正常来说外网是无法主动访问到内网(向日葵,智能家居等等通过逻辑的TCP进行建立隧道)。
那外网如何穿透到内网的?
举个例子:你现在在公司办公,公司有前台电话1111111,你座位有分机号是12。这时候外面的人想要找你,这时候他没法子直接找到你,只能通过前台分机号转接,首先拨打1111111然后转分机12,这时候就能准确找到你。
一个道理,端口映射首先要有公网的IP地址(类似前台电话),还需要有端口号(类似分机号)。
这时候转换的是目的地址。。。。
3.双转(源地址和目的地址转换)
4.双双转(源地址和目的地址转换转两次)
未完待续慢慢写