HOME
HOME
文章目录
  1. 1. IPv6基础知识
    1. 1.1 IPv6地址写法
    2. 1.2 IPv6地址分类
      1. 1.2.1 单播
      2. 1.2.2 接口ID
      3. 1.2.3 IPv6地址配置
  2. 2. IPv6的ND协议
  3. 3. ros配置公网IP
  4. 4. ros配置ipv6的NAT模式
  5. 参考文章

routeros7配置ipv6

主路由上了ros后,一直只用的ipv4,配置比较简单,但是一直想用ipv6双栈上网。平常逛v2ex等论坛,经常反馈运营商政策突然给变了,回收ipv4公网ip。一旦公网ip被回收的话,PT站的上传就没得玩了,PT种子基本不容易被人连接上,也就几乎没有了上传。但现在主流的PT站都支持了ipv6做种,而运营商对ipv6的公网ip还是很慷慨的,直接无条件的给。

但是ros虽然是稳定,但是配置起来一直很有难度,需要较强的网络知识才能玩得转。恰好这天碰到馒头的tracker服务器被墙了,就不得不研究下ipv6的配置方法,仔细研究下来,发现也不是很难,本篇文章记录一下routeros配置的过程和一些ipv6的基础知识。

1. IPv6基础知识

IPv6相对于ipv4看起来复杂了不少,但是仔细学习进去发现也不是那么难。

1.1 IPv6地址写法

IPv6整体的地址扩充到了128位,也就是一共可以有2的128次方个ip,这个数量基本可以为每一台设备提供一个不重复的IPv6地址。

IPv6的地址由8组4位的16进制的数值组成,中间用:冒号进行间隔,每一位的16进制数值由4位2进制数值组成,每一组数字就由16位二进制数字组成,每一个IPv6的地址也就由16*8共128位组成。

IPv6在简写的时候,前面的0可以省略成一个零,例如:

fd00:00a8:0000:0000:0000:0000:0000:3456可以对0 进行省略,

简写后:fd00:a8:0:0:0:0:0:3456,同时连续多个16位的0可以使用::进行简写,但是整个地址中只允许出现一个::

再次简写后:fd00:a8::3456

IPv6的URL写法,需要使用[]对URL的地址进行包裹,如:

http://[240e:399:123:4480:20c:29ff:fe2b:3456]:8080

1.2 IPv6地址分类

IPv6的地址分为单播、组播和任意播,没有了IPv4中的广播概念,改成用组播来进行替代。

image-20220105161034872

1.2.1 单播

可聚合全局单播地址 (公网IP)

这类地址也就是分给具体设备可以在公网上使用的普通IPv6地址。全球单播的前3bit是固定的001,换算成16进制第一位也就是2,地址范围是2000::/3FFF::FFFF。

img

本地唯一地址

本地唯一地址也称为私网地址,是用于局域网的地址,可以将内网与公网进行隔离,实现IPv4的NAT功能,保证内网设备的安全性。

这类地址又被称为ULA地址,这类地址在公网上不被路由,只能在内部局域网使用。

地址范围FC00/8 -> FD00/8

img

本地链路地址

这一类地址一般用作本地通信,只在一个路由器下有效,可以理解为IPv4的169.254这种地址,是随机分配的地址。

地址范围FE80::/10为开头,11-64为0,后64位的接口地址,一般是通过EUI-64规则,根据mac地址生成的接口地址。

img

特殊单播地址

  • 未指定地址或者全0: ::或者::/128
  • 回环地址:::1或者::1/128

其余的组播和任意播对本文没有特别的帮助,可以参考网上的其他文章进行学习。

1.2.2 接口ID

除了前面的网络地址,剩下的就是接口ID,用于标识具体的主机地址,每条链路上的接口ID必须唯一。

接口ID配置方法有如下几种方式:

  • 根据EUI-64自动生成,这个算法是根据mac地址自动算出接口的ID
  • 手工配置
  • 自动生成随机的接口ID

1.2.3 IPv6地址配置

  • 手动配置:手工根据网络地址配置接口ID,主要用于静态的地址配置,可以配置一个简单的私网IP用于管理,如FD00::1
  • 自动配置
    • 有状态地址自动配置(DHCPv6)
    • 无状态地址自动配置(RS/RS)SLAAC
      • 没有DHCP服务器也能自动完成IP地址的配置,但是不方便统一管理

2. IPv6的ND协议

IPv6的ND协议全称Neighbor Discovery Protocal,中文叫邻居发现协议。

可以帮我们实现如下功能:

  • 地址解析:代替IPv4的arp协议,根据ip地址转义成mac地址
  • 邻居的状态跟踪
  • 无状态自动配置:从路由器的RA消息中获取网络前缀,并拼接接口ID组成单播地址
  • 重复地址检测
  • 前缀重编址
  • 路由器重定向

总结一句话,在IPv6中ND协议替代了arp协议,同时也可以通过该协议对局域网内的所有主机分配ip地址

以上差不多是关于本次配置IPv6用到的全部基础知识了,其他更为深入的IPv6知识可以查阅网上文章进行更为深入的学习,下面开始介绍ros的详细配置。

3. ros配置公网IP

配置公网IP的前提是运营商分配了IPv6的地址,同时光猫需要桥接到路由器进行拨号。目前运营商采用的是IPv4使用PPPoe拨号上网,IPv6通过DHCPv6分配到用户手上。

本文ROS的版本是7.7的版本。

配置步骤

  • 点击IPv6 -> DHCP Client,选择对应的PPPoe的接口,选择prefix,命名一个pool的名字,就可以获取运营商分配的网络前缀了
image-20230622110729622 image-20230622110915468
  • 添加接口地址:运营商目前分过来的是网络前缀,根据前面的基础知识,接口ID还需要自己生成,可以手工配置,也可以根据EUI自动生成。在ROS中点击IPv6->Addresses可以打开接口列表,添加刚才的PPPoe接口的地址,地址输入::/64可自动生成,也可以手工配置::1/64手工指定。
image-20230622111142215
  • Advertise:如果点击Advertise,该接口(Interface)会将地址池转发到该接口下,所有主机都会获取到对应公网地址,如下所示,LAN下所有主机都会得到对应的公网IPv6地址,配置公网IPv6的方法到这里就可以结束了。
image-20230622111451092

4. ros配置ipv6的NAT模式

根据上面配置的方法,可以看到运营商给的直接将一个网络前缀分配到用户身上,给的IPv6公网IP实在是太多了,家里的所有设备分配一个公网的IPv6毫无疑问没有任何问题,但是由此带来的风险非常大,比如家里用的PC机就没有了路由器防火墙的保护,所有端口直接暴露在公网,这样看来实在是太危险了。

根据IPv6单播地址中本地唯一地址的划分,可以为家里划分出一个私有网段,然后通过NAT上网,保护内网设备。

配置步骤如下

  • 配置地址池:配置地址池,添加前缀fd00::/64作为私有地址的网络前缀
image-20230622112443876
  • 配置接口地址:在接口上配置一个固定的地址充当网关的作用,并开启Advertise,将地址池的网络前缀下发到当前网段
image-20230622112649058
  • 配置ND协议:配置ND协议指定DNS服务器为ROS,这样就可以使用ros的dns缓存提速网页的速度,DNS的地址指向网关的地址。
image-20230622112807153
  • 配置防火墙:IPv6的防火墙配置与IPv4的基本一致,选择masquerade进行伪装上网即可
image-20230622113004743
  • 最后一步在dns中添加IPv6的dns地址,常用的dns地址
    • 腾讯:2402:4e00::2402:4e00:1::
    • 阿里:2400:3200::12400:3200:baba::1
image-20230622113107414

根据以上配置后,内网的地址均是私有地址,通过pppoe分配的公网IP进行上网,有效的避免了安全风险。

image-20230622113303969

参考文章