RIPE申请注册ASN及实名上网指北

RIPE申请注册ASN及实名上网指北

前言

本文纯教程,没有过多的理论介绍,更多的是实操。
本教程并非Noob指引,公网也并非儿戏,请具备相关系统、网络知识再尝试食用本教程,最好先去DN42体验一下。
教程是以个人方式申请32 bit的ASN和/48 IPv6 ,系统使用Debian12

不想看啰嗦,最快速的教程,请移步 [Drcai’s Noob BGPlayer in 1hour 绝赞速成班 逃 ~] (https://www.91yunbbs.com/discussion/641)

价格

  1. 假设你不成为各大IRR的大会员,最便宜的ASN注册费用为300-500元人民币。
  2. 虽然注册ASN时候LIR通常都会给你一个免费的/48的块,但每年还得花费15-20瑞士法郎给LIR续命你的IPv6块。
  3. 你在哪宣告?无非就是几家厂商,Vultr、BuyVM之类的。Vultr为例 最少也得5刀一个月。
  4. 某些LIR提供一次性购买ASN和IPv6块,可能收费要更贵。(但要提防LIR跑路)

如果你是年付几十美金的小鸡都还在犹豫的人,我觉得你不适合注册ASN。

ASN注册

走流程

我注册的是RIPE的ASN,找的是 freetransit.ch 作为LIR。当然你不想用英文交流可以找 Soha大佬

首先先去RIPE注册一个帐号,创建好个人信息,此部份参考 https://web.archive.org/web/20190227042014/https://www.ykhut.com/archives/72/ (这边建议使用自己域名的邮箱去注册,之后的宣告地址、认证等需要用到。qq或者gmail这种公共邮箱可能在某些地方不受支持

还需要提供证明你在欧洲地区有网络设备和两个准备peer的对象,咋们普通人最简单的话就是在vultr开一台欧洲地区的vps即可,即满足欧洲地区网络设备,又有peer对象。剩下的一个可以把LIR作为一个peer对象。准备好以上东西后只需保存好Vultr的发票还有机器控制台的截图(记得把敏感信息打码,密码等)

创建好个人信息之后准备 钱 + 身份证明 + RIPE个人信息 + 欧洲地区网络设备证明。这边建议使用有效护照扫描件作为身份证明。然后找到LIR,发邮件去咨询好价格和流程。之后按照LIR要求提供你所注册的RIPE信息,还有身份证明。通常RIPE那边只要2-5天就会把你的信息验证完毕并且下发ASN和IP块。

我找的freetransit大概耗费了一个月时间才把所有流程走完,可能是因为时差和邮件效率关系(也有可能他们就是那么慢

注册完之后,正常是可以在 https://apps.db.ripe.net/db-web-ui/fulltextsearch 搜索出来自己的所有信息。也可以在 https://bgp.tools/ 搜索到自己的AS信息之后要去 https://apps.db.ripe.net/db-web-ui/webupdates/select 新建一个route6,第一行写上批下来的地址块,第二行写上自己的AS,保存之后就可以进行下一步操作了。

RPKI ROA认证

ASN和地址块下来后就最好做好ROA认证,LIR给的v6地址块大多数都是PA类型,所以我们要骚扰LIR让他帮我们加上RPKI ROA认证即可,如果是PI类型的地址,我们可以手动自己去 https://my.ripe.net/#/rpki 添加好认证。

服务商申请权限

我这边选择在Vultr给IP安家,Vultr的服务配置比较方便且快。也可以在其他支持BGP Session的机器进行宣告。

先去 https://my.vultr.com/bgp/setup/ 去申请许可。这边选项很直观明了,填写完对应信息后上传LOA授权书即可。

LOA授权书模板: https://docs.vultr.com/example-letter-of-authorization-for-bgp-announcements
(模板可多次使用,之后在其他服务商可用,改一改日期和对方信息即可)

提交申请之后会有几封验证邮件发到你在RIPE注册留存的邮箱中认证ASN和地址块所有权。如果你在下午或者晚上申请,基本上半小时左右就把流程走完,然后就能在 https://my.vultr.com/network/#network-bgp 页面看见你的地址块,这时候你就留意一下页面显示的RPKI Status是不是绿色的Valid,如果不是请回到RPKI ROA认证那步骚扰LIR添加认证或者自行添加。

如果Vultr申请后再添加RPKI,完成后可能要在Vultr重新添加一次该地址块,邮件认证之后即可刷新RPKI状态

宣告IP

首先先在Vultr 欧洲地区开一台VPS,假设你做证明时候已经开好了。接下来装一个bird2用来宣告,如果需要RouteOS的教程请移步Drcai’s Noob BGPlayer in 1hour 绝赞速成班 逃 ~ 或者 RouterOSv7 泥头车与酒驾 BGP

安装一个bird2
apt install bird2

然后vim /etc/bird/bird.conf 编辑一波BGP配置,首先先d9999d掉所有的配置,然后手写一下配置

这是我提供的模板,请替换相关信息后使用(包括[ ])

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
protocol device {
scan time 5;
}

protocol direct {
interface "dummy*";
ipv6;
}

protocol static {
ipv6;
route [你的v6段,例如2a0e:8f02:f666::/48] reject;
}

protocol bgp Vultr6 {
local as [你申请的ASN];
source address [本机vultr分配的v6地址];
graceful restart on;
multihop 2;
neighbor [bgp邻居,Vultr通常是2602:feda:d40::1] as [邻居ASN,Vultr通常是38136];
password "[你在申请时候填写的密码]";
ipv6 {
import accept;
export filter {
if source ~ [ RTS_DEVICE ]
then accept;
else reject;
};
};
}

接下来编辑好配置后,应用一下 birdc c ,如果birdc c之后出现错误,请检查配置。

1
2
3
BIRD 2.14 ready.
Reading configuration from /etc/bird/bird.conf
Reconfigured

然后设置一个dummy虚拟网卡

1
2
3
ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 [你要宣告的地址,例如2a0e:8f02:f666::1/48]

去看看bgp状态 birdc s p ,正常是established,如果不是检查一下配置和连通性。

1
2
3
4
5
BIRD 2.14 ready.
Name Proto Table State Since Info
device1 Device --- up 2024-01-08
Vultr6 BGP --- up 2024-01-10 Established
....

最后看看地址有没有宣告出去,被对方路由接受 birdc s p a

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
Vultr6 BGP        ---        up     2024-01-10    Established   
BGP state: Established
Neighbor address: 2602:feda:d66::1
Neighbor AS: 38136
Local AS: 215829
Neighbor ID: 172.83.155.50
Local capabilities
Multiprotocol
AF announced: ipv6
Route refresh
Graceful restart
Restart time: 120
AF supported: ipv6
AF preserved:
4-octet AS numbers
Enhanced refresh
Long-lived graceful restart
Neighbor capabilities
Multiprotocol
AF announced: ipv6
Route refresh
Graceful restart
Restart time: 120
AF supported: ipv6
AF preserved:
4-octet AS numbers
Enhanced refresh
Long-lived graceful restart
Session: external multihop AS4
Source address: 2602:feda:d66:a56::1
Hold timer: 197.659/240
Keepalive timer: 12.962/80
Channel ipv6
State: UP
Table: master6
Preference: 100
Input filter: ACCEPT
Output filter: (unnamed)
Routes: 0 imported, 1 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 2661453 0 0 0 2661453
Import withdraws: 124486 0 --- 127208 0
Export updates: 144803 0 144796 --- 7
Export withdraws: 137709 --- --- --- 0
BGP Next hop: 2602:feda:d40:a56::1
IGP IPv6 table: master6

可以看到最底下 Export updates 的 accepted 有 7,那就证明对方接受了 7 条更新。(这边我连接了比较久且中途断开过几次所以被接受了多次更新,正常刚开始只会有1或者2)

验证

因为bgp需要时间传播,通常要24小时或者更多才可以传播到全球大部份地方。但是配置完十几分钟后,某些地域比较近或同一上游的路由已经接受到更新了,那就意味着可以ping通。
这时候我们可以去 ping.pe 去验证一下。如果出现了一两个节点能够ping通,那大概率是宣告成功了,接下来只需要等待同步全球即可。

实名上网 启动

我相信你们想使用自己的ip去实名上网,但是国内几大运营商或者主机商几乎是不支持私人宣告地址的。
但我们有一件很擅长的事情,可以利用这点去使用自己的ip。

接下来我知道你们有很多种奇怪的方式打通这台vultr的vps到自家机器的隧道。完成之后去whatismyip之类的看看自己地址是否正确,还有 https://test-ipv6.com/ 测试一波ipv6有没有通。

隧道好了之后设置一下v6默认路由,首先先看一下默认路由长啥样,然后再去变更

以下IP等信息需要自行更改后使用,请勿无脑cp,vps掉网等事故概不负责

1
2
ip -6 route show default
default via 2602:feda:d66::254 dev eth0 metric 1024 pref medium

更改一下默认路由最后加上一个src 自己宣告的地址

1
ip -6 r change default via 2602:feda:d66::254 dev eth0 metric 1024 pref medium src 2a0e:8f02:f666::1

测试一下本机v6能不能通

1
2
3
curl -6 icanhazip.com

2a0e:8f02:f666::1

最后,可以去自己机器再次访问 https://test-ipv6.com/ 检查一下是否变成自己宣告的地址了。如果不是?确认试一下全局?
https://test-ipv6.com/ 甚至还会显示你的AS name,达到真正意义上的实名上网了。

小问题

如果你的小鸡是1c512m或者1c1g的,不知道你有没有发现内存占用了很多,甚至已经爆了swap也只有一半了。
这是因为接收的路由条目太多了,v6可能是十几万条,如果再加上v4有差不多九十多万条,足以给你的小鸡boom了。
这时候我们需要给接收的条目过滤掉,毕竟也用不上 不如丢进垃圾桶。

vim /etc/bird/bird.conf

找到这一段 import accept; 改为 import none;

1
2
3
4
5
6
7
8
ipv6 {
import none;
export filter {
if source ~ [ RTS_DEVICE ]
then accept;
else reject;
};
};

然后 birdc c 确认配置后, 再去 birdc s p a 确认一下

1
2
3
4
5
6
Route change stats:        received     rejected   filtered    ignored   accepted
Import updates: 2661453 0 2661453 0 0
Import withdraws: 124486 0 --- 127208 0
Export updates: 144803 0 144796 --- 7
Export withdraws: 137709 --- --- --- 0

操作后就能看见被过滤掉了,如果还是占用很厉害,估计得重启一下bird服务。

感谢一下几位大佬的文章,解答了我很多疑惑
Drcai’s Noob BGPlayer in 1hour 绝赞速成班 逃 ~
RouterOSv7 泥头车与酒驾 BGP
在 Linux 下通过 BIRD 广播自己的 IPv6
BGP新手的教程


RIPE申请注册ASN及实名上网指北
https://www.ljjserver.cn/2024/01/10/RIPE申请注册ASN及实名上网指北/
作者
樱落散华
发布于
2024年1月10日
许可协议