SNAT 和 DNAT 的区别

发布时间: 更新时间: 总字数:668 阅读时间:2m 作者: 分享 复制网址
专栏文章
  1. Linux Network
  2. Linux tap/tun 介绍
  3. Linux Veth Pair 介绍
  4. Linux Bridge 网桥介绍
  5. Linux 上设置永久网桥
  6. Linux Net Namespace 介绍
  7. 通过 Linux ip_forward 实现两个 netns 通信
  8. SNAT 和 DNAT 的区别(当前)
  9. Linux macvlan 网卡虚拟化介绍

NAT(Net Addres Trancelate,网络地址转换) 是将局域网里的内部地址(如192.168.0.x)转换成公网(Internet)上的IP地址(如1.1.1.2),以使内部地址能像有公网地址的主机一样上网和访问。NAT包括:DNAT、SNAT、MASQUERADE。

实现方式

修改ip报文的头部的source ip或者destination ipNAT通常都是router的行为。在linux中,iptables可以作为NAT执行的角色。

DNAT

DNAT(Destination Network Address Translation)修改网络包目的ip地址。当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布,比如:将 NAT 网关上的公网 IP 映射给云实例使用,使云实例能够提供互联网服务。

SNAT

SNAT(Source Network Address Translation)修改网络包源ip地址。内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部的私有IP转换为公网的公有IP网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部,比如:为VPC中无公网IP的ECS实例提供访问互联网的代理服务。SNAT是为了解决ip地址不够用的情况。

RFC 1918保留了3个网段作为private addresses

  • 10.0.0.0/8 (即 10.0.0.0 - 10.255.255.255)
  • 172.16.0.0/12 (即 172.16.0.0 - 172.31.255.255)
  • 192.168.0.0/16 (即 192.168.0.0 - 192.168.255.255)
专栏文章
  1. Linux Network
  2. Linux tap/tun 介绍
  3. Linux Veth Pair 介绍
  4. Linux Bridge 网桥介绍
  5. Linux 上设置永久网桥
  6. Linux Net Namespace 介绍
  7. 通过 Linux ip_forward 实现两个 netns 通信
  8. SNAT 和 DNAT 的区别(当前)
  9. Linux macvlan 网卡虚拟化介绍
最新评论
加载中...
Home Archives Categories Tags Statistics