Azure Firewall 非對稱路由問題

    來看下這樣的一個架構,web服務器默認路由指向FW,web服務器前有一個standard load balancer,web服務器是它的後端池,LB上配置了80端口的規則,web服務器自己沒有公網IP,再這樣的架構下,有兩個問題 nginx

   

  1. Web服務器是否能訪問internetweb

  2. 在internet經過standard lb是否能訪問web服務器上的nginx後端


    咱們一個個來看,standard lb後端的服務器,默認是不能訪問internet的,那麼若是它的默認路由指向Firewall呢?服務器

    通過測試發現,訪問徹底沒有問題
微信

微信截圖_20191229195142.png



    那麼,第二個問題呢,首先來看下LB的配置,其實很簡單
架構

2.png



3.png


能夠看到只是簡單配置了一個80的規則負載均衡

4.png





可是測試發現,lb的ip一直沒辦法ping通ide

5.png


    可是,在把指向FW的默認路由去掉以後,咱們發現能夠ping通了
測試

6.png



    這是爲何呢?其實微軟的文檔已經給了咱們解釋blog

    這種現象叫非對稱路由,理解上其實很簡單,由於入站的時候是經過LB進來的,可是回去的時候由於默認路由的緣由,卻要從FW出去,FW上沒有這個會話,就回致使把包丟掉


    非對稱路由

    非對稱路由是指數據包採用一條路徑發往目標,並採用另外一條路徑返回到源。 若是子網的默認路由轉到防火牆的專用 IP 地址,而且使用的是公共負載均衡器,則會出現非對稱路由問題。 在這種狀況下,將經過負載均衡器的公共 IP 地址接收傳入的負載均衡器流量,但返回路徑將經過防火牆的專用 IP 地址。 因爲防火牆是有狀態的,而且沒法識別此類已創建的會話,所以會丟棄返回的數據包。

    

    7.png


    這個問題其實也是能夠有辦法解決的,官網的解釋是說,若是防火牆後邊跟的是public lb,則須要建立一個到防火牆public ip的UDR規則,下一條是internet,不然azure會經過默認路由發給防火牆的private ip,同時流量的入口也不能是LB,而應該是FW


    下邊咱們就來試下,整個流量是這樣的FW -> Public Standard LB -> WEB

    首先,先在FW上配置到LB的NAT規則

8.png


    可是測試發現,端口連不上

9.png



    接下來再試下添加到FW 公網IP的路由

10.png



    此次終於訪問成功了

11.png

相關文章
相關標籤/搜索