准备工作
ASN 以及 IP Block
首先你得拥有一个属于自己的 ASN 以及一个不小于 /48 的 IPv6 Block
注册 ASN 的一般流程是寻找 APNIC 等互联网注册管理机构注册会员然后申请,由于一般人不太可能注册这些机构的会员,加上注册这些会员的入会费也十分的昂贵
所以就需要寻求 LIR 来帮忙申请 ASN 了
Local Internet registry (LIR) is an organization that has been allocated a block of IP addresses by a RIR, and that assigns most parts of this block to its own customers.
各大 LIR 的价格不等,但一般不会超过 300CNY
这里推荐几个有 LIR 服务的商家:AperNet,HostUS(链接含有 aff)
在 LIR 处购买 ASN 后一般会赠送一个 /48 的 IPv6 Block
寻找一个支持 BGP Sessions 的主机商
这里推荐 Vultr(链接含有 aff)
通过 aff 链接注册后可以获得首月 100 美元的赠金
关于如何在 Vultr 开启 BGP 可以查看官方教程或通过 Google 等搜索引擎寻找相关教程
在提交了你的 ASN 和 IP Block 后,Vultr 会向你 Whois 中的邮箱发一封验证邮件,点击第一个链接就可以了。
开始广播自己的 IP
首先你需要部署一台同时拥有 IPv4 和 IPv6 的 VPS
在 Linux 下你可以使用 BIRD,Quagga 等软件来配置 BGP
当然,你也可以选择使用 RouterOS
我这里选择的是 Debian11 以及 BIRD2 来广播
目前 BIRD 1.x 和 2.x 同时在维护,区别是 1.x 中 IPv4 和 IPv6 协议是分开的(bird 和 bird6),而 2.x 将两部分代码合并在了一起且引入了更多功能。但是 1.x 本身也是落后技术终将被淘汰,所以我推荐使用 BIRD 2.x。两个版本的语法并无差别,无非就是 2.x 在和路由表相关的操作的时候,需要指定特别的协议,如 ipv4; ipv6;
。
安装 BIRD2
在 Debian11 下安装 BIRD2 很简单,你只需要一行代码就行了
apt install bird2 -y
修改 /etc/bird/bird.conf
的配置文件
安装 BIRD2 后在/etc/bird/
下会有个官方的示例文件,我们这里可以直接删除。
新建一个bird.conf
router id 你主机的IPv4;
define BOGON_ASNS = [
0,
23456,
64496..64511,
64512..65534,
65535,
65536..65551,
65552..131071,
4200000000..4294967294,
4294967295
];
filter sample_import
int set reject_private_asn; {
if bgp_path ~ BOGON_ASNS then reject;
accept;
}
protocol bgp vultr {
local as 你的ASN(只需要数字);
source address 你主机的IPv6;
multihop 2; #修改为服务商提供的信息,如果是vultr这里不用修改
neighbor 2001:19f0:ffff::1 as 64515; #修改为服务商提供的neighbor信息,如果是vultr这里不用修改
password "你设置的密码";
ipv6 {
import filter sample_import;
export all;
graceful restart on;
};
}
protocol static {
ipv6;
route 你的IPv6 Block via 你主机的IPv6;
}
protocol device {
scan time 5;
}
protocol direct {
interface "dummy*";
ipv6 {
import all;
};
}
由于这是一个完全面向新手的教程,所以就不写关于 BIRD2 的教程了,如果你想更加深入的学习 BIRD 相关的知识可以看Soha大佬的教程<存档>。
配置虚拟网卡以及 IP 地址
ip link add dev dummy1 type dummy # 添加虚拟网卡
ip link set dummy1 up
ip addr add dev dummy1 前缀内的任意一个地址 # 添加地址
重启 BIRD2
systemctl restart bird
当你完成以上步骤后,你可以使用birdc s p
来查看是否广播成功,如果显示为 Established,则说明广播成功了
将虚拟网卡的 IPv6 设置为默认出口
获取默认的网关
ip -6 r
如图,最后一行中我们可以得知默认的网关
修改默认出口
ip -6 route change default via 默认网关 dev 默认网卡 proto ra metric 1024 pref medium src 虚拟网卡的IP
接下来就可以通过 curl ip.sb
来查看自己的 IP 了