这个问题如何向 /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/8
。12: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 都来自同一网络。