最近正在研究iSCSI的多路徑問題,在suse linux上測試一下,不料遇到了一個棘手的問題。
主機1 系統suse enterprise 11 sp1 兩塊網卡,
eht0 192.168.10.11
eth1 192.168.10.12
主機2 系統oracle enterprise linux 5.5 兩塊網卡,
eht0 192.168.10.54
eth1 192.168.10.55
使用同一臺交換機連接這4塊網卡。
在主機1上用帶源地址的ping命令測試連通性,同時執行下面的ping命令。
suse11:~ # ping -I eth0 -s 65000 192.168.10.54 用主機1的eth0去ping主機2的eth0,通暢。(簡稱p1)
suse11:~ # ping -I eth1 -s 65000 192.168.10.55 用主機1的eth1去ping主機2的eth1, 通暢。(簡稱p2)
實驗1:斷開主機1上eth1的連接,p2的ping超時,p1的ping保持通暢。測試正常。
實驗2:斷開主機1上eth0的連接,p1的ping超時,p2的ping也超時。測試不正常。
經過反覆實驗,觀察網卡狀態,和在網上搜索相關問題得到答案:linux下如果多塊網卡的ip被設置成同網段,所有的數據包會通過一塊網卡發出去,當斷開這條鏈路,數據包默認不會自動切換到正常的網卡上。
可是我在主機2上做相同的實驗卻獲得了成功。
在主機1上用帶源地址的ping命令測試連通性,同時執行下面的ping命令。
[root@OEL5 ~]# ping -I eth0 -s 65000 192.168.10.11
用主機2的eth0去ping主機1的eth0,通暢。(簡稱p3)
[root@OEL5 ~]# ping -I eth1 -s 65000 192.168.10.12
用主機2的eth1去ping主機1的eth1, 通暢。(簡稱p4)
實驗3:斷開主機2上eth1的連接,p4的ping超時,p3的ping保持通暢。測試正常。
實驗4:斷開主機2上eth0的連接,p3的ping超時,p4的ping保持通暢。測試正常。
有可能oracle enterprise linux 5.5在網絡的設置上改動了什麼地方,讓他和suse有所不同。在google和baidu兩位大哥那裏我已經問他們好幾天了,給我一些解決方法都不太好使,哪位做過這方面的研究並且對suse linux有了解的大蝦給我個解決方法。