LovelyWei's 废纸篓

A Noob.
(交换友链希望.

LovelyWei's avatar LovelyWei

年轻人的第一个私人BGP(二) - 广播你的IP

接上篇BGP,这个时候已经拿下了自己ASN和IP,在RIPE中可以查询到,并且也添加了 Route6 对象,接下来就把自己的IP广播出去….

在广播之前,需要寻找一家能为你做广播的电信运营商….Emm至少在国内是不可能了,不过还可以选择云服务器,Vultr 提供了广播BGP的服务,还有 he.net 家的BGP隧道..

参考:
https://blog.yuzu.im/marchives/133
https://blog.ni-co.moe/public/559.html

开通Vultr的BGP广播服务

直达链接:https://my.vultr.com/bgp/

由于下面的过程博主没都截图,所以…只好文字描述下了..

  • I have my own IPI have my own ASN 修改为YES
  • My ASN 填入ASN号码
  • BGP Password 中填入自己想要的密码
  • IP Prefixes 填入前缀
  • LOA文件可参考下图 瞎编一个

  • Routes 选择 Full Table
  • 然后点击Setup

接下来注意ASN和IP Prefixes Whois留下的邮箱,Vultr会发送邮件到邮箱,然后让你选择同意和不同意.

接下来就是等待客服人工开通了

Vultr下广播的的配置

关于Linux的版本,博主选择的是CentOS 7

首先

  • 安装bird6

    yum install bird6 -y

  • 停止服务

    service bird6 stop

  • 修改 /etc/bird6.conf的配置文件

  • 修改配置中的 router id 改为自己的IPv4地址

    router id 198.51.100.1;
  • 在文件的最后添加上

    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; #这个是Vultr服务器的ip
      password "在申请广播的时候设置的bgp密码";
    }
  • 寻找到protocol static

    protocol static
    {
      route  [v6前缀] via [实例的IPv6];
      #route  2001:2333:2333::/48 via 4096:4096:4096:338:5400:01ff:fecf:596c;
    }

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

  • 找到protocol direct

    protocol direct
    {
      interface "dummy*";
      import all;
    }
  • 保存配置

  • 配置虚拟网卡以及ip地址

    ip link add dev dummy1 type dummy # 添加虚拟网卡
    ip link set dummy1 up
    ip addr add dev dummy1 [前缀内的任意一个地址] # 添加地址
  • 启动bird6

    service bird6 restart

  • 查看状态 birdc6 show route/birdc6 show proto all

https://tools.ipip.net/traceroute.php?v=6 中可以看traceroute

he.net 的BGP隧道

直达链接: https://tunnelbroker.net/new_tunnel.php?type=bgp

该填写的还是类似上面Vultr中的内容

然后就是等待客服验证你的ASN和IP前缀

建议先在Vultr做好广播后再找 he.net 开通隧道,博主和 he.net 的客服为了验证我的ASN是我的ASN,我的前缀IRR验证了这些问题扯皮了很久..

至于服务器,如果是在中国大陆境内的服务器不建议选择香港,博主在深圳ping HK的服务器延迟比JP的还高..

等待客服批准,就可以开始配置了(

配置BGP隧道广播

总体来说,其实和上面的配置差不多,只不过要加一个建立隧道的过程(

当经过客服通过后,会看到下面的状态

状态变成 Available

点击 Example Configurations 复制一段 net-tools的配置到服务器,建立隧道

由于博主是在阿里云上的CentOS7,默认IPv6是关闭的,还需要开启下系统的IPv6,编辑/etc/sysctl.conf(需要Root权限)

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

保存,再运行 sysctl -p 的命令

参考:https://blog.csdn.net/ei__nino/article/details/71331717

类似

ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.218.221.2
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:17:10e::2/64
route -A inet6 add ::/0 dev sit1

当隧道建立好后,sit1中可以看到建立隧道后自己的ip地址

尝试 curl ipv6.ip.sb,若能访问则有了公网IPv6

然后开始配置bird6,广播IP段

编辑/etc/bird6.conf 嘛,博主直接贴出自己的配置…

protocol bgp he
{
        local as 208191;
        source address 2001:470:17:10e::2;
        import none;
        export all;
        graceful restart on;
        multihop 2;
        neighbor 2001:470:17:10e::1 as 6939;
}

source address修改为 he.net 分配给的客户端ip

neighbor 修改为 he.ne 给的服务器ip

然后就可以跳到上面Vultr protocol static 内容了(

之后就一样了,检查配置,配置好后就能ping通自己的地址了

END

BGP坑就到这里,线路boy太难当了,之后再了解如何做Peer吧

This blog is under a CC BY-NC-SA 3.0 Unported License
Link to this article: https://hex.moe/p/d6a20b99/