MENU

IP 广播: 使用bird广播(组播)ipv6

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,ipv6为/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链接实例了