NAT​(network address translation)​网络地址转换,当内网主机已经分配到了本地ip地址,但又想和互联网上的其他主机通信)时,可使用NAT,它​​支持PREROUTING、INPUT、OUTPUT、POSTROUTING四个链。

  1. 网址分类

    在分析NAT工作原理之前,我们需要了解一下网络地址的分类。网络地址可分为私网地址和公网地址两类,其中私网地址包括10.0.0.0/8、172.16.0.0/12和192.168.0.0/16三种,除此之外的其他网络地址为公网地址。

    公网地址之间可以实现相互通讯和传输数据,但私网地址无法直接出现在互联网上,要想保证私网能够访问公网,或者公网能够访问私网的服务,就必须有一个中间的角色来进行公、私网的地址转化。


  1. NAT工作原理图

NAT原理总结_服务器​​

    如上图所示,右边的为企业内网,里面布置了多台服务器,这些服务器上有各类想要被用户访问的服务;左边为公网中的某个用户。此时如果用户直接向内网的某一台服务器发起服务请求,由于内外网之间无法直通,用户的请求时无回应的,即不可访问。

    要想实现内网服务能被公网地址的用户访问,企业可以通过交换机将所有内网服务器的地址连接到防火墙服务器等设备上进行地址转换,这台防火墙服务器上要有两张网卡,一张为内网网段的负责连接内网服务器,一张为外网网卡负责连接外网用户。


  1. NAT工作流程

    还是以上图为例,假设公网中的用户想访问内网中10.0.0.2这台服务器上的的web服务,其流程如下:

    ①当地址为120.94.24.100的公网用户发起web服务访问请求时,并不能直达10.0.0.2这台内网服务器,而是会先到达企业防火墙的公网端口,由112.93.114.23来接收请求;

    ②防火墙服务器将用户的公网地址替换成自己的私网地址,即由10.0.0.1来向10.0.0.2服务器发起web服务访问请求;

    ③由于10.0.0.1和10.0.0.2在企业内网网段内,可以正常访问内网服务器,10.0.0.2会将数据发送至防火墙服务器的10.0.0.1端口;

    ④防火墙服务器在拿到内网服务器的web服务数据后,会立刻将内网web服务器的地址10.0.0.2替换成自己的公网地址112.93.114.23,并使用这个公网地址将web服务的相关访问数据发送给用户。


  1. 请求报文和响应报文

    在NAT工作流程中,由用户发起请求,经过防火墙替换网址到达10.0.0.2这台提供web服务器,一共有两次过程,我们将这两个过程的请求信息称为请求报文;由web服务器返回数据给防火墙,再经过防火墙替换网址到达用户的数据也有两次过程,我们将这两个过程的数据称为响应报文。


  1. SNAT和DNAT

    请求报文中,防火墙服务器对源地址进行了转换;响应报文中,防火墙服务器对目标地址进行了转换。这个过程中所进行的地址转换,就是我们说的NAT网络地址转换。其中,请求报文中的源地址转换称为SNAT,响应报文中的目标地址转换称为DNAT。

    由于上面流程说的是公网访问内网的情况,更多的突出了DNAT的优势,即把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP。

    如果把上面的流程反过来,是内网访问公网中的某一服务,则会凸显出SNAT的优势,即让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,从而保护内部服务器。


  1. NAT优劣势总结

6.1 优势


    ①增加了内网服务器的安全性。由于NAT对地址进行了转换,隐藏了内网的真实ip,可以减少外部对内网服务器直接发起攻*击;

    ②节省了合法的公有地址消耗。由于NAT允许私有地址的使用,当企业有多台内部服务器时,可以通过NAT在只使用单个或少数公网地址的情况下进行连接转换,从而减少了日益减少的公有地址消耗,对企业来说也可节省开支;

    ③在网络发生变化时避免重新编址。在不使用NAT和私网的情况下,当公网地址发生变动时,需要对已经编址的所有服务器都重新进行编号,这个过程会显得十分繁琐,而NAT的存在可避免公网地址变动带来的这一负面效果。

6.2 劣势

    ①影响性能。由于使用NAT时会进行地址转换,这必然会导致信息和数据传输的延迟。

    ②无法溯源。由于NAT对地址进行了转换,在进行端对端访问时,能获取到的只是NAT转换过来的地址,而不是对方的真实地址。