在OPNsense中配置使用IPv6地址

随着互联网的发展,43亿个IPv4地址将面临使用枯竭的问题,IPv6的出现,解决了IPv4地址耗尽的难题。OPNsense从第一个发行版本开始,就支持IPv6地址技术,本文将介绍在OPNsense中配置使用IPv6地址的方法。本文假设你的ISP已使用了IPv6技术。

一 、启用全局IPv6

默认情况下,OPNsense会启用IPv6。要确保全局启用IPv6,导航到Firewall > Settings > Advanced。选中“Allow IPv6(允许IPv6)”。

启用IPv6

二、设置IPv6的WAN接口

启用了IPv6,需要配置WAN接口。转到Interfaces > [WAN] 。在“IPv6 Configuration Type(IPv6配置类型)”选项下,选择DHCPv6。这样OPNsense防火墙就可以从ISP获取可全局路由的IPv6地址。这里假设你的ISP是通过DHCP分配IPv6地址,如果你的ISP是通过PPPOE拨号分配地址,请选择PPPOE上网类型。

广域网DHCP IPv6

在“DHCPv6 Client Configuration(DHCPv6客户端配置)”部分,需要修改一些设置。 根据自己的网络情况,将“Prefix delegation size(前缀授权大小)”改为合适的值,如果修改为“ / 60”, 就可以提供16个网络了。 如果保留为默认的“ / 64”,则只有一个本地网络。 “ / 64”前缀是IPv6允许的最小网络,但可用IP地址数为2的64次方。 由于IPv6地址空间很大,即使每个人使用“ / 64”网络,也不会耗尽地址空间。

选中“Send IPv6 prefix hint(发送IPv6前缀提示)”,它会将所需的前缀大小发送到ISP。有些ISP可能有这个需要。

选中“Prevent release(防止释放)”来保留已分配的IPv6地址,保证它不会经常更改。只有当你断开连接时,IPv6地址才会更改。当然,每个ISP可能会有所不同。

WAN DHCP客户端配置

三、验证WAN IPv6地址

正确配置WAN接口后,在OPNsense仪表板上会出现两个网关,一个用于IPv4,一个用于IPv6。这里注意,无需手动为IPv6配置第二个网关。

如果要查看由ISP分配给防火墙的全局可路由IPv6地址,请转到“Interfaces > Overview”页面,向下滚动到WAN接口,然后单击箭头展开WAN接口将显示详细信息。

WAN接口概述

这里会显示全局IPv6地址。它们通常以“ 2001”或“ 2601”开头。如果可以看到,则表明WAN接口设置是正确的。

通过从WAN IPv6地址ping一个网站,可以进一步验证IPv6是否在WAN接口上正常工作。转到 Interfaces > Diagnostics > Ping。在Host栏,输入“ google.com” ,或可通过IPv6访问的其他任何网站。选择“ IPv6”作为IP协议。“源地址”保留为默认值,测试IPv6连接。

广域网IPv6 Ping

如果PING正常,收到所有数据包,则设置正确。

下面,来设置LAN网络,以便在内部网络中完全启用IPv6。

四、配置LAN接口

LAN接口分配IPv6,可以选择静态IPv6、DHCPv6、SLAAC、6rd隧道,6to4隧道和跟踪接口。本文使用与DHCPv6配合使用的“Track Interface(跟踪接口)”。SLAAC根据算法动态生成IPv6地址,SLAAC最初包含网络设备的唯一MAC地址,从隐私/安全的角度来看,在有VLAN或多个LAN接口的时候,生成确定性的IPv6地址可能会有问题的。如果只有一个LAN接口,则SLAAC是最简单的选择,因为它只需较少的配置。

要配置LAN接口,请转至Interfaces > [LAN] 。对于“IPv6 Configuration Type(IPv6配置类型)”,选择“Track Interface(跟踪接口)”。

LAN IPv6配置

将要要跟踪的“ IPv6接口”设置为WAN。对于“IPv6 Prefix ID”,可以输入0到F(十六进制)之间的任何值,因为我们有4个字节可分配给本地网络(最多16个网络)。因此,这意味着我们可以为前10个网络输入0-9,然后为11至16网络输入AF。对于本文中的网络,则从从1开始,类似于IPv4(192.168.1.0)。

LAN IPv6跟踪接口

五、创建DHCPv6防火墙规则

此时,还没有为接口分配任何IPv6地址(链接本地地址除外)。由于使用“跟踪接口”设置将DHCPv6用于所有LAN接口,因此需要创建防火墙规则,允许来自ISP的DHCPv6通信将IPv6地址分配给本地设备。因为地址是ISP来分配,所以必须允许DHCPv6流量传递到本地网络。这是IPv6与IPv4的区别之一

默认情况下,在WAN / LAN接口上,OPNsense防火墙被配置为允许LAN接口上的所有出站IPv4 / IPv6连接,但阻止来自网络外部的入站连接,除非网络中的设备启动了与网络外部某个设备的通信。因此,默认情况下,使用IPv6的设备将受到保护。但是,我们还是应该通过防火墙规则进一步锁定网络访问。因为在启用了IPv6的情况下,内部的网络设备将暴露于Internet,使用一组适当的防火墙规则,仍然可以保证网络的安全。

要添加DHCPv6规则来允许ISP分配内部IPv6地址,请转到Firewall > Rules > WAN。然后点击“添加”。“Action”选择“Pass”,“ TCP/IP版本”选择“ IPv6”。“协议”选择“ UDP”。“源”选择“any”,“源端口范围”选择547。“目标”为“any”,“目标端口范围”设置为546。输入规则的描述说明。

WAN DHCPv6防火墙规则

保存并应用更改后,内部的网络设备应该能够获取IPv6地址,可以访问启用了IPv6的网站。

六、基本的IPv6防火墙规则集

在某些情况下,有一些IPv4和IPv6规则可以合并为一个规则,因为OPNsense允许在添加/编辑规则时选择两个协议。当允许或阻止特定接口上的端口或定义非特定于任一协议的规则时,该功能非常有用。

从OPNsense 19.7起,增加了查看无法修改的IPv4和IPv6协议自动生成哪些防火墙规则的功能。它由左侧的文件夹图标和右侧的自动生成规则计数指示。如果单击该计数,它将显示自动生成的规则。可以在“防火墙规则”页面下的LAN接口上注意到,有几个IPv6规则允许使用链接本地地址访问LAN网络上的DHCPv6服务器。这些规则对于IPv6正常运行至关重要,这就是为什么不能禁用它们的原因。

局域网自动生成的IPv6防火墙规则

防火墙规则至少需要以下3条:

  1. 允许访问接口网关的规则
  2. 禁止访问网络上其他VLAN以保持网络隔离的规则
  3. 允许所有其他流量流向任何目的地的规则,该规则允许Internet访问

防火墙规则是从规则列表的顶部到底部进行评估的。一旦流量匹配特定规则,就不会评估其他规则。因此,建议将最具体/严格的规则放在首位,然后再放置更一般的规则。除非将所有内容都严格限制,否则最后一条规则应该是“允许所有其他流量”规则。对于一般网络的使用,这应该已经足够了。要记住,在达到最后一个“全部允许”规则之前,我们应该尽可能多地阻止不必要的流量,以帮助网络更加安全。

1、允许访问接口的网关

要创建访问接口网关的规则,OPNsense中已经内置了别名,您可以利用这些别名来引用接口IP地址,它允许我们结合使用IPv4和IPv6规则,规则设置如下:

防火墙规则允许网关

2、阻止访问其他VLAN

在添加“全部允许”规则之前,需要添加阻止规则以保持网络正确分段。规则如下图所示:

防火墙规则阻止对其他VLAN的访问

在此规则中,使用创建的别名来阻止所有IPv4专用网络地址,但同时也包括从ISP获得的IPv6前缀,可以在同一别名中混合使用IPv4和IPv6地址。

专用网络的别名

3、允许访问所有其他目的地

最终规则允许访问未被先前规则明确阻止的所有外部网络和设备。规则如下所示:

允许所有其他流量的防火墙规则

七、通过DHCPv6创建静态分配的IPv6地址

如果希望通过类似于IPv4的路由器为设备分配静态IPv6地址。这是集中分配静态地址的便捷方法,而无需转到每个设备并输入静态IP配置。如果使用DHCPv6,则必须采取额外的步骤来静态分配IPv6地址。

1、允许手动调整DHCPv6和路由器通告

回到上面“配置LAN接口”部分中提到的接口页面。在“跟踪IPv6接口”部分中,选中“Allow manual adjustment of DHCPv6 and Router Advertisements(允许手动调整DHCPv6和路由器通告)”。

LAN IPv6跟踪接口手动配置

2、启用DHCPv6服务器

要手动配置DHCPv6,需要启用DHCPv6服务器。转到Services > DHCPv6 > [LAN]。选中“Enable DHCPv6 server on LAN interface(在LAN接口上启用DHCPv6服务器)”,然后输入所需的DHCPv6范围。此范围是自动分配给通过DHCP自动获取IPv6地址的任意网络设备范围。它不是用于静态分配IPv6地址的范围。任意静态IPv6地址都必须超出指定范围。简单操作,可以只使用IP地址的最后2个字节/16位,这可以提供65,536个地址。IPv6地址的后半部分显示在页面上,并且可以从以下范围中选择完整的地址范围:

:: - ::ffff:ffff:ffff:ffff

双冒号表示存在连续的零集,例如0000:0000:0000:0000。因此上述范围可以写为0000:0000:0000:0000 – ffff:ffff:ffff:ffff. 。此语法是IPv6地址的一种较短写法,因为它们比IPv4地址长得多。因为已经分配了IPv6地址的前半部分(委托的前缀/子网),所以DHCPv6设置仅与地址的后半部分有关,这就是在双冒号之前不显示任何内容的原因。在本文的示例中,如果要将IPv6地址的后2个字节/ 16位用于DHCP,只需输入范围:

:: - ::ffff

DHCPv6 LAN配置

3、为每个接口配置路由器通告

要调整与DHCPv6一起使用的“路由器通告”,请转到Services > Router Advertisements > [LAN]。如果局域网的所有设备都支持DHCPv6,则将“Router Advertisements(路由器通告)”设置为“Managed(托管)”,如果设备可能不完全支持DHCPv6,则将“路由器通告”设置为“Assisted(辅助)”。可以为SLAAC分配IPv6地址。

选中“Use the DNS settings of the DHCPv6 server(使用DHCPv6服务器的DNS设置)”选项,因为没有在“路由器通告”页面上为此特定接口手动指定任何DNS服务器。

路由器广告

4、静态分配IPv6地址

在完成所有配置之后,现在可以开始分配IPv6地址。创建静态IPv6地址时,你需要知道每个设备的DUID,而不是像IPv4一样使用MAC地址。DUID是由每个设备的操作系统生成的,因此即使更换了硬件,DUID仍保持不变,直到重新安装操作系统。

查找DUID的最简单方法是转到Services > DHCPv6 > Leases。它列出已通过DHCPv6分配了IPv6地址的所有设备。如果未显示设备,则可能需要重新启动设备(或防火墙)。如果先前的IPv6地址已过期(如果在手动调整所有设置之前获得了该地址),有时它们可​​能会显示在“Leases(租约)”页面中。

DHCPv6租赁

在“Leases(租约)”页面上,可以单击[+]图标来设置静态IPv6地址。这里需要确保选择的IPv6地址超出了先前指定的DHCP地址范围的范围。输入IPv6地址时,应输入完整的IPv6地址。这里只能指定IP地址的后半部分(它可以根据设备所在的接口/网络来确定前半部分),要注意这将无法通过IPv6解析本地主机名。这会导致网络中断,因为当同时运行IPv6和IPv4时,IPv6通常优先。

静态IPv6分配

单击刷新图标以重新加载IPv6 DHCPv6服务,以便让设备使用新的静态分配地址。如果还不起作用,则重新启动设备会清除动态分配的旧IPv6地址。如果不想完全重启,可以尝试断开设备与网络的连接,然后重新连接。

八 、测试IPv6

判断是否采用了IPv6,可以访问Google,来查看是否可以通过IPv6访问该网站:

Google IPv6测试

要进行更详细的测试,请点击这里

IPv6测试

原文地址