Azure Firewall 实现SNAT

    下边来看SNAT怎么实现,SNAT的配置方法和DNAT是不一样的,DNAT可以直接在FW上配置,SNAT我们可以通过UDR实现,如果想让所有出站流量都经过FW,我们可以通过UDR配置默认路由的出口为FW,这样访问internet的流量就必须要走FW了



    首先来看下FW做DNAT时对IP的改写,从家里电脑curl到FW IP

    Azure Firewall 实现SNAT


    在Nginx log里可以看到源IP会是FW的IP,也就是说在做DNAT时,FW会重写请求的源IP

Azure Firewall 实现SNAT


    而如果curl 服务器的公网IP

Azure Firewall 实现SNAT


    Log里会看到源IP是客户端的公网IP

Azure Firewall 实现SNAT


    

    从各个region curl到web服务器公网IP,包括FW的VNET和peer的VNET

直接Curl web服务器公网IP,看到的源IP都是服务器的公网IP,说明出站是直接走到internet,不经过FW,没有SNAT


    下边来看SNAT怎么配置,首先在各个region创建UDR

Azure Firewall 实现SNAT


添加默认路由到FW

Azure Firewall 实现SNAT


    关联到各个subnet中

Azure Firewall 实现SNAT

    之后尝试从VM 继续curl到web服务器,会发现流量被FW拒绝了,因为没有出站的允许规则Azure Firewall 实现SNAT



    解决这个问题可以在FW上开通网络规则

Azure Firewall 实现SNAT

 

    10.88网段的可以curl www.baidu.com

    

    不在88网段的就不行

Azure Firewall 实现SNAT





    再次添加其他网段的网络规则Azure Firewall 实现SNAT



    尝试单独再添加linux2所在网段的规则Azure Firewall 实现SNAT


    再次尝试,可以连接,DNAT就简单实现了

Azure Firewall 实现SNAT




上一篇:SNAT与DNAT


下一篇:iptables网络防火墙和SNAT原理实战