
目前,我一直在嘗試為要新增到介面的其他 IP 位址標記介面。假設介面是 eth0 ( $IFACE
),那麼$ADDRFAM="inet"
我可以將 IPv4 位址新增到標記別名中,eth0
如下所示:
ip -f $ADDRFAM addr add 10.0.0.1 dev $IFACE:test label $IFACE:test
這翻譯成
ip -f inet addr add 10.0.0.1/32 dev eth0:test label eth0:test
其中-f inet
,(即 IPv4)是隱含的,可以省略。
粗略檢查一下ifconfig
收益率:
eth0:test Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
inet addr:10.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
嘗試使用 IPv6 進行類似的操作 ( $ADDRFAM="inet6"
):
ip -f $ADDRFAM addr add fdbf:98fc:66a5:de67::1/128 dev $IFACE:test label $IFACE:test
擴展到
ip -f inet6 addr add fdbf:98fc:66a5:de67::1/128 dev eth0:test label eth0:test
表示沒有失敗,但也沒有產生預期的結果:
eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
[...]
inet6 addr: fdbf:98fc:66a5:de67::1/128 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5641 errors:0 dropped:0 overruns:0 frame:0
TX packets:5483 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:792232 (792.2 KB) TX bytes:861177 (861.1 KB)
eth0:test Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
inet addr:10.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
是什麼賦予了?為什麼標籤沒有給出在下面列出地址的預期效果eth0:test
?
為了進行比較,各行ip addr
如下所示:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
[...]
inet 10.0.0.1/32 scope global eth0:test
valid_lft forever preferred_lft forever
[...]
inet6 fdbf:98fc:66a5:de67::1/128 scope global
valid_lft forever preferred_lft forever
答案1
我意識到這個答案適用於不同風格的 'NIX,但我會再嘗試一下,看看這是否有幫助。
Q. 在 Red Hat / Fedora / RHEL / CentOS Linux 下如何為虛擬主機新增多個 IPv6 位址到 eth0?
A. Red hat/CentOS Linux系統下新增網路別名有兩種方法。您需要編輯下列任一檔案才能新增 IPv6 網路別名。
/etc/rc.local - Use ifconfig command and shell loop.
/etc/sysconfig/network-scripts/ifcfg-eth0 - Set special variable called IPV6ADDR_SECONDARIES for eth0 virtual hosting (network alias).
首先,設定IPv6主伺服器IP位址和預設路由器。一旦建立了基本的 IPv6 連接,您就可以為 NIC 設定別名。 /etc/rc.local配置
若要將 2607:f0d0:1002:11::10 新增至 2607:f0d0:1002:11::50(總共 40 個)虛擬別名,請開啟 /etc/rc.local 檔案,輸入:
vi /etc/rc.local
附加以下程式碼:
IP別名
對於 {10..40} 中的 ip;執行 /sbin/ifconfig eth0 inet6 新增 2607:f0d0:1002:11::${ip}/64;完畢
您可以在 shell 提示字元下鍵入相同的命令來立即啟動網路別名。或建立一個 shell 腳本並從 /etc/rc.local 本身呼叫它:
!/bin/bash
INETP="2607:f0d0:1002:11::" PRE="64" START=2 END=200 INT_IF="eth0" IFCONFIG=/sbin/ifconfig echo -n "新增 IPv6 別名..." for i in { $START..$END} do $IFCONFIG $INT_IF inet6 add ${INETP}${i}/${PRE} done echo "完成!"
sysv 風格配置
開啟網路介面設定文件,輸入:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
依照程式碼附加輔助 IPv6 位址清單(設定 5 個別名):
IPV6ADDR_SECONDARIES="2607:f0d0:1002:11::10/64 \ 2607:f0d0:1002:11::11/64 \ 2607:f0d0:1002:11::12/64 \ 2607:f0d0:1002:11::12/64 \ 2607:002 :13/64 \ 2607:f0d0:1002:11::14/64"
儲存並關閉文件。重新啟動網路:
/etc/init.d/網路重新啟動
所以看起來 IPV6 位址本身就是一個別名。
來源:http://www.cyberciti.biz/faq/redhat-centos-rhel-fedora-linux-add-multiple-ip-samenic/