IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)系統(tǒng)集成網(wǎng)絡(luò)故障 → 實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)是否斷線的幾種辦法

實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)是否斷線的幾種辦法

時(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 工具,下載地址:http://directory.fsf.org/All_Packages_in_Directory/ethtool.html

  編譯安裝:

  # ./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)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問(wèn)題多種解決方法 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問(wèn)題多種解決方法 “無(wú)法瀏覽網(wǎng)頁(yè)” 十招解決疑難雜癥 “無(wú)法瀏覽網(wǎng)頁(yè)” 十招解決疑難雜癥 路由器無(wú)線不能上網(wǎng)等故障排除 路由器無(wú)線不能上網(wǎng)等故障排除 解決VPN路由設(shè)置不能訪問(wèn)外網(wǎng)的問(wèn)題 解決VPN路由設(shè)置不能訪問(wèn)外網(wǎng)的問(wèn)題

相關(guā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ī)步驟