NAT
NAT(Network Address Translation网络地址翻译)将内部网络私有地址翻译成Internet上合法的IP地址。NAT可以节省IP地址资源(主要节省IPv4地址)。还可以将内部网络的IP地址隐藏起来不被外界发现,有效地确保内部网络的安全(但网络内主机比较多时,安全性方面更推荐防火墙,因为用NAT路由占用的CPU资源比较多)。还可以为内部网络提供一致性的编址方案。
NAT术语:
内部本地Inside Local:私有IP,不能直接用于互联网,如10.0.0.1
内部全局Inside Global:经由NAT路由器将内部本地IP地址转换成互联网上的合法地址,如172.2.2.2
外部全局Outside Global:外部网络中的主机的IP地址,通常来自全局可路由的地址空间,如22.2.2.2。多数情况下该地址与外部全局地址相同。
外部本地Outside Local:内部网络中看到Internet上外部主机的IP,如22.2.2.2
NAT路由器一边连接内网,一边连接外网的话,两边就分别是Inside/Outside。Inside这边的是local地址。Outside这边的是Global地址。从Inside进来到Outside出去,是先路由再做NAT转换。从Outside进来到Inside出去,是先做NAT转换再路由。
NAT类型:
静态NAT:手动建立内部IP到外部IP的映射。例如企业内部设备(如企业内部E-mail服务器或FTP服务器等)需要被外部访问时
动态NAT:将一个内部IP转成一组外部IP池中的一个IP地址。当PC有一个向外的连接请求时,从地址池中取出一个IP,当连接断开时将IP重新放回池中。但外部用户不能访问内部特定地址。例如企业内部共用多个公网IP供员工访问外网
超载NAT:动态NAT的一种特殊形式,也称为PAT,NAPT,或端口复用NAT。用不同端口号将多个内部IP转成一个外部IP。例如整个企业共用一个公网IP时。局域网共享上网。超载NAT对于节省IP地址是最为有效的。
(可以这样理解映射关系:静态1对1,动态多对多,超载多对1)
配置静态NAT:
文章图片
PC要去访问外部Server。配置一条静态NAT,使得PC访问外网时,PC的IP地址(3.3.3.1)不直接暴露给外网,而是经由NAT转换成12.1.1.1去访问外网。同样外网想访问PC时,外网只知道12.1.1.1这个IP地址,经NAT转换成内网PC的IP地址后,才能访问PC。
文章图片
配置好静态NAT的1对1映射关系后,查看NAT映射表项:
文章图片
NAT路由器上打开debug,让PC去ping 2.2.2.2 source 3.3.3.1,观察NAT转换过程:
文章图片
反过来,外部Server去ping 12.1.1.1 source 2.2.2.2访问PC,NAT转换过程是上面的逆过程:
文章图片
配置动态NAT:
拓扑图上就一台PC,假设有多台PC连接NAT路由器访问外网,可以在NAT路由器上配一个地址池,范围是12.1.1.16-12.1.1.31。Inside端多台PC访问外网时,由NAT路由器从地址池中分配一个IP供PC使用:
文章图片
假设有4台PC分别去访问外网:ping 2.2.2.2 source 3.3.0.1 / 3.3.1.1 / 3.3.2.1 / 3.3.3.1。打开NAT路由器的debug,观察地址分配及地址转换过程:
文章图片
可以看到不同的PC(不同的源IP地址)被从地址池中分配了不同的公网IP地址。查看动态NAT的转换列表:
文章图片
被动态分配的外网IP地址是有timeout时间的,超时地址将回到地址池。
文章图片
最后,如果动态NAT地址池中没有足够的地址,会出现提示NAT转换失败,并丢弃数据包。
配置超载NAT / PAT / NAPT / 端口复用NAT:
是一种特殊的动态NAT,地址池中只有一个地址,靠端口号来区分源地址:
文章图片
【NAT】假设有2台PC分别去访问外网:ping 2.2.2.2 source 3.3.0.1 / 3.3.1.1。打开NAT路由器的debug,观察地址分配及地址转换过程:
文章图片
发现2台PC的IP地址都被转换成同一个外网IP地址12.1.1.16。查看NAT表项,发现转换的地址都一样的,但端口号不同:
文章图片
推荐阅读
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- NAT(网络地址转换技术)
- KubeDL HostNetwork(加速分布式训练通信效率)
- 【React|【React Native填坑之旅】从源码角度看JavaModule注册及重载陷阱
- Book|Book Review: Foundations of Statistical Natural Language Processing
- Grey's|Grey's Anatomy 之病例篇
- 清晨朗读327(How|清晨朗读327:How Successful People Network with Each Other)
- 手写|手写 React-Native 方法调用式的 Modal 弹框、Toast 提示
- 本文转载于THE|本文转载于THE ILLUMINATUS! TRILOGY