博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IP NAT常见误解笔记
阅读量:6260 次
发布时间:2019-06-22

本文共 1577 字,大约阅读时间需要 5 分钟。

NAT是解决公网地址不够用大家最熟悉的网络技术之一,而NAT最依赖的是NAT translation表项,至于NAT的概念和背景这里不再解释,网络上有很多关于此的类似介绍,自己搜索即可。下面主要是针对大家对NAT的一些误解进行分析。

误解一:inside和outside

大家常规的理解可能认为inside就是指私网;outside就是公网。

正解一:

inside和outside是在接口上用户自己定义的,只不过我们习惯于在路由器的内部接口定义inside;外部接口定义outside。

误解二:source和destination

大家在配置IP NAT的时候可能会用如下命令:ip nat inside source static/route-map/acl   interface/pool。有些人对命令中的source的理解可能表示要转换哪些源,源可以是static地址,挂ACL或者route-map的匹配地址。destination有些人可能认为是source要转换成的地址,可以是pool或者interface(overload)。

正解二:

其实NAT中的source和destination是用来表示要进行转换的IP地址的源地址还是目的地址的。source表示对NAT转换的IP数据包的源地址进行转换;同理,destination表示对NAT转换的IP数据包的目的地址进行转换。

误解三:static和dynamic

有些人认为静态转换就是一对一的转换;动态转换就是多对一的转换。

正解三:

根据NAT表项的建立原因我们把NAT分为静态和动态。static在内存中的转换表项一直存在,不管有没有数据包经过;动态表示只有数据包经过的时候才会在内存上建立表项。可以简单归纳为:动态NAT解决的是从内到外发起的访问,之后在内存中形成表项,这样回包就没问题了;静态NAT解决的是从外到内的访问,转换表一旦建立一直保存。根据有没有利用端口复用技术(多IP/单IP),再结合静态和动态就有下面四种组合:

  1. 动态一对一:从内部发起的流量,一个内部IP地址都有一个对应的公网IP地址表项对其进行替换转换。(现实环境用得不多,因为NAT本身就是解决公网IP地址不够用的问题而设计的,实际应用场景没有那么多的公网IP地址可以提供转换)

  2. 动态多对一:也就是我们所说的动态PAT,用高位随机端口号+同一公网IP地址来解决一个公网地址无法和内网多个私有地址一一映射的问题。表示从内部发起的流量,每个内部IP地址都用同一个公网IP地址+端口号对其IP数据包源地址进行一一转换。(目前解决内网上网问题的最常用手段)

  3. 静态一对一:从外到内发起的流量,一个公网IP对应一个内网IP。(常用于internet到内部特定IP地址的全端口访问)。

  4. 静态端口转换:在实际运用环境中经常被用来打通或者发布特定服务以便在internet上可以访问到内部服务器的特定端口。

误解四:搞不清inside local/inside global和outside local/outside global之间的关系

正解四:

不用记得那么复杂,只要了解转换一定是发生在local和global之间即可,此外,local和global的区别在于,local是一个在本地可路由的地址;global是一个在internet可路由的地址。同时记住,转换一定发生在同一边,也就是要么就在inside转换;要么就在outside进行转换,也就是说不可能出现inside local和outside global互转的情况。

注意:

动态转换项在内存上的表现只有数据包进行了NAT转换时才会出现;而静态转换项,只要一旦配置就一直停留在内存里,尽管使用命令clear ip nat translation *。

转载地址:http://akqsa.baihongyu.com/

你可能感兴趣的文章
C#发送电子邮件
查看>>
xslt中的for-each排序
查看>>
在SQL Server2005中进行错误捕捉
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
文本编辑器实例
查看>>
EntityFramework之一对一关系(二)
查看>>
我心中的核心组件(可插拔的AOP)~调度组件quartz.net续~任务管理器的开发(CronTrigger强大功能)...
查看>>
Html2Text
查看>>
spring boot + mybatis实现一对一,一对多的样码之一种
查看>>
Android OpenGL ES 应用(二) 纹理
查看>>
谈谈D2
查看>>
解决li在ie,firefox中行高不一致问题
查看>>
[译] OpenStack Liberty 版本中的53个新变化
查看>>
How to mount usb device in CentOS?
查看>>
机器学习中的贝叶斯方法---当后验分布无法计算时如何求得预测模型?
查看>>
Kali无法定位软件包的解决方案
查看>>
Webwork 学习之路【01】Webwork与 Struct 的前世今生
查看>>
串口调试问题 【转】
查看>>
利用客户端缓存对网站进行优化
查看>>
Elasticsearch之head插件安装之后的浏览详解
查看>>