我有一个 OpenBSD PF 防火墙,我为其添加了 IPv6 隧道(使用HE.net 隧道代理)。
我可以从防火墙 ping/traceroute IPv6 地址。现在我想为防火墙后面的服务器提供 IPv6 服务。它们都有公共 IP 地址(我没有使用任何类型的 NAT)。因此,我希望能够根据隧道提供的路由 IPv6 前缀为它们提供 IPv6 地址,并让流量通过 OpenBSD 上的隧道(gif0 接口)正确路由。
其他一些细节。这基本上是一个透明的防火墙,尽管外部接口确实有一个用于管理的 IP 地址。我是否也需要向内部接口添加 IPv6 地址以提供路由,或者我是否可以通过隧道接口透明地路由所有内容?对于 IPv6 流量,PF 规则是什么样的,它们与普通 IPv4 PF 规则有何不同?
我发现这一页,但它太旧了(对于 OpenBSD 2.9 来说,几乎有 10 年了)。我正在寻找适合我情况的更新说明。
编辑:除了下面接受的答案之外,我还需要添加以下 PF 规则以使传入流量正常工作:
tunnelserveripv4address="xx.xx.xx.xx" # This is the IPv4 HE.net tunnel endpoint
ext_if="em0"
pass in proto 41 from $tunnelserveripv4address to $ext_if keep state
pass out proto 41 from $ext_if to $tunnelserveripv4address keep state
答案1
首先,您应该将 LAN NIC 配置为来自路由 (!) /64 的地址;这::1
是理想的选择。然后,启动radvd
LAN 接口——它不需要任何配置。
PF 不发挥任何作用,或者更确切地说,确保它不会妨碍。