我的新ISP给了我一个带有IPv6前缀的公共/56地址,可以在以下地方播放:
2001:b:c:d:5:6:7:8/56
我想创建两个子网,由这样的linux服务器来划分:
internet - fritzbox - server - pc
但我需要了解如何将前缀传播到内部子网。到目前为止,我配置了服务器的外部接口,以接受路由器广告,并从Fritz!Box请求一个IPv6前缀:
/etc/systemd/network/eth1.网络
[Match]
Name=eth1
[Network]
DHCP=ipv6
IPv6AcceptRA=yes
IPv6PrefixDelegation=dhcpv6
IPForward=yes
在systemctl重新启动之后,externel接口获得一个地址:
ip -6 addr
...
inet6 2001:b:e:f:1:2:3:4/64 scope global noprefixroute dynamic
到目前为止这是对的吗?同样令人困惑的是:互联网连接的前缀和界面的前缀在下半部分有所不同:
internet: 2001:b:c:d::
server: 2001:b:e:f::
现在主要的问题是:如何配置内部接口?它能从Fritz!框中请求另一个前缀吗?
/etc/systemd/network/eth0.网络
[Match]
Name=eth0
[Network]
???
我的服务器正在运行Debian,系统d 239来自(因为稳定中的232还不支持前缀委托)。我删除了ifupdown包,因为我的目标是学习如何只使用来解决这个问题。
发布于 2020-08-28 00:38:54
在过去的几天里,我已经找到了一个类似的配置。
在本文撰写之时,在中有一个bug,它不会在发出前缀的接口上放置一个委托前缀地址。然而,接口确实给网段上的设备提供前缀。
您的外部接口的IPv6地址不匹配前缀是由于您的ISP的网络配置。我的ISP给出了两个不同的DHCPv6地址块,其中一个与指定的前缀相同,另一个不是。当DHCPv6租约到期时,它会随机改变。
我从Archlinux Wiki获得的配置--首先配置“外部”接口(连接到Fritz!框的接口)
/etc/systemd/network/EXTERNAL.network
[Match]
...
[Network]
DHCP=yes
IPForward=yes
IPv6AcceptRA=yes
IPv6DuplicateAddressDetection=1
IPv6PrivacyExtensions=kernel
您已经拥有的eth1代码看起来是正确的(假设eth1是您的外部接口)。在我的配置中,我在接口上同时启用了DHCPv4和DHCPv6客户机。
现在,您的内部接口应该配置如下:
/etc/systemd/network/INTERNAL.network
[Match]
...
[Network]
IPv6PrefixDelegation=dhcpv6
IPv6DuplicateAddressDetection=1
IPv6PrivacyExtensions=no
LinkLocalAddressing=ipv6
[IPv6PrefixDelegation]
RouterLifetimeSec=3600
RouterLifetimeSec
很重要,因为它将接口配置为提供从DHCPv6接口接收到的前缀。
https://unix.stackexchange.com/questions/485956
复制相似问题