首先你需要:
安装bird:
系统我推荐使用debian 10,安装bird 只需要
apt install bird -y
设置开机自启动
systemctl enable bird
修改bird 配置:
这边贴一个配置文件供参考
#定义 router ID
router id 100.127.70.25;
#定义自有网络,这是filter policy
function is_own_network() {
return net ~ [
10.0.0.0/22{22,24} # Anycast DNS
];
}
# The Kernel protocol is not a real routing protocol. Instead of communicating
# with other routers in the network, it performs synchronization of BIRD's
# routing tables with the OS kernel.
protocol kernel {
scan time 60;
import none;
# export all; # Actually insert routes into the kernel routing table
}
# The Device protocol is not a real routing protocol. It doesn't generate any
# routes and it only serves as a module for getting information about network
# interfaces from the kernel.
protocol device {
scan time 60;
}
protocol static static4 {
route 10.0.0.0/24 reject;
}
protocol bgp vultr
{
# substitute with your AS or Vultr's private AS
local as xxxx;
import all;
export filter {
if is_own_network() && source ~ [RTS_STATIC, RTS_BGP] then {
accept;
}
reject;
};
graceful restart on;
multihop 2;
neighbor 169.254.169.254 as 64515;
password "";
}
上面的配置文件我简单讲一下几个点,Vultr官方给出的配置文件是export all,其实这种对于网络架构来说非常不负责任,你这样100%会导致路由侧漏从而引起BGP Session被掐断。所以我写了一个定义来确保不会漏别人的路由给上游。
如果你想要使用一些community(其实在Anycast中是必须要的)来修改路径的话,你可以在 protocol static static4 下改,可以参考下图:
route 10.0.0.0/24 reject {
bgp_community.add((48024,666));
bgp_community.add((48024,6666));
注意一下,一行一个,并且和cisco不一样的地方是他是用,而不是:的。
community也可以定义,可以自己去研究下
南ことり の 小窝原创文章,转载请注明来自:Bird 构建自己的 Anycast 网络
> IPv6我建议你别跑Anycast了,调起来头大
这是为啥…