如何从接口中删除一个 IPv6 地址?

如何从接口中删除一个 IPv6 地址?

我的主板linux kernel 2.6.23.12eth0接口有两个 IPv6 地址。

root@ramana:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FF:AB:CD:EF:85:94  
          inet addr:192.168.20.107  Bcast:192.168.20.255 Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe3c:8594/64 Scope:Link
          inet6 addr: 2001:1890:110e:1111::a245/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12197 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:587799 (574.0 KiB)  TX bytes:2057305 (1.9 MiB)
          Interrupt:10 Base address:0x4000

我想禁用其中的第一个 ipv6 地址。我该怎么做?

嗯,有一个问题这里。但我的内核里没有这个文件。

答案1

一般来说,你真的不应该删除链路本地地址,因为它是核心 IPv6 功能(例如邻居发现(即 IPv6 ARP))运行所必需的。

也就是说,您可以使用ip addr以下方法添加或删除 IPv4/6 地址:

ip addr del 2001:1890:110e:1111::a245/64 dev eth0

ip是现代 Linux 网络配置工具,ifconfig在 Linux 上应避免使用。它仍然可以删除单个地址,但仅限于 IPv6:

ifconfig eth0 del 2001:1890:110e:1111::a245/64

答案2

第一个 IPv6 地址是链路本地地址。每个 IPv6 接口都必须有一个。一个接口有多个 IPv6 地址是完全正常的。

答案3

要从接口中删除 IPv6 地址,您需要为“ip”命令指定“-6”参数,如下所示:

$ sudo ip -6 addr del fe80::20d:b9ff:fe3c:8594/64 dev eth0

如果没有它,命令也能成功执行,但是界面不会发生任何变化。

答案4

  1. 进入 VLAN 1 接口的接口配置模式。SEFOS# configure terminal SEFOS(config)# interface vlan 1
  2. 删除为该接口配置的 IPv6 地址。SEFOS(config-if)# no ipv6 address fec0::1111:0:1 96 SEFOS(config-if)# no ipv6 address fe80::203:2ff:fe03:501 link-local SEFOS(config-if)# exit SEFOS(config)# exit
  3. 查看 VLAN 1 接口的 IPv6 信息。SEFOS# show ipv6 interface vlan 1

vlan1 已启动,线路协议已启动 IPv6 已启用 链路本地地址:fe80::214:4fff:fe6c:560f ... 当您在 IPv6 接口中删除链路本地地址时,会自动配置链路本地地址。或者单击以下链接获取更多信息 https://docs.oracle.com/cd/E39109_01/html/E24662/z40000f71393620.html

相关内容