您好,登錄后才能下訂單哦!
Azure 防火墻是托管的基于云的網絡安全服務,可保護 Azure 虛擬網絡資源。 它是一個服務形式的完全有狀態防火墻,具有內置的高可用性和不受限制的云可伸縮性。可以跨訂閱和虛擬網絡集中創建、實施和記錄應用程序與網絡連接策略。 Azure 防火墻對虛擬網絡資源使用靜態公共 IP 地址,使外部防火墻能夠識別來自你的虛擬網絡的流量。 該服務與用于日志記錄和分析的 Azure Monitor 完全集成。
來看下這樣的一個架構,web服務器默認路由指向FW,web服務器前有一個standard load balancer,web服務器是它的后端池,LB上配置了80端口的規則,web服務器本身沒有公網IP,再這樣的架構下,有兩個問題
Web服務器是否能訪問internet
在internet通過standard lb是否能訪問web服務器上的nginx
我們一個個來看,standard lb后端的服務器,默認是不能訪問internet的,那么如果它的默認路由指向Firewall呢?
經過測試發現,訪問完全沒有問題
那么,第二個問題呢,首先來看下LB的配置,其實很簡單
可以看到只是簡單配置了一個80的規則
但是測試發現,lb的ip一直沒辦法ping通
但是,在把指向FW的默認路由去掉之后,我們發現可以ping通了
這是為什么呢?其實微軟的文檔已經給了我們解釋
這種現象叫非對稱路由,理解上其實很簡單,因為入站的時候是通過LB進來的,但是回去的時候因為默認路由的原因,卻要從FW出去,FW上沒有這個會話,就回導致把包丟掉
非對稱路由
非對稱路由是指數據包采用一條路徑發往目標,并采用另一條路徑返回到源。 如果子網的默認路由轉到防火墻的專用 IP 地址,并且使用的是公共負載均衡器,則會出現非對稱路由問題。 在這種情況下,將通過負載均衡器的公共 IP 地址接收傳入的負載均衡器流量,但返回路徑將通過防火墻的專用 IP 地址。 由于防火墻是有狀態的,并且無法識別此類已建立的會話,因此會丟棄返回的數據包。
這個問題其實也是可以有辦法解決的,官網的解釋是說,如果防火墻后邊跟的是public lb,則需要創建一個到防火墻public ip的UDR規則,下一條是internet,否則azure會通過默認路由發給防火墻的private ip,同時流量的入口也不能是LB,而應該是FW
下邊我們就來試下,整個流量是這樣的FW -> Public Standard LB -> WEB
首先,先在FW上配置到LB的NAT規則
但是測試發現,端口連不上
接下來再試下添加到FW 公網IP的路由
這次終于訪問成功了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。