Linux

Ubuntu 14.04 虛擬機上的核心路由問題

  • June 29, 2018

我們在一些 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 數據庫時注意到了這個問題。

引用自:https://unix.stackexchange.com/questions/452438