0

记一次将IPv6地址段在内网利用BGP进行全量部署的方案与操作|BGP广播|ASN

Share
Avatar photo
  • 2025 年 5 月 23 日

一,简介

本篇文章主要涉及到BGP广播、GRE隧道、OpenVPN配置、6To4隧道信息。

首先是拓扑图,设备主要是由以下部分组成的。

设备IP
核心交换机10.10.0.10/24
Mikrotik路由器10.10.0.1/24
10.8.0.2/24 (OpenVPN)
2a0a:xxxx:xxxx:xxxx::2/64 (6To4 Tunnel Over OpenVPN)
专线主机 A10.8.0.1/24 (OpenVPN)
2a0a:xxxx:xxxx:xxxx::1/64 (6To4 Tunnel Over OpenVPN)
2a0f:xxxx:xxxx:1::2 (GRE TUNNEL)
BGP广播主机 B2a0f:xxxx:xxxx:1::1 (GRE TUNNEL)

二,核心交换机配置

核心交换机是一款华三核心交换机,主要涉及的是对Vlan内启动IPv6广播并分配IP前缀。

以其中一个vlan为例:

interface Vlan-interface75
 ipv6 nd ra prefix 2A0A:xxxx:xxxx:xxx5::/64 3600 3600
 ipv6 address 2A0A:xxxx:xxxx:xxx5::1/64
 undo ipv6 nd ra halt
 ipv6 nd ra dns search-list csiu 3600 sequence 1

同时添加静态路由,数据走三层路由至Mikrotik的地址:

ipv6 route-static :: 0 2A0A:xxxx:xxxx:xxa5::1

在客户端可以查看是否成功分配到IPv6地址,并尝试ping 网关的IPv6地址,如果可以ping通则证明此段为通的。

三,Mikrotik路由器配置

此乃重中之重,首先我需要说明由于本次实验模拟了一个比较复杂的场景,所以这里面用到了OpenVPN和6To4隧道两种嵌套模式。

首先通过在专线主机A上进行OpenVPN Server的搭建,我们可以自己编写一个OVPN的配置文件,具体搭建过程和OVPN的格式在网上都有很多,自己编写搭建即可。

打开Mikrotik的PPP配置部分可以在这里导入OVPN配置,不再作过多赘述。在导入连接并成功连接后,可以点开对应的连接查看到本端被分配到的IP,由此可以看到我们被分配到的IP是10.8.0.2。

然后由于OpenVPN对IPv6的支持不是我们所需要的那种,所以我们需要在OpenVPN隧道的基础上再嵌套一层6To4的隧道。

在专线主机A启动一个sit隧道,并输入好OpenVPN的两端IP作为Local和Neighbour,然后在两端添加一段/64的地址,比如2a0a:xxxx:xxxx:xxxx::1/64和2a0a:xxxx:xxxx:xxxx::2/64,然后互相ping尝试是否可以ping通,如果可以通,则证明已经成功了一半了。

然后,我们需要给我们客户端被分配到的IP地址设定一个回程路由,具体就是指目的地址是客户端所在网段,下一跳是核心交换机上的IPv6地址。

到这里Mikrotik就算配置完毕了。

四,专线主机A配置

在这台主机上的配置浪费了我大量的时间,最后发现是iptables的转发问题。

先贴上这两台命令

ip6tables -A FORWARD -i KR-xxxxxGRE -j ACCEPT
ip6tables -A FORWARD -o KR-xxxxxGRE -j ACCEPT

由于GRE隧道本身是DROP掉所有转发流量的,所以如果我们不手动ACCEPT,那么流量是不会转发进GRE隧道的。

通过拓扑图可知,流量应该是这样的走向。

       [客户端]
           ⇅
     2a0a:xxxx:xxxx:xxa5::/64
           ⇅
     [核心交换机]
           ⇅
MikroTik: 2a0a:xxxx:xxxx:xxa5::1
           ⇅
     SIT 隧道(6to4)
           ⇅
MikroTik: 2a0a:xxxx:xxxx:xxx0::2
Ubuntu-2: 2a0a:xxxx:xxxx:xxx0::1
           ⇅
   GRE 隧道(IPv6)
           ⇅
Ubuntu-2: 2a0f:xxxx:xxxx:x::2
Ubuntu-1: 2a0f:xxxx:xxxx:x::1
           ⇅
     广播 IPv6:2a0a:xxxx:xxxx::/48
      出口互联网(IPv6)

也就是说,如果我们不设定允许GRE转发,我们的流量就会卡在Ubuntu-2上而不会转发到Ubuntu-1上去。