子介面已在另一台主機上使用 - 全新介面

子介面已在另一台主機上使用 - 全新介面

我在 RHEL 機器上建立了一個子接口,eth0:1並複製了eth0配置並更改了所有設定以反映eth0:1和 IP 位址。但是,當我發出此錯誤時,ifup eth0:1我收到此錯誤:

[root@server-1 ~]# ifup eth0:1
Error, some other host already uses address 192.168.0.2.

[root@server-1 ~]# ping -c 1 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.

--- 192.168.0.2 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 10000ms

但是,當我發出:ifconfig eth0:1 192.168.0.2 up命令有效且沒有錯誤。我會使用後面的命令,但當我使用它時,它會幹擾我的主eth0接口,並擾亂我的 DNS 流量的路由,因為它與子接口位於同一子網中eth0:1。我會再發一篇關於 DNS 問題的文章。

這些是介面的配置

[root@server-1 network-scripts]# cat ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:50:56:AF:0C:06"
IPADDR="192.168.0.1"
IPV6INIT="yes"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="192.168.2.10"
DNS2="192.168.3.10"

[root@server-1 network-scripts]# cat ifcfg-eth0:1
DEVICE="eth0:1"
BOOTPROTO="static"
HWADDR="00:50:56:AF:0C:06"
IPADDR="192.168.0.2"
IPV6INIT="yes"
NETMASK="255.255.255.0"
ONBOOT="no"
TYPE="Ethernet"
DNS1="192.168.2.10"
DNS2="192.168.3.10"

ip addr show

[root@server-1 network-scripts]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:AF:0c:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0..255 scope global eth0
    inet 192.168.2.1/30 brd 192.168.2.3 scope global eth0:2
    inet 192.168.2.5/30 brd 192.168.2.7 scope global eth0:3
    inet6 fe80::250:56ff:fe97:c06/64 scope link
       valid_lft forever preferred_lft forever

答案1

此訊息由配置網路介面的進程設定檔/etc/sysconfig/network-scripts/ifup-eth產生。/etc/sysconfig/network-scripts/ifup-aliasesifcfg-ethX

當您更仔細地檢查腳本時,您會發現此錯誤出現在arping試圖找出ifcfg-ethX檔案中指定的 IP 位址在網路中是否唯一的命令之後。

這些腳本嘗試避免網路中的重複配置。Ifconfig不在乎,它只是將 IP 位址加入到介面中。檢查您的設定檔兩次,因為某些 IP 位址可能出現兩次。

最後,值得一提的是,您可以將ARPCHECK=no指令放入ifcfg-ethX文件中以停用此檢查。

答案2

我在閱讀 dsmsk80 答案並查看 ifup-eth 腳本後解決了這個問題。關鍵行是這樣的:

    /sbin/arping -c 2 -w 3 -D -I <INTERFACE> <VLAN>

所以對於OP的例子:

    /sbin/arping -c 2 -w 3 -D -I eth0:1 192.168.0.2

我最近用過這個的東西返回了這個:

    > /sbin/arping -c 2 -w 3 -D -I eth0.1508 192.168.8.1
    ARPING 192.168.8.1 from 0.0.0.0 eth0.1508
    Unicast reply from 192.168.8.1 [00:1C:C4:A1:D8:39]  0.605ms
    Sent 1 probes (1 broadcast(s))
    Received 1 response(s)

然後我可以取得此 MAC (00:1C:C4:A1:D8:39) 並在交換器的動態位址部分中找到它。這又告訴我已經使用該 IP 的介面的 VLAN 和連接埠號碼。

相關內容