Linux

啟動一個虛擬介面而不檢查它是否在其他地方啟動

  • November 8, 2015

有沒有一種方法可以在不首先發送 arping 以檢查該 IP 地址是否已在其他地方使用的情況下啟動虛擬介面?

我正在使用一種專有產品,該產品建議複製 ifup 腳本並註釋掉 arping 檢查部分。但是,ifup 腳本的自定義版本需要儲存在某個地方,這不是最好的維護方式。

有沒有更好的方法在沒有 arping 檢查的情況下調出界面?

應該能夠在 Red Hat 的網路腳本範圍內執行此操作。但是,由於這些腳本中的錯誤,您不能這樣做。


這就是我的做法:

首先,在介面啟動時完全抑制 ARP。然後在介面啟動後重新啟用它。(您必須重新啟用 ARP,否則機器將無法通信。)

要在介面初始化期間抑制 ARP,請添加到/etc/sysconfig/network-scripts/ifcfg-eth0. 這實際上會在核心級別禁用 ARP,這應該會使任何使用嘗試arping失敗。

ARP=no

要在介面啟動後重新啟用 ARP,請/sbin/ifup-local使用必要的命令創建一個文件:

#!/bin/bash
ip link set dev $1 arp on

然而,這失敗了,正是因為它導致arping失敗。由於/etc/sysconfig/network-scripts/ifup-eth腳本實際上並沒有arping足夠仔細地檢查返回程式碼,因此如果您實際設置,ARP=no則初始化將失敗,並顯示不正確的錯誤消息,聲稱 IP 地址已在使用中。


這為您留下了供應商推薦的原始選項:破解腳本,並(可選)將錯誤報告給 Red Hat。

引用自:https://serverfault.com/questions/513367