<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux網(wǎng)絡(luò)的管理員的經(jīng)驗(yàn):網(wǎng)卡要匹配(圖)

          Linux網(wǎng)絡(luò)的管理員的經(jīng)驗(yàn):網(wǎng)卡要匹配(圖)

          作者: 時(shí)間:2006-12-13 來源:網(wǎng)絡(luò) 收藏
          筆者是一個(gè)Linux網(wǎng)絡(luò)的管理員,網(wǎng)絡(luò)拓?fù)淙鐖D1。在局域網(wǎng)內(nèi),有兩臺(tái)關(guān)鍵的服務(wù)器,一個(gè)是主服務(wù)器、一個(gè)是備份服務(wù)器,中間通過心跳線連接。服務(wù)器A使用紅旗 Linux 4.0,作為文件服務(wù)器。

            心跳線是用于連接A、B兩臺(tái)服務(wù)器間的網(wǎng)線。在這兩臺(tái)服務(wù)器A、B中,A為工作機(jī),B為備份機(jī)。在服務(wù)器上都配有兩塊網(wǎng)卡,其中一塊專門用于兩臺(tái)服務(wù)器(節(jié)點(diǎn))間的通訊。安裝在服務(wù)器上的軟件通過心跳線來實(shí)時(shí)監(jiān)測對(duì)方的運(yùn)行狀態(tài)。系統(tǒng)在運(yùn)行中一旦發(fā)現(xiàn)服務(wù)器出現(xiàn)故障,可以把該服務(wù)器上的所有進(jìn)程轉(zhuǎn)移到備份服務(wù)器上,從而為客戶提供不間斷的服務(wù)。同時(shí),還具有系統(tǒng)崩潰的智能檢測與處理系統(tǒng),可以利用各種手段來檢測硬件、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)及系統(tǒng)軟件的故障。這樣可以在最大限度上保證網(wǎng)絡(luò)的正常運(yùn)行,這也稱為“心跳檢測”。心跳線主要利用一條RS-233檢測鏈路來完成。采用ping命令方式檢測驗(yàn)證系統(tǒng)宕機(jī)檢測的準(zhǔn)確性。

            一天,發(fā)現(xiàn)Linux服務(wù)器A連接心跳線的網(wǎng)卡由于硬件的磨損老化(RTL8139AS、100M),出現(xiàn)物理故障。隨即到計(jì)算機(jī)市場購買一塊最常見的10Mb/100Mb自適應(yīng)網(wǎng)卡—Realtek多功能模塊(Multifunction Mode)單芯片RTL 8139D(L)的網(wǎng)卡。它的兼容性很好,幾乎可以工作在所有Linux主要發(fā)行版本。安裝過程很順利,系統(tǒng)自動(dòng)識(shí)別。兩臺(tái)機(jī)器都可正常運(yùn)行,設(shè)置網(wǎng)卡IP地址后,發(fā)現(xiàn)通過心跳線服務(wù)器A和服務(wù)器B卻不能連通。由于心跳線是通過網(wǎng)卡相連來檢測服務(wù)器狀態(tài)的,所以要重點(diǎn)查看每臺(tái)機(jī)器心跳線連接的網(wǎng)卡狀態(tài)及配置,可經(jīng)檢查網(wǎng)卡狀態(tài)并沒有問題,網(wǎng)卡燈也是亮的。難道是網(wǎng)線沒插好或是有問題?重新用一根確認(rèn)正常的網(wǎng)線替換下原網(wǎng)線,可是兩個(gè)服務(wù)器之間的心跳線還是不通,至此已基本排除了硬件方面的問題,估計(jì)還是網(wǎng)卡的設(shè)置有問題。進(jìn)入兩臺(tái)機(jī)器的網(wǎng)卡狀態(tài)選項(xiàng),將兩臺(tái)機(jī)器的網(wǎng)卡狀態(tài)一項(xiàng)一項(xiàng)地進(jìn)行比較。



          1.首先查看Linux服務(wù)器A網(wǎng)卡現(xiàn)在的工作模式,輸入命令:

              #mii-tool -v
              eth0: negotiated 100baseTx-FD, link ok
              product info: vendor 00:00:00, model 0 rev 0
              basic mode: autonegotiation enabled
              basic status: autonegotiation complete, link ok
              capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
              advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
              link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
            從以上信息中可以看出,這塊網(wǎng)卡工作在10M全雙工自適應(yīng)模式下,“10BaseTx-FD”意為10M Full Duplex。而服務(wù)器B連接心跳線網(wǎng)卡工作在100Mbit/s全雙工狀態(tài)下。

            原來服務(wù)器A,B使用的是都是10/100Mbit/s自適應(yīng)以太網(wǎng)卡,設(shè)計(jì)速度為100Mbit/s。服務(wù)器A更換新網(wǎng)卡后,網(wǎng)卡自動(dòng)選擇狀態(tài)為10M全雙工自適應(yīng)模式。由于兩邊網(wǎng)卡所選擇的工作狀態(tài)不一致,導(dǎo)致網(wǎng)絡(luò)不通。

            2.下面我們查看如何修改網(wǎng)卡工作模式輸入命令:

             ?。ii-tool --help
              usage: mii-tool [-VvRrwl] [-A media,... | -F media] [interface ...]
              media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
              (to advertise both HD and FD) 100baseTx, 10baseT
            media可選的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。Interface代表所選擇的網(wǎng)卡,如eth0、eth1等,默認(rèn)為eth0。

            3.修改網(wǎng)卡工作在10M雙工模式下,輸入命令:#mii-tool -F 100baseTx-FD eth0

            再使用ping命令檢測連接狀態(tài),結(jié)果顯示連接正常,問題解決。

            目前有許多自適應(yīng)的網(wǎng)卡,按照原理,應(yīng)能正確適應(yīng)速率和雙工方式,但實(shí)際上,由于品牌的不一致,往往不能正確實(shí)現(xiàn)全雙工方式。只有手工強(qiáng)制設(shè)定才能解決。 因此,我們在設(shè)置網(wǎng)絡(luò)設(shè)備參數(shù)時(shí),一定要參考服務(wù)器或者其他工作站上的網(wǎng)絡(luò)設(shè)備參數(shù),盡量能使各個(gè)設(shè)備匹配工作。另外大家在使用自適應(yīng)網(wǎng)卡時(shí)最好設(shè)置一個(gè)初始的速率,且最好兩邊速率相同,而不要使用自適應(yīng)。速率設(shè)置的問題常常會(huì)導(dǎo)致網(wǎng)絡(luò)時(shí)斷時(shí)續(xù)。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();