我处于 ISP 路由器后面的双栈 IPv4/IPv6 环境中,该路由器负责处理所有 IPv6 设置,因此分配的 IPv6 地址不能假定为静态的。
我的Linux服务器自动配置了以下地址样式:
inet 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 2a02:...snip...:cc29 prefixlen 64 scopeid 0x0<global>
inet6 fd98:...snip...:cc29 prefixlen 64 scopeid 0x0<global>
inet6 fe80:...snip...:cc29 prefixlen 64 scopeid 0x20<link>
ipv4 的本地网络很简单,但是如何在 ip6tables 中引用本地网络上的设备。我已经为简单情况添加了规则:
-A blockin -p tcp -m tcp -m state --source fe80::/10 --dport 22 --state NEW -j ACCEPT
-A blockin -p tcp -m tcp -m state --source fc00::/7 --dport 22 --state NEW -j ACCEPT
但是当它不是静态值时,我该如何处理来自本地源的全局地址的使用?
或者 IPv6 是否通过确保始终使用两个本地地址中的一个来将其定义为非问题?
答案1
拥有全局动态 IPv6 地址的常用解决方案是使用本地网络中的唯一本地地址 (ULA) 作为本地网络上的资源。这样您就可以完全控制您在网络上使用的地址。
请注意,ULA 地址不能用于访问全球互联网;这不是它们的用途。
根据您的本地网络设置,它可能就像在您的路由器(而不是您的 ISP 的路由器)配置中勾选一个复选框一样简单,以获得 ULA 寻址。