ASN 和前缀都已经在 Vultr 上开通好了, 现在终于可以把自己的 IP 广播出去了。
大多数教程用的都是 Bird 2, 虽然功能强大, 但这些对于新手来说都太难了。所谓的 BGPlayer, 就是要把 BGP 当作一款可以 “玩” 的游戏, 而不是死磕命令行的苦差事。
如果能用一个可视化的操控界面来管理 BGP, 那学习过程就会 Fun and Joy 多了。这里我们选择 Mikrotik RouterOS v7 CHR 来做 BGP 实验, 它提供了友好的图形化配置界面 Winbox, 让你不用敲一行命令就能上手。
刷入 RouterOS CHR 并连接 Winbox
首先, 将你的 VPS 安装成 Mikrotik RouterOS v7 CHR 系统。
安装完成后, 使用 Winbox 连接到 VPS, 就能开始图形化配置 BGP。
创建路由表过滤规则 (Routing Filters)
BGP 广播之前, 第一件事就是确保不漏路由, 防止把全网乱七八糟的前缀发给上游。
在 routing -> filters 菜单中新建规则。
创建一个名为 BGP-IN
的 Chain, 规则内容填写 accept
, 这表示接受所有来自上游的路由。
再创建一个名为 BGP-OUT
的 Chain, 规则内容填写 reject
, 这表示默认拒绝对外发布的所有路由。
新建一条同样属于 BGP-OUT
Chain 的规则, 内容填写
if (dst == 2a0a:6000:1::/48) { accept; }
意思是: 如果目标网段是你的 IPv6 前缀 (这里示例是 2a0a:6000:1::/48
), 则允许广播。
然后 务必将这条规则拖到 reject 规则的上方, 因为 Mikrotik 的过滤器是 从上到下顺序执行 的。
这样配置后, 你的路由器只会把自己的前缀发给上游, 其它一律丢弃, 实现了 “先放行自己、再全面封锁” 的安全策略。
获取 Vultr 上游信息
在 Vultr 控制台的 BGP 页面, 可以查看到上游的 IP、ASN、BGP 会话信息等, 这些都是配置 RouterOS BGP 所需的参数。
创建 BGP 会话
创建 BGP 模板
在 RouterOS 中先创建一个 BGP Template, 填写自己的 ASN 和 Router ID 等基础信息。
设置需要广播的前缀
将你的前缀加入 IPv6 Firewall Address List, 这样 RouterOS 就知道哪些是要广播的网络。
新建 BGP 会话
使用刚才的模板导入配置, 然后为 IPv4 和 IPv6 分别创建 BGP 会话, 填入 Vultr 提供的上游 IP 地址。
按照图片上的参数设置
检查会话状态
成功建立连接后, 你会在 BGP 的 Sessions 选项卡中看到前缀数量, 这意味着已经从上游获取到了 Full Table 的路由。
给本机分配 IP
最后一步, 在 IPv6 Addresses 菜单中给 VPS 分配一个属于自己前缀的 IPv6 地址。这样, 你的服务器就能用自己广播出去的 IP 上网了。
原文