ifconfig 忽略 IPv6 上的別名

ifconfig 忽略 IPv6 上的別名

當我使用 ifconfig 為介面 eth0:0 新增 IPv4 位址時,它已正確建立:

ifconfig eth0:0 add 192.168.10.10

這可以透過 ifconfig 或“ip a”進行驗證。

然而,當我新增 IPv6 位址時,ifconfig 似乎忽略了介面的別名:

ifconfig eth0:0 add fc00::2/48

然後,位址 fc00::2/48 將會新增至 eth0,而不是加入 eth0:0,無論 eth0:0 之前是否存在 IPv4 位址。

我在 CentOS 5 上執行此操作,但我猜這是 ifconfig 的一般行為?我做錯了什麼還是故意的?我經常為介面使用單獨的別名,並且我希望也將其用於 IPv6。

親切的問候 馬丁

答案1

這是故意的。新增別名是因為在 IPv4 中,一個介面上通常只能有一個 IP 位址。添加別名是為了解決這個問題。對於 IPv6,每個介面有多個位址是很正常的,因此不再使用別名。

不過,該ifconfig工具並不是管理此問題的最簡單的工具。該ip工具使這變得更加容易。

這是顯示目前地址的方式:

# ip addr
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 UNKNOWN qlen 1000
    link/ether 00:0c:29:75:36:4e brd ff:ff:ff:ff:ff:ff
    inet 83.137.17.100/26 brd 83.137.17.127 scope global eth0
    inet6 2001:4038:0:16::16/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe75:364e/64 scope link 
       valid_lft forever preferred_lft forever

您可以新增額外的地址,如下所示:

# ip addr add 2001:db8::1/64 dev eth0

它只是顯示為清單中的地址之一:

# ip addr
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 UNKNOWN qlen 1000
    link/ether 00:0c:29:75:36:4e brd ff:ff:ff:ff:ff:ff
    inet 83.137.17.100/26 brd 83.137.17.127 scope global eth0
    inet6 2001:db8::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:4038:0:16::16/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe75:364e/64 scope link 
       valid_lft forever preferred_lft forever

相關內容