0

我正在尝试将我的应用程序移植到 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 地址做同样的事情。我尝试使用 ioctl 分配 ipv6 地址。但是,即使我将接口名称指定为 eth0:1,示例代码也会将 IPV6 地址添加到现有接口 eth0 而不是 eth0:1 或 eth0:2。任何人都可以帮忙,因为我是 IPV6 的新手。

4

1 回答 1

2

这是正常行为。在 IPv4 中,每个接口只能有一个地址。要添加更多地址,您必须创建“假”接口,例如eth0:1. eth0:1IPv6 每个接口总是有多个地址,因此IPv6 不使用类似的变通方法。

于 2013-10-29T10:54:37.397 回答