正文共:1456 字 14 图,预估阅读时间:1 分钟
通过前面的介绍(企业路由器配置IPv6家用宽带的PPPoE拨号示例),想必你已经可以实现让MSR路由器通过PPPoE拨号接入IPv6网络。
正常来讲,通过前面的配置,我们内网的客户端也可以自动获取IPv6地址,并且可以访问互联网。
但是,在前面的配置中我们也看到了,当Client设备拨号成功后,Server设备会通过DHCPv6协议为Client分配一个代理前缀,再结合接口配置的IPv6前缀,匹配接口剩余的IPv6地址位之后,组合之后的地址才是接口真正的IPv6地址。这里面的知识点就是,Client设备获取到的IPv6前缀可能会变化(当然,我目前使用中还没发生变化)。与此同时,如果内网已经按照一定规则配置了IPv6地址,不想通过前面的方式再调整IPv6地址,那可能就需要用到NAT66功能了。
NAT66又被称为NPTv6(IPv6-to-IPv6 Network Prefix Translation,IPv6-to-IPv6网络前缀转换),从名称中可以看出,NAT66用于将IPv6报文中的IPv6地址前缀转换为另一个IPv6地址前缀,可提供NAT66源地址转换功能和目的地址转换功能。
除了我们提到的内部网络和外部网络之间的源地址转换功能,NAT66还可以用于冗余和负载分担、多宿主等场景。
IPv4的NAT支持PAT和NO-PAT,而IPv6的NAT66则仅支持NO-PAT模式,不能基于端口进行配置,而且连地址都不能固定,有点类似IPv4中NAT地址池的意思(NAT配置—常见问题)。
还是基于上次的实验环境,在未配置NAT66时,从Client设备无法直接访问互联网。
道理很简单,这里的IPv6地址2020:2021:2022:18:18:18:0:1是我们虚构的,当这个报文在互联网上传播时,要么没有对应的路由,要么被路由到其他配置了这个IPv6地址的设备上了,跟在IPv4的私有网络中配置公网IP地址是一样的。
要解决这个问题,第一种方式,如果这个IPv6前缀是我们正式申请的,那在运营商侧就会有对应的路由,可以将外部访问该地址段的流量路由到我们的设备上,我们只需在出口设备上添加路由条目即可。
显然,我们不属于第一种方式,那就需要配置NAT66来解决了,将内网的IPv6前缀转换为运营商自动分配的IPv6前缀,使得公网流量可以路由到出口设备。
首先,我们的Client设备是二次分配的IPv6地址,等同于配置的内部网络,此时出口设备上是没有回程路由的,现在Client连MSR的接口地址都访问不到。
我们首先在出口设备上添加去往内网的回程路由(IPv6静态路由配置)。
ipv6 route-static 2020:2021:2022:: 56 240E:304:8CDA:301:20C:29FF:FE0B:96B7
然后再在MSR的拨号口下添加NAT66配置就可以了。
nat66 prefix source 2020:2021:2022:: 56 240E:304:8CDA:300:: 56
验证Client设备访问公网。
访问成功。
其实,在这里我也测试了在Server设备的上联口配置NAT66,但是无法生效,应该是该设备只有一个IPv6地址,没有可用的IPv6前缀的原因(IPv6从入门到精通)。
参考我们的配置命令,按照配置规范,需要保证转换前后的源IPv6地址前缀长度一致,我们这里都使用的56位长度,其实这也是从公网获取的前缀长度。
而且,在配置时,同一个接口下的内网地址前缀和外网地址前缀必须是一对一的唯一映射关系,不能冲突。
如果配置冲突了,会有告警信息提示是转换前的前缀冲突了,还是转换后的前缀冲突了。当然,不同接口下,不同的内网地址前缀也不能映射到同一个外网地址前缀。
除此之外,转换后的源IPv6地址前缀不能与NAT66设备的外网地址前缀以及目的外网地址前缀相同,这个很好理解,不能转换了又没转换。
最后,我们看一下这个IPv6地址前缀长度到底可以配置成多少。测试方法也很简单,我们取Client设备ping测时携带的源地址2020:2021:2022:18:18:18:0:1,以及出口设备的接口地址240E:304:8CDA:300::1,配置时使用调整前缀长度的方式,使设备自动计算IPv6地址前缀即可。
首先试一下短于56是否可以。
nat66 prefix source 2020:2021:2022:18:18:18:0:1 48 240E:304:8CDA:300::1 48
可以看到,实际转换后的地址已经不属于240E:304:8CDA:300::/56了,报文没回来。
再试试长于56是否可以。
nat66 prefix source 2020:2021:2022:18:18:18:0:1 64 240E:304:8CDA:300::1 64
转换后的地址可以正常被转发回来,业务正常,但是这里的NAT66会话统计不准确。
我们试一下120位长度是否可以。
nat66 prefix source 2020:2021:2022:18:18:18:0:1 120 240E:304:8CDA:300::1 120
没有问题,只不过转换的IPv6地址成了接口地址。
既然如此,128位的前缀长度可以吗?
nat66 prefix source 2020:2021:2022:18:18:18:0:1 128 240E:304:8CDA:300::1 128
也可以正常访问,可见前缀长度配置为56-128位都是可以的。
那在Server设备上配置128位的前缀转换可行吗?
nat66 prefix source 2020:2021:2022:18:18:18:0:1 128 240E:304:8CDA:301:20C:29FF:FE0B:96B7 128
如此看来,当IPv6地址前缀长度配置成128位时,也就间接变成了PAT了。
长按二维码
关注我们吧
在Ubuntu系统手撸一个自动创建SSL证书的SHELL脚本
在Ubuntu系统手撸一个自动搭建openVPN服务端的SHELL脚本
将iStoreOS部署到VMware Workstation
对比华三设备配置,讲解Linux主机如何配置strongSwan