NAT

NAT


NAT(Network Address Translations):网络地址转换


公网IP与私网IP

  • 公网IP只能在公网上使用
  • 私网IP只能在内网上使用
  • 公网路由器不会给私网IP路由(会被丢弃)
  • 私网IP可以在不同内网重复使用

私有IP地址范围:

1)10.0.0.0/8 (10开头的)

10.0.0.0 ——— 10.255.255.255

2)172.16.0.0/16 - 172.31.0.0/16 (172.16开头的一直到172.31开头的)

172.16.0.0——— 172.31.255.255

3)192.168.0.0/16 (192.168开头的)

192.168.0.0———192.168.255.255


使用NAT原因:ipv4地址严重不够用了-->内网使用私网IP-->NAT进行公私网IP地址转换,然后完成整个通信

NAT主要实现公私有IP地址的转换,一般是在路由器或者防火墙上来完成,不建议在三层交换机上配置

tips:NAT路由器上先定义内外网端口,包从内到外时修改源IP地址,从外到内时修改目标IP地址


NAT地址转换表

路由器会先通过NAT地址转换表进行地址转换,后匹配路由表

转换表内容不固定,不同类型内容应该不一样


NAT类型

静态NAT、动态NAT、NAPT(PAT)

静态NAT

原理:手动在NAT路由器上配置内网IP与公网IP对应关系:192.1--100.1(这里是简写),当数据包到达路由器时,进行地址转换,将包头里的源IP修改为公网IP100.1,再路由出去。


特点:

  • 一对一映射
  • 支持双向通信(在静态NAT表上配置了映射就可以通过外网一对一访问内网)

缺点:只能一人上网,当内网其他的人想要上网时,需要购买其他的公网IP(穷,买不起)进行映射。

注:当有多个公网IP时,不需要配公网IP于接口上(除去子接口的话,接口本身就只能有一个IP),只需将该公网IP体现在地址转换表上即可

地址池:在本文中指存放公/私网IP的池子,又称内部池和外部池


动态NAT

内网的某人上网时,从外部池中拿一个公网IP来映射,之后的过程和静态NAT一样,只不过转换表条目不用自己配(动态映射),当该人不使用一段时间后(默认10分钟),就会把该映射关系清除,公网IP又返回外部池。


特点:

  • 一对一映射
  • 只能内网访问外网(因为是动态生成,当外网访问内网时,由于没有条目进行匹配,就被丢弃了)

缺点一样,不能给内网的人同时上网。除非购买大量公网IP在地址池里。


NAPT(PAT)

NAPT (Network Address Port Translation):网络地址端口转换(端口复用技术)(现在叫的NAT,一般是NAPT)

原理:假设192.1的数据包源IP192.1,源端口号5000(发送信息时会随机使用一个未使用的端口号发送数据),到达NAT路由器内部时,将192.1修改成100.1,源端口号5000修改成1(会使用路由器的端口),如图中红框框(这就是建立的映射关系),目标IP,目标端口号不变,将数据包路由出去。

192.2的包通过overload复用公网IP,然后使用路由器不同的端口号进行TCP/UDP头的封装(设备端口号的范围一般为0-65535),然后再路由。

注:路由器端口号不重复,除非上一个映射条目通信结束后消失才能继续使用。


特点:

  • 多对多映射

NAPT可分成两类:锥型和对称型,如图。

完全锥型NAT

假设内网成员pc(192.168.1.1)想和服务器(30.1.1.1)通信,在pc上启动一个临时端口号50000,到达报文段到达网关时,网关将pc的源目标IP和端口号修改,在NAT表上维持【192.168.1.1:50000 -- 20.1.1.1:60000】这样的临时映射条目,数据然后从网关路由到服务器。在这条映射条目不消失时,任何的外网主机与网关的60000端口通信的数据都会被转发给pc

注:上面的通信可能不用进行,即只要NAT映射表上设置了pc的IP和端口与网关的端口映射关系,外网主机就可进行上面行为


IP限制型锥型NAT

这个就是在完全锥型的基础下加了限制,pc主动向服务器发送了数据报,pc才能收到服务器(不限制服务器端口)发送到网关60000端口的数据,其他外网主机的数据发送到网关60000端口时不会被pc接收到


端口限制型锥型NAT

对端口限制,pc的50000端口向服务器的55000端口发送过数据,服务器通过55000端口发送的数据到达网关60000端口才会被pc所获取,而服务器其他端口的数据不会被pc接收到


对称型NAT

比锥型NAT限制更严格

pc的50000端口发送数据给30.1.1.1的55000端口,在网关上维持【192.168.1.1:50000 -- 20.1.1.1:60000】映射条目,与30.1.1.1的55005端口通信时又维持【192.168.1.1:50000 -- 20.1.1.1:60005】这样不同端口的映射条目,同理,与40.1.1.1的40000端口通信时又维持【192.168.1.1:50000 -- 20.1.1.1:60010】映射条目,上面的端口信息限制,对称型NAT也有,不过多解释。


补充(个人理解,可能错误):

打洞 就是内网用户向外访问了,在映射表留下条目,外网主机可通过该条目访问到pc,不同的限制,限制了外网主机访问内网用户的条件

内网穿透 是使两个处于不同NAT中的网络进行连接

NAT穿透搭配如图

如图,以完全锥型搭配完全锥型为例,主机A经过网关A与server1建立NAT映射,主机B就可通过刚刚建立的NAT映射,向指定端口发送数据,然后B的数据就成功被A接收到了

其他的搭配请自行实现。

posted @ 2023-08-20 12:42  ^cyi^  阅读(42)  评论(0编辑  收藏  举报