時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
相信現(xiàn)在很多公司或網(wǎng)吧開(kāi)始考慮雙線接入,來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的均衡負(fù)載或冗余(備份)線路,保持網(wǎng)絡(luò)的不間斷性。但是如何才能檢測(cè)某條線路斷了呢?有以下幾種辦法:
1. 物理連接中斷(比如網(wǎng)線出現(xiàn)問(wèn)題)
這個(gè)可以通過(guò)SNMP來(lái)檢測(cè)(需要現(xiàn)安裝 net-snmp 包),如下:
先查看各網(wǎng)卡的設(shè)備描述編號(hào):
# snmpwalk -v 1 -c public localhost|grep ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: dummy0
IF-MIB::ifDescr.3 = STRING: eth0
IF-MIB::ifDescr.4 = STRING: eth1
IF-MIB::ifDescr.5 = STRING: tunl0
IF-MIB::ifDescr.6 = STRING: gre
上面顯示 eth0 的編號(hào)是3
查看 eth0 的狀態(tài):
# snmpwalk -v 1 -c public localhost IF-MIB::ifOperStatus.3
IF-MIB::ifOperStatus.3 = INTEGER: up(1)
如果顯示 up 表示連接正常,顯示 down 表示網(wǎng)絡(luò)中斷了。
補(bǔ)充:
更簡(jiǎn)單的辦法是利用 ethtool 工具,下載地址:
編譯安裝:
# ./configure && make && make install
測(cè)試:
# ethtool eth0
....
Link detected: yes
如果最后一行顯示 yes 表示連接正常,顯示 no 表示網(wǎng)絡(luò)中斷了。
2. 邏輯連接中斷(比如網(wǎng)關(guān)的線路出了問(wèn)題等)
可以通過(guò)每10s發(fā)送一個(gè)小的ping包到網(wǎng)關(guān),看是否有回應(yīng),一般網(wǎng)關(guān)都是允許ping的。
這個(gè)可以通過(guò)一個(gè)expect程序(netwatch.exp)來(lái)完成,下面這個(gè)腳本發(fā)送一個(gè)字節(jié)為1的ping包給網(wǎng)關(guān),并分析ping的輸出信息,如果為 0% packet loss,表示正常,以0退出。如果超時(shí)(1秒鐘),以1退出。
#!/usr/bin/expect
set target [lindex $argv 0]
set timeout 1
spawn ping -c 1 -s 1 $target
expect {
" 0% packet loss" {
exit 0
}
timeout {
exit 1
}
}
比如網(wǎng)關(guān)1為192.168.1.1,網(wǎng)關(guān)2為192.168.2.1,那么要監(jiān)測(cè)這兩個(gè)網(wǎng)關(guān)的話,可以這樣:
#!/bin/sh
netwatch.exp 192.168.1.1
result1=$?
netwatch.exp 192.168.2.1
result2=$?
if [ "$result1" eq 0 ] && [ "$result2" eq 0 ] ; then
# 如果上次檢測(cè)時(shí)連接丟失,而此次恢復(fù)正常
if [ -e /var/run/lost-connection ] ; then
do some recovery action here ...
rm /var/run/lost-connection
fi
# 如果網(wǎng)關(guān)1不可達(dá)
elif [ "$result1" ne 0 ] ; then
change default route to 192.168.2.1
do some action here, such as iptables NAT
# 創(chuàng)建連接丟失標(biāo)識(shí)
touch /var/run/lost-connection
# 如果網(wǎng)關(guān)2不可達(dá)
elif [ "$result2" ne 0 ] ; then
change default route to 192.168.1.1
do some action here, such as iptables NAT
# 創(chuàng)建連接丟失標(biāo)識(shí)
touch /var/run/lost-connection
fi
雖然可以通過(guò)iptables的MASQUERADE來(lái)實(shí)現(xiàn)自動(dòng)切換,但是如果加了策略路由,就不行了。
以上只是個(gè)人的想法,希望起到拋磚引玉的作用,如果大家有更好的辦法或建議,請(qǐng)不要吝嗇提出來(lái)哦!
關(guān)鍵詞標(biāo)簽:監(jiān)測(cè)網(wǎng)絡(luò)
相關(guān)閱讀
熱門文章 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問(wèn)題多種解決方法 “無(wú)法瀏覽網(wǎng)頁(yè)” 十招解決疑難雜癥 路由器無(wú)線不能上網(wǎng)等故障排除 解決VPN路由設(shè)置不能訪問(wèn)外網(wǎng)的問(wèn)題
人氣排行 解決VPN路由設(shè)置不能訪問(wèn)外網(wǎng)的問(wèn)題 登錄SSH服務(wù)器失敗問(wèn)題的分析及解決 光纖上網(wǎng) 路由器設(shè)置頁(yè)面進(jìn)不去怎么辦 核心交換機(jī)故障現(xiàn)象及解決辦法 無(wú)線網(wǎng)卡連接不上怎么辦_無(wú)線網(wǎng)卡連接不上解決方法 路由設(shè)置不當(dāng) 導(dǎo)致VPN無(wú)法訪問(wèn)外網(wǎng) 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問(wèn)題多種解決方法 徹底避免環(huán)路問(wèn)題 正確配置交換機(jī)步驟