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

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

Created
Aug 1, 2021 12:31 PM
Tags
BGP
ASN
Category
Networking
Last Edited
Last updated July 16, 2022
Abstract
本文介绍了如何使用 Vultr 配置 BGP 和 VPN 进行实名上网
Related to Reading List (Column)

配置BGP Peer

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

绑定AS和IP

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

1. 提交申请

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

2. 验证WHOIS

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

配置BGP

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

1. 下载

add-apt-repository ppa:cz.nic-labs/bird apt-get update apt-get install bird -y

2. 配置

# 修改/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

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

配置 IP

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. 安装

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

2. 配置

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

3. 客户端配置

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

4. 客户端管理

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