針對 Azure 路由伺服器問題進行疑難排解
了解如何針對一些常見的 Azure 路由伺服器問題進行疑難排解。
連線能力問題
為什麼我的網路虛擬設備 (NVA) 在公告路由伺服器的預設路由 (0.0.0.0/0) 之後,失去網際網路連線能力?
當您的 NVA 公告預設路由時,路由伺服器會針對虛擬網路中的所有虛擬機器 (VM) (包括 NVA 本身) 為其編寫程式。 此預設路由會將 NVA 設定為所有網際網路繫結流量的下一個躍點。 如果您的 NVA 需要網際網路連線能力,您必須設定使用者定義的路由 (UDR),從 NVA 中覆寫這個預設路由,並將 UDR 連結至裝載 NVA 的子網路。 否則,NVA 主機電腦會持續傳送網際網路繫結流量,包括 NVA 傳回至 NVA 本身的流量。 如需詳細資訊,請參閱使用者定義路由。
路由 | 下一個躍點 |
---|---|
0.0.0.0/0 | 網際網路 |
為什麼 NVA 在使用 GatewaySubnet 上的使用者定義路由 (UDR) 強制所有流量流向防火牆之後,會失去與路由伺服器的連線?
如果您想要使用防火牆檢查內部部署流量,可以使用 GatewaySubnet (與具有 UDR 的 GatewaySubnet 相關聯的路由表) 上的使用者定義路由 (UDR) 強制所有流向防火牆的內部部署流量。 不過,此 UDR 可能會強制其控制平面流量 (BGP) 流向防火牆來中斷路由伺服器與閘道之間的通訊 (如果您針對目的地為具有路由伺服器的虛擬網路檢查流量,就會發生此問題)。 若要避免此問題,您必須將另一個 UDR 新增至 GatewaySubnet 路由表,以排除控制平面流量,使其無法強制流向防火牆 (以防不需要/不可能將 BGP 規則新增至防火牆):
路由 | 下一個躍點 |
---|---|
10.0.0.0/16 | 10.0.2.1 |
10.0.1.0/27 | VirtualNetwork |
10.0.0.0/16 是虛擬網路的位址空間,而 10.0.1.0/27 是 RouteServerSubnet 的位址空間。 10.0.2.1 是防火牆的 IP 位址。
我新增了一個以虛擬網路閘道作為下一個躍點類型的使用者定義路由 (UDR),但此 UDR 沒有發揮作用。 這是預期行為嗎?
是,這是預期行為。 路由伺服器虛擬網路和對等互連虛擬網路內的子網路不支援以虛擬網路閘道作為下一個躍點類型的使用者定義路由。 不過,如果您想要將下一個躍點設定為網路虛擬設備 (NVA) 或網際網路,則新增以 VirtualAppliance 或網際網路作為下一個躍點類型的使用者定義路由可以受到支援。
在 VM 網路介面的有效路由中,為什麼我的下一個躍點類型設定為 [無] 的使用者定義路由 (UDR?
如果您公告從 NVA 到路由伺服器的路由,該路由與另一個使用者定義的路由完全相符,則公告的路由的下一個躍點必須有效。 如果公告的下一個躍點是未設定後端集區的負載平衡器,則此無效的路由將優先於使用者定義的路由。 在網路介面的有效路由中,無效的公告路由會顯示為用戶定義的路由,並將下一個躍點類型設定為 [無]。
為什麼在將服務端點原則關聯到 RouteServerSubnet 或 GatewaySubnet 後會失去連線?
如果您將服務端點原則關聯到 RouteServerSubnet 或 GatewaySubnet,則 Azure 的基礎管理平台與這些個別的 Azure 服務 (路由伺服器和 VPN/ExpressRoute 閘道) 之間的通訊可能會中斷。 這可能會導致這些 Azure 資源進入狀況不良的狀態,進而導致您的內部部署工作負載與 Azure 工作負載之間的連線遺失。
為何在使用自定義 DNS 而不是路由伺服器虛擬網路的預設 (Azure 提供的 DNS) 之後,失去連線能力?
針對路由伺服器部署在 中的虛擬網路,如果您未使用預設的 (Azure 提供的) DNS,請確定您的自定義 DNS 組態能夠解析公用功能變數名稱。 這可確保 Azure 服務(路由伺服器和 VPN/ExpressRoute 閘道)能夠與 Azure 的基礎管理平面通訊。 請參閱 Azure DNS 私人解析程式檔中關於通配符規則的附注。
為什麼我在設定兩者之間的 BGP 對等互連之後,無法從 NVA TCP Ping 到 Azure 路由伺服器上的 BGP 對等 IP?
在某些 NVA 中,您必須將靜態路由新增至路由伺服器子網路,才能從 NVA TCP Ping 路由伺服器,並避免 BGP 對等互連。 例如,如果路由伺服器位於 10.0.255.0/27 中,而您的 NVA 位於 10.0.1.0/24 中,您必須將下列路由新增至 NVA 中的路由表:
路由 | 下一個躍點 |
---|---|
10.0.255.0/27 | 10.0.1.1 |
10.0.1.1 是子網路中的預設閘道 IP,而這個子網路是裝載 NVA (或更準確地說,其中一個 NIC) 的所在。
當我將路由伺服器部署至已具有 ExpressRoute 閘道和/或 Azure VPN 閘道的虛擬網路時,為什麼我無法透過 ExpressRoute 和/或 Azure VPN 連線至內部部署網路?
當您將路由伺服器部署至虛擬網路時,我們需要更新閘道與虛擬網路之間的控制平面。 在此更新期間,虛擬網路中的 VM 將有一段時間無法連線至內部部署網路。 強烈建議您排定要在生產環境中部署路由伺服器的維護。
控制平面問題
為什麼我的內部部署網路在連線到 Azure VPN 閘道時,未收到路由伺服器公告的預設路由?
雖然 Azure VPN 閘道可以從其 BGP 對等互連接收預設路由,包括路由伺服器,但不會將預設路由公告至其他對等互連。
為什麼我的 NVA 不會從路由伺服器接收路由,即使 BGP 對等互連已啟動?
路由伺服器使用的 ASN 是 65515。 確定您針對 NVA 設定不同的 ASN,以便可在 NVA 與路由伺服器之間建立 eBGP 工作階段,讓路由傳播可以自動發生。 確定您在 BGP 設定中啟用「多重躍點」,因為您的 NVA 和路由伺服器位於虛擬網路的不同子網路中。
我的 NVA 與路由伺服器之間的 BGP 對等互連已啟動。 我可以看到路由在兩者之間正確地交換。 為什麼 VM 的有效路由表中沒有 NVA 路由?
如果您的 VM 與 NVA 和路由伺服器位於相同的虛擬網路中:
路由伺服器會公開兩個 BGP 對等 IP,這些 IP 裝載於兩個 VM 上,共同負責將路由傳送至虛擬網路中執行的其他所有 VM。 每個 NVA 都必須將兩個相同的 BGP 工作階段 (例如,使用相同的 AS 號碼、相同的 AS 路徑,以及公告相同的路由集) 設定為兩個 VM,以便虛擬網路中的 VM 可以從 Azure 路由伺服器取得一致的路由資訊。
當您有兩個以上的 NVA 執行個體時,如果您想要將一個 NVA 執行個體指定為主動執行個體,而將其他指定為被動執行個體,則「可以」針對來自不同 NVA 執行個體的相同路由公告不同的 AS 路徑。
如果您 VM 所在的虛擬網路與裝載 NVA 和路由伺服器的虛擬網路不同。 檢查兩個 VNet 之間是否已啟用 VNet 對等互連,以及 VM 的虛擬網路上是否已啟用 [使用遠端路由伺服器]。
為什麼在將路由伺服器部署至虛擬網路之後,ExpressRoute 的等價多重路徑 (ECMP) 功能已關閉?
當您透過多個 ExpressRoute 連線將相同路由從內部部署網路公告至 Azure 時,通常預設會啟用 ECMP,讓前往這些路由的流量從 Azure 回到內部部署網路。 目前,當您部署路由伺服器時,ExpressRoute 與路由伺服器之間的 BGP 交換中會遺失多重路徑資訊,因此來自 Azure 的流量只會在其中一個 ExpressRoute 連線上周遊。
後續步驟
若要了解如何建立及設定 Azure 路由伺服器,請參閱: