NAT地址转换类型之我见
谈到NAT的类型其实很多时候都搞得很复杂,什么静态NAT,EASY IP,地址池方式,服务器方式等等,但是其实明白了就说了两件事,一种NAT解决了从内网到外网的访问,这也是传统的NAT,需要转换源IP地址所以可以称之为SNAT,另一种呢就是提供外网到内网的访问,比如内部服务器模式,这样就需要向外部呈现外网IP,外网用户发起连接后在NAT设备处进行DIP转换,所以也被称为DNAT。
SNAT:源地址转换方式主要用于私网用户访问外网时,在NAT设备上将私网源IP地址装换为公网源IP地址来访问Internet。
然而SNAT其实按照具体的应用可以划分的更加详细:
1)静态NAT:静态IP既可用于私网用户访问公网用户,也可以用于公网访问私网。
a.静态一对一NAT:也就是静态指定单一的私网地址跟单一公网地址的映射。
b.静态网段NAT:除了一对一静态指定映射关系之外,还可以指定网段对网段的映射。
2)Easy ip方式:该种方式是将所有出接口的匹配ACL的数据包源IP均转换为出接口的公网IP。
3)NAPT:其实单纯的IP地址转换NAT并不能真正的节省地址,因为归根就地NAT还是一对一的关系,一个私网IP只能转换为一个公网IP,而真正能够节省IP地址的方式取决与NAPT,也就是可以转换端口。不同的IP可以转换为不同的端口来标识。
4)地址池方式:地址池方式的NAT一般提前定义一个公网地址池NAT ADDRESSS-GROUP,然后将源IP转换为地址池中的选取到的公网IP地址。
DNAT:目的地址转换方式主要用于公网用户访问私网服务器,该种情况下公网用户只知道私网服务器的公网IP,所以想该公网IP地址发起连接,然后按照定义的DNAT地址规则进行转换。
NAT的实现也是基于ACL的,ACL用于包分类,数据包经过NAT设备匹配ACL规则,如果匹配则按照提前定义的地址转换规则进行转换。但是可能有一些具体细节的东西需要进行说明。
问题一:NAT在系统中的位置及处理流程
答案:NAT处于TCP/IP的IP层底部。
问题二:ICMP协议PAT方式是如何实现的?
答案:TCP,UDP属于传输层协议,存在端口信息,所以PAT转换的时候直接转换端口既可,ICMP协议不存在端口信息,所以转换的时候就不能用PORT来标识不同的源主机。具体实现的时候往往利用了ICMP identification字段进行转换。
问题三:地址池中地址是怎么进行选择的?
答案:一般地址池中的地址转换算法一般有两个:一个是轮询方式,另一个是哈希算法。NAT其实仍然是一对一的转换,所以地址池中的地址都被占用之后其他的所有的连接就因为分配不到资源而使得连接失败。
问题四:配置NAT之后要不要配路由呢?
答案:NAT一般是屏蔽了路由,不需要配置路由就可以通信,但是这种情况仅仅适用于转换后的地址网段跟出接口IP是同一网段的情况,如果转换后的IP跟接口IP处于不同网段那该怎么办呢?该种情况出接口转换不存在任何的问题,问题会发生在返回的报文如何回来呢?因为不知道路由所以包将被丢弃,所以该种情况下就必须配置返回的路由保证返回的报文可以到达NAT设备。
问题五:NAT实现负载分担的说明及简单的配置?
答案:NAT负载分担一般用于内部服务器模式的,可以通过配置NAT SERVER的负载分担选项实现,当然在配置的过程中还可以指定权值,这样一来就可以实现NAT负载分担了。
问题六:NAT对分片报文的处理?
答案:NAT对分片报文的处理首先需要搞清楚分片跟NAT的顺序,肯定是先分片,每个分片报文都复制了一份跟首包相同的IP报头,所以就可以直接交给NAT设备进行转换就可以了。返回报文就必须先转换后重组,这样可能就有一个问题了,返回的报文不可能同时到达,此时就可能存在问题。
问题七:双向NAT的实现?
答案:其实理解了前面讲述的SANT和DNAT就可以完全通过配置实现双向NAT,两个私网用户都通过NAT实现访问,这样在报文出方向配置SANT而在报文入方向配置DNAT就可以了。
问题八:NAT多实例?
答案:NAT多实例是MPLS的典型应用,所谓的多实例instance就是一个×××网络用一个instance id来标识,这样就可以实现定义多实例的NAT转换方式。
关于NAT的细节需要注意的地方很多,一时半会也难以说得明白,具体使用的时候碰到了在讲吧。