Ubuntu 14.04 虛擬機上的核心路由問題
我們在一些 Linux 虛擬機(基於雲、多個提供商,主要是 Ubuntu 14.04 和 16.04)上遇到了一些奇怪的網路行為。我們有兩個不同的網路,中間有一個 Strongswan 網關。
站點 A:網路 - 主路由器上配置的 10.104.16.0/20 VPN 網關和路由(虛擬機上不需要配置)
站點 B:網路 - 10.240.132.0/25 Strongswan 網關 - 10.240.132.15 為每個 VM 配置的路由,具體取決於與站點 A 通信的需要(或不需要)
站點 B 上需要與站點 A 虛擬機通信的虛擬機之一上的核心路由表:
# route -vn Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.240.132.1 0.0.0.0 UG 0 0 0 eth0 10.104.16.0 10.240.132.15 255.255.240.0 UG 0 0 0 eth0 10.240.132.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
現在,問題…當一切正常時,VM 會 ping 站點 A 上的 VM,這就是 traceroute 命令輸出的內容:
# traceroute 10.104.19.4 traceroute to 10.104.19.4 (10.104.19.4), 30 hops max, 60 byte packets 1 10.240.132.15 (10.240.132.15) 0.248 ms 0.228 ms 0.220 ms 2 * * * 3 10.104.19.4 (10.104.19.4) 15.048 ms 15.042 ms 15.028 ms
然後,VM 突然無法 ping 站點 A 資源,traceroute 輸出如下所示:
# traceroute 10.104.19.4 traceroute to 10.104.19.4 (10.104.19.4), 30 hops max, 60 byte packets 1 10.104.19.4 (10.104.19.4) 0.552 ms 0.567 ms 0.616 ms 2 * 10.104.19.4 (10.104.19.4) 0.659 ms 0.707 ms 3 * * * 4 * * * 5 * * * 6 * * * 7 * * *^C
它看起來完全隨機。當這種情況最終發生時,我將刪除然後再次添加路由:
# route del -net 10.104.16.0 gw 10.240.132.15 netmask 255.255.240.0 # route add -net 10.104.16.0 gw 10.240.132.15 netmask 255.255.240.0
當然,這解決了一段時間的問題它不會持續很長時間……知道什麼可能出錯或我做錯了什麼嗎?
謝謝你們 ;)
好吧,沒關係…在意識到連接將每 5 分鐘準確失去一次後,在上午 9:00、上午 9:05、上午 9:10…我查看了 Strongswan 日誌,發現它會在以下時間重新啟動服務那些給定的時間(程序接收 SIGKILL 命令)。
我們和領隊談過,他說
嗯,如果找不到遠端 IP,我們可能在 strongswan 伺服器上執行 cron 作業 ping 遠端 IP 並重新啟動服務。
確實是的。而且因為那個遠端 IP 早已不復存在,沒有人禁用或更新這個未記錄的工作,它從一開始就重新啟動了服務。直到我們在複製 Postgres 數據庫時注意到了這個問題。