Next Previous Contents

9. Source NAT 与路由

如果您要做 SNAT﹐您会想要确定经过 SNAT 封包所传给的主机会将回应送回给 NAT 主机。例如﹐如果您映对某些传出封包到来源地址 1.2.3.4 之上﹐那么外部的路由器就必须知道要将回应封包(目的地为 1.2.3.4 )送回给该主机。这可以用如下方法做到﹕

  1. 如果您要在主机自己的地址(路由和其它所有运作皆正常)上面做 SNAT﹐您无需做任何动作。
  2. 如果您要在一个在本机网路上尚未使用的地址做 SNAT(例如﹐映对到在 1.2.3.0/24 网路上的一个可用 IP 1.2.3.99)﹐您的 NAT 主机就需要回应关于该地址的 ARP 请求﹐一如它自己本身的一样﹕最简单的方法就是建立 IP alias﹐例如﹕
    # ip address add 1.2.3.99 dev eth0
    
  3. 如果您要在一个完全不同的地址上做 SNAT﹐您就要确定 SNAT 封包抵达的机器能够路由回该 NAT 主机。如果 NAT 主机是它们的预设闸道器的话﹐是可以做到的﹐否则﹐您就要广告(advertize )一个路由(如果跑路由协定的话)﹐或是手工的在每一台参与机器上增加路由。


Next Previous Contents