SNAT和DNAT原理及应用

前言

SNAT:当内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换功能称为SNAT,主要用于内部共享IP访问外部网络

DNAT:当内部地址需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部将公网IP转换为私网IP,此转换功能称为DNAT,主要用于内部服务对外发布。

SNAT原理及应用

SNAT的典型应用环境

局域网主机共享单个公网IP地址接入Internet。(私有IP不能在Internet中正常路由)

SNAT策略的原理:

  • 源地址转换,Source Network Address Translation
  • 修改数据包的源地址

SNAT源地址转换过程:

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP。
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP。
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分。

DNAT原理及应用

服务器一般不会暴露在公网中,极易被人攻击。服务器一般使用内网IP,所以访问服务器时需要进行目标地址转换。

DNAT策略的应用环境:

  • 在Internet中发布位于企业局域网内的服务器

DNAT策略的原理:

  • 目标地址转换,Destination Network Address Translation
  • 修改数据包的目标地址

DNAT源地址转换过程:

  • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP。
  • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP。

小贴士:

  • 客户机想访问服务器时,访问的是网关地址,由网关去找服务器的内网地址。
  • 如果多台服务器使用同一个网关,那么通过不同的端口号来对应不同的服务器。

总结

SNAT源地址转换过程(针对客户端):

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP。
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP。
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分。

DNAT源地址转换过程(针对服务器):

  • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP。
  • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP。
  • 客户机想访问服务器时,访问的是网关地址,由网关去找服务器的内网地址。
  • 如果多台服务器使用同一个网关,那么通过不同的端口号来对应不同的服务器。
未经允许不得转载:Cooders'S Blog » SNAT和DNAT原理及应用