vultr 的广播 ip 的申请通过了,开始自己的广播了,可以用于广播的工具有 bird,frrouting,quagga
最先尝试使用 frrouting 进行广播但是配置失败了,之后换了 bird, 折腾了 2 天终于解决.

环境准备

  • 一个已经通过 bgp 申请的 vultr 账户
  • 一个带有 ipv4 的实例
  • ubuntu16.04
  • 一个大脑

实例不能用纯 ipv6 的,广播必须有一个 ipv4 才可以

安装 bird

ubuntu16 的 bird 版本比较旧,这里使用了第三方仓库,安装了新版本

  • add-apt-repository ppa:cz.nic-labs/bird
  • apt-get update
  • apt-get install bird -y

安装之后配置文件在 /etc/bird 目录内

开始配置

首先需要先停止 bird 和 bird6

  • service bird stop
  • service bird6 stop

然后编辑配置文件 /etc/bird/bird6.conf
找到 router id 198.51.100.1; 将的 198.51.100.1 改为实例的 ipv4

然后在文件的最后面添加如下配置 (在实例信息页面中的 bgp 选项卡点击下面那句话的 BGP configuration 会给出配置示例,里面信息会自动替换好,可以直接用)

  • protocol bgp vultr
  • {
  • local as 你的asn(开头不带as);
  • source address 实例的ipv6;
  • import none;
  • export all;
  • graceful restart on;
  • multihop 2;
  • neighbor 2001:19f0:ffff::1 as 64515;
  • password “在申请广播的时候设置的bgp密码”;
  • }

然后在 protocol device 那行的上面添加如下配置

  • protocol static
  • {
  • route 2001:2333:2333::/48 via 4096:4096:4096:338:5400:01ff:fecf:596c;
  • }

其中 2001:2333:2333::/48 是需要广播的 ip block 后面的 4096:4096:4096:338:5400:01ff:fecf:596c 是实例的 ipv6

vultr 要求广播的 ipv6 最小 block 为 / 48,ipv4 为 / 24

然后保存配置文件启动 bird6 (这里我们只广播了 ipv6 所以只需要启动 bird6 即可)

  • service brid6 start

到这里广播就算完成了,下面我们要为当前实例创建一个虚拟网卡并设置一个 ip

  • ip link add dev dummy1 type dummy
  • ip link set dummy1 up
  • ip addr add dev dummy1 2001:2333:2333::1/128

然后在 brid6.conf 中加入如下配置

  • protocol direct
  • {
  • interface “dummy*”;
  • import all;
  • }

然后重启或重载 bird6

  • service bird6 restart

这样 bird 将查询所有 dummy 开头的网卡的 ip 并宣告这些 ip

然后可以通过 birdc6 show route 查看广播状况
也可以通过上面为虚拟网卡添加的 ipv6 链接实例了

https://blog.ni-co.moe/public/560.html