搭建自治系统(2)配置 BGP 和 VPN 进行实名上网

配置BGP Peer

首先需要将自己申请到的AS和IP地址绑定到自己的服务器上,并与其他AS建立BGP Peer。

绑定AS和IP

该操作取决于服务器类型,此处以Vultr为例。

1. 提交申请

按上图中示例,填写表单,包括 ASN 、BGP密码(避免弱口令,后面配置要用)、IP段,上传 LOA 文件,选择 Full Table,然后点击 Request BGP Setup按钮即可。

2. 验证WHOIS

Vultr之后会抓取WHOIS中预留的邮箱,并让你选择一个。之后他会发邮件过去让你进行确认,点击确认即可。之后便会有Vultr的工作人员为你配置,配置完成后你的VPS中会多出来一个选项卡BGP

配置BGP

本文使用bird6来进行BGP的配置。

1. 下载

text
1
2
3
4
add-apt-repository ppa:cz.nic-labs/bird
apt-get update
apt-get install bird -y

2. 配置

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 修改/etc/bird/bird6.conf文件

router id x.x.x.x # 服务器的IPv4地址

protocol static
{
route 2001:xxxx:xxxx::/48 via 2002:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy;
}
# 2001:xxxx:xxxx::/48 为自己需要向外广播的IP段
# 2002:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy 为自己IPS的IPv6地址

protocol direct
{
interface "dummy*";
import all;
}

define BOGON_ASNS = [
0, # RFC 7607
23456, # RFC 4893 AS_TRANS
64496..64511, # RFC 5398 and documentation/example ASNs
64512..65534, # RFC 6996 Private ASNs
65535, # RFC 7300 Last 16 bit ASN
65536..65551, # RFC 5398 and documentation/example ASNs
65552..131071, # RFC IANA reserved ASNs
4200000000..4294967294, # RFC 6996 Private ASNs
4294967295 # RFC 7300 Last 32 bit ASN
];

filter sample_import
int set reject_private_asn; {
if bgp_path ~ BOGON_ASNS then reject;
accept;
}

protocol bgp vultr
{
local as 11111 # ASN;
source address 2000::0 # 实例的ipv6;
import filter sample_import;
export all;
graceful restart on;
multihop 2;
neighbor 2001:19f0:ffff::1 as 64515 # vultr提供的BGP服务器;
password "paaswd" # 申请时填写的bgp密码;
}

3. 重启bird6

text
1
2
3
4
service bird6 restart

birdc6 show proto all vultr # 如果 BGP state: Established 就配置成功了

配置 IP

text
1
2
3
4
ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 2001:xxxx:xxxx::1/128

配置OpenVPN

本教程基于 https://github.com/Nyr/openvpn-install 仓库编写。

1. 安装

text
1
2
3
wget <https://git.io/vpn> -O openvpn-install.sh && bash openvpn-install.sh
# 后续按照默认参数即可

2. 配置

text
1
2
3
# 修改/etc/openvpn/sever/server.conf
server-ipv6 2001:xxxx:xxxx:xxxx::/64 #补充一行,此处填写需要分配的IP段

3. 客户端配置

回到执行安装的目录下,会有一个client.ovpn文件,将其导入到手机的vpn客户端即可连接。连接后,应该已经获取到了服务器分配的IPv6地址,之后即可使用该地址上网。

4. 客户端管理

如果想对已生成的客户端进行管理,可直接执行安装时的脚本进行选择。