warning 小白警告
本人是 BGP 纯小白,对于 BGP 为刚入门状态,本文为本小白的记录文,文章内有任何的 笔误/错误/小白理解 请大佬勿喷,如果能指正出来那就更好啦
warning 再次警告
如果您能接受的话,可以继续看下去,如果不能接受,建议现在就关闭此文章
前言
在上次的文章中我们讲了怎么使用 ibgp 进行组网
但是随着我们网络的发展,我发现 zerotier 十分不方便(指需要一个一个加 moon 节点),于是我在上个月弃用了 zerotier 正式改用了群友都在用的 tailscale,但是我的网络架构大概是这样的

这就导致了 CN 无法直接连接到 HK,看起来十分的难受(
所以我们可以用 OSPF 来进行组网,让内网都可以互联!
搭建 vxlan
因为 OSPF 是需要向组播地址发送 Hello 组网的,然而 tailscale(wireguard)并不支持组播,所以我们需要使用 vxlan 进行套娃来解决这个问题(
调整 tailscale 的 mtu
首先由于 tailscale 默认的 mtu 过于小无法承载 vxlan 的 IPv6,所以我们先调整 tailscale 的 mtu
具体步骤如下:
1.编辑 /etc/default/tailscaled
文件,新增以下行以将 MTU 设置为 1500:
TS_DEBUG_MTU=1500
Bash2. 重新启动 Tailscale 以应用新配置:
sudo systemctl restart tailscaled
Bash创建 vxlan
首先先在两台服务器上分别创建 vxlan 网卡并分配 ip
ip link del vxlan100 2>/dev/null
ip link add vxlan100 type vxlan id 100 dev tailscale0 remote 远端的tailscaleIP dstport 4789 learning
ip addr add 本机的DN42Iv4/32 peer 远端的DN42Iv4 dev vxlan100
ip addr add 本机的DN42Iv4/32 dev vxlan100
ip -6 addr add 本机的DN42Iv6/128 dev vxlan100
ip link set vxlan100 up
Bash然后理论上来说就可以互相 ping 到对方了
OSPF
在搭建好 vxlan 之后我们就要启动 ospf 来内部寻路了
创建一个 ospf.conf 文件,内容如下:
protocol ospf v3 mlnet_ospf {
ipv4 {
# 只使用 OSPF 对内部网络进行路由 - 忽略从 BGP 发送的所有内容。
import where is_self_net() && source != RTS_BGP;
export where is_self_net() && source != RTS_BGP;
};
include "/etc/bird/ospf/*";
};
protocol ospf v3 mlnet_ospf6 {
ipv6 {
import where is_self_net_v6() && source != RTS_BGP;
export where is_self_net_v6() && source != RTS_BGP;
};
include "/etc/bird/ospf/*";
};
Bash然后再创建一个 /etc/bird/ospf/0.conf 文件,内容如下:
area 0.0.0.0 {
interface "vxlan100" {
# 根据你的真实延迟来设定
cost 123;
};
};
Bash然后在 bird.conf 中引入 ospf.conf
include "ospf.conf";
Bash然后重载配置文件,如果一切都没问题的话你就能看到 ospf 在 running 啦~

然后我们路由追踪一下发现是从 CN->JP->HK

接下来就可以组 ibgp 或者 RR(可能我会出一篇误人子弟教程)来传递路由了~
(顺便说一句,如果您想和我 peer 的话请看这里)
发表回复