目前,我无法尝试为要添加到接口的其他 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”,但我会再尝试一次,看看是否有帮助。
问:如何在 Red Hat / Fedora / RHEL / CentOS Linux 下为虚拟主机的 eth0 添加多个 IPv6 地址?
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 文件,输入:
六、/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::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/