
當我使用 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