我正在尝试将我的应用程序移植到ipv6,我的当前代码会动态显示别名IP地址,如下所示:
eth0 Link encap:Ethernet HWaddr 00:16:35:68:21:5B
inet addr:192.168.1.245 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:35ff:fe68:215b/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:278885750 errors:0 dropped:0 overruns:0 frame:0
TX packets:68117973 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:68976932662 (64.2 GiB) TX bytes:39384521280 (36.6 GiB)
Interrupt:169
eth0:1 Link encap:Ethernet HWaddr 00:16:35:68:21:5B
inet addr:192.168.1.246 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
Interrupt:169
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6060179 errors:0 dropped:0 overruns:0 frame:0
TX packets:6060179 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2366257047 (2.2 GiB) TX bytes:2366257047 (2.2 GiB)
eth0:1将由应用程序动态添加。它使用ioctl来做到这一点。我想对IPV6地址做同样的事情。我试过这个Assign ipv6 address using ioctl。但示例代码是将IPV6地址添加到现有接口eth0而不是eth0:1或eth0:2,即使我将接口名称指定为eth0:1。任何人都可以帮忙,因为我是IPV6的新手。
答案 0 :(得分:1)
这是正常行为。在IPv4中,每个接口只能有一个地址。要添加更多地址,您必须创建“假”接口,例如eth0:1
。 IPv6每个接口总是有多个地址,因此eth0:1
之类的解决方案不会用于IPv6。