CentOS備份ifcfg-eth*檔案帶來的網路故障相關問題

來源:互聯網
上載者:User

我們都知道/etc/sysconfig/network-scripts/ifcfg-eth*下面的檔案,是用於描述LINUX環境下網路設定的。但你可能不知道,因為ifup等指令碼的原因,在備份ifcfg-eth*,拷貝成另一個檔案時可能會帶來一些意向不到的問題。今天就收到使用者的報障是與其相關的。下面做一個樣本示範。

一、故障現象
根據使用者的描述,機器上只有一張網卡,並且配置了一個固定IP地址和網段。如:

引用# pwd
/etc/sysconfig/network-scripts
# cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.104
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F0:98:69
inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef0:9869/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3832 errors:0 dropped:0 overruns:0 frame:0
TX packets:3243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:463579 (452.7 KiB) TX bytes:431767 (421.6 KiB)
Interrupt:177 Base address:0x1400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
但路由表顯示:
引用# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
可見,多出了一個額外的到10.0.0.0網段的路由。而該路由剛好與其防火牆路由網段相同,導致用戶端經過防火牆訪問該機器時,提示無法串連。但其餘相同配置的機器上則沒有該問題。

二、故障排查
首先,我懷疑是有人手動增加了一條路由,就刪掉它:
引用# route del -net 10.0.0.0 netmask 255.255.255.0
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
再用用戶端測試,訪問正常。
重啟伺服器,發現10.0.0.0網段的路由再次被添加。這說明並不是人工加入的,而是在機器啟動的時候就啟用了。所以,我從機器啟動執行的指令碼來分析,但查看/etc/rc.sysinit、/etc/rc.d/*、/etc/rc.local等指令碼都沒發現異常的問題。
以往的經驗告訴我,可能與/etc/sysconfig/network-scripts目錄有關,所以,我執行:
引用# grep '10.0.0' *
ifcfg-eth0.081210:IPADDR=10.0.0.1
network-functions-ipv6: # test 10.0.0.0/8 (RFC 1918 / private)
好了,發現問題了。ifcfg-eth0.081210內容如下:
引用# cat /etc/sysconfig/network-scripts/ifcfg-eth0.081210
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.255.255.0
執行重啟網路的步驟,有:
引用# service network restart
正在關閉介面 eth0: [確定]
關閉環回介面: [確定]
彈出環回介面: [確定]
彈出介面 eth0: [確定]
彈出介面 eth0.081210: [確定]
原來啟動網路時多啟用了一個eth0.081210網卡,而其DEVICE=eth0,ONBOOT=yes,網段就是10.0.0.0/24,所以路由表中就多出了一條不正常的路由。

三、解決故障
找到原因,解決就不難了,刪除多餘的設定檔即可。執行:
引用# mv /etc/sysconfig/network-scripts/ifcfg-eth0.081210 /tmp
# service network restart
正在關閉介面 eth0: [確定]
關閉環回介面: [確定]
彈出環回介面: [確定]
彈出介面 eth0: [確定]
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
四、原因
追究原因,是使用者在20081210進行了網路調整,期間為安全期間,把原來的ifcfg-eth0備份成ifcfg-eth0.081210。而網路在啟動時,讀取到該檔案的內容後,誤以為這也是一個網卡,就啟用了。
/etc/rc.d/network是網路服務的設定檔,其中有:
引用interfaces=$(ls ifcfg* | \
LANG=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
-e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
LANG=C sort -k 1,1 -k 2n | \
LANG=C sed 's/ //')
可見,這會把ifcfg-eth0.081210也視為一個網卡。這就是故障發生的底層原因了。
所以,啟動網路服務是依賴指令碼執行的,可能會存在一些誤判的問題,建議不要在network-scripts目錄中放入非必要的設定檔咯,特別是ifcfg開頭的檔案。

四、測試
我們做個簡單的測試,就是利用這樣的設定檔,建立一個虛擬網卡。有這樣一個設定檔:
引用# cat /etc/sysconfig/network-scripts/ifcfg-eth0.0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.255.255.0
重啟網路:
引用# service network restart
正在關閉介面 eth0: [確定]
關閉環回介面: [確定]
彈出環回介面: [確定]
彈出介面 eth0: [確定]
彈出介面 eth0.0: [確定]
# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:F0:98:69
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:177 Base address:0x1400
明白了嗎?O(∩_∩)O哈哈~


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.