如何向 /etc/network/interfaces 添加额外的 IPv6 地址?

如何向 /etc/network/interfaces 添加额外的 IPv6 地址?

这个问题如何向 /etc/network/interfaces 添加额外的 IP 地址?主要是问我想要什么,除了我想添加更多IPv6地址在同一个接口中,eth0无需增加eth0.1等等。该ifconfig命令执行 IPv6 如下ifconfig eth0 add ... ...如何添加更多 IPv6 地址eth0

答案1

看起来(使用 ifupdown 版本 0.7.53.1 测试)我们可以向文件iface eth0 inet6中添加几个节interfaces,这比接受的答案更具声明性。以下代码指示 ifupdown 套件使用无状态自动配置和两个额外的静态 IPv6 地址作为eth0网络接口:

iface eth0 inet6 auto
iface eth0 inet6 static
  address 2001:db8::dead:beef
  netmask 64
iface eth0 inet6 static
  address 2001:db8::c0de:d00d
  netmask 64

答案2

在你引用的问题中,第二个答案显示 IPv4 的等效解决方案。对于 IPv6,该/etc/network/interfaces文件应包含以下内容:

iface eth0 inet6 static
  address 2001:db8:1:2::2
  netmask 64
  # Add additional IPv6 addresses when $IFACE goes up
  up ip -6 addr add 2001:db8:1:2::3/64 dev $IFACE
  up ip -6 addr add 2001:db8:1:2::4/64 dev $IFACE
  # Remove them when $IFACE goes down
  down ip -6 addr del 2001:db8:1:2::3/64 dev $IFACE
  down ip -6 addr del 2001:db8:1:2::4/64 dev $IFACE

您将需要iproute2安装该包,但无论如何您应该使用ip而不是ifconfig


对于将整个 /64 添加到接口:服务器故障, 喜欢 ”在 Debian 上向网络接口添加整个 IPv6 /64 块“ 或者 ”我可以将(大)块地址绑定到接口吗?“。也许他们可以帮助你。

答案3

这是我在接口文件中为多个 v6 地址所做的操作。首先要考虑的是不能有两个网关,因此在第二个地址下添加一条路由。

iface ens802f0 inet6 static
    address 1154::1154
    netmask 64
    gateway 1154::130


iface ens802f0 inet6 static
     address 1063::105
     netmask 64
     up ip -6 route add 1063::/64 via 1063::254 || true

答案4

我也感到很困惑。不过你可以随意给出任意多的地址行。而且它确实有效。

例子:

iface eth0 inet6 static
  address fd12:3456:789a::dead:beef/64
  address fd12:3456:789a::c0de:d00d/64
  # add more address lines here
  gateway fe80::1

无需中断即可申请:

ifup eth0

您也可以通过这种方式删除地址。无需ifdown

供参考:

# dpkg -l ifupdown | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-================================================
rc  ifupdown       0.8.36       amd64        high level tools to configure network interfaces

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm

笔记:

您甚至可以使用 IPv4 地址来提高可读性。例如,在 ProxMox 上,我根据虚拟机的内部 IPv4 映射虚拟机的 IPv6,从而提供如下地址:

fd01:7e57::192.168.0.1/64假设您的 IPv6 前缀是/64

fd12:3456:789a上例中的 是来自私有 IPv6 区域fd00::/8,它类似于 IPv4 上的私有网络,如10.0.0.0/812:3456:789a用 40 个随机位替换。这样就剩下 16 位供子网形成/64(在 IPv6 中,网络不能超出/64,因此这应该始终是您在正确启用 IPv6 的网络上可以看到的最大地址掩码)。

RIPE 甚至写道:

强烈建议不要分配长度超过 /56 的前缀,因此您的选择是:如果您想要一个简单的寻址方案,请为每个最终用户使用 /48

读:

  • 您的 ISP 的“官方”(静态)分配应该为您提供 /48。
  • 动态分配(从 ISP 到您的路由器)通常会给您一个 /56。
  • 在我们的网络内部,您使用 /64,因此您可以根据自己的需要将 /56 分成 256 个不同的网络。

如果您在路由器上看到 /64,这并不意味着您的 ISP 有问题。如果没有其他配置,许多路由器默认为 /64。通常所有 ISP 都允许路由器请求 /56。

因此,在另一端(服务器),您可以放心地假设,所有按照 /56 使用相同前缀的 IP 都来自同一网络。

相关内容