0x00 前言

  • 本文基于作者从2022年9月开始的公网ASN使用经验
  • 建议准备配置公网BGP的用户可以先在DN42网络中练习和熟悉相关操作
  • 本文主要面向使用虚拟机和Bird软件路由的场景,不涉及硬件路由器的BGP配置
  • 阅读本文之前,需要对BGP协议以及公网BGP的运作方式有一定的了解

0x01 注册ASN

目前有两种主要的注册方式:

  1. 直接向RIR(地区互联网注册机构)申请
  2. 通过LIR(本地互联网注册机构)代理注册

在LowEndTalk论坛上有多家LIR提供ASN注册服务,可以根据需求选择合适的服务商。

不同地区的RIR注册要求各不相同:

  • APNIC(亚太地区):对中国大陆用户较为友好,仅需身份证
  • RIPE(欧洲地区):额外要求提供一个欧洲地区IP Transit服务商的账单和护照
  • 其他RIR:也通常需要护照等证件

0x02 免费IP Transit资源

可以通过 http://bgp.services/ 查找海外IP Transit服务商,
其中包含多个免费服务提供商可供选择。

0x03 配置BIRD

推荐使用编译安装的方式部署BIRD,因为软件源中的版本可能较旧。

需要注意的是,某些BIRD版本存在已知问题,
例如2.0.7版本中的EXTENDED NEXT HOP功能异常。

0x01 基础配置

BIRD的默认配置文件通常位于/etc/bird/bird.conf,配置主要包含以下几个部分:

  1. router id:通常使用本机IPv4地址
  2. protocol kernel:用于将路由表写入系统内核
  3. protocol static:配置本机静态IP路由
  4. protocol bgp:配置BGP会话参数

0x02 配置示例

以下是一个基础的BIRD配置文件示例:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 路由器ID配置
router id 1.2.3.4;

protocol kernel {
scan time 20;

# 向内核导出所有IPv4路由
ipv4 {
import none;
export all;
};

# 向内核导出所有IPv6路由
ipv6 {
import none;
export all;
};
}

# 每20秒刷新一次网络接口信息
protocol device {
scan time 20;
}

# 静态路由配置
protocol static {
ipv4 {
import all;
export none;
};

ipv6 {
import all;
export none;
};

route fd00::/48 reject {
# BGP社区属性,常用于路由优化等场景
bgp_large_community.add((SELF_ASN, 114514, 1));
};
}

# BGP会话配置示例
protocol bgp upstream_example {
neighbor fd00::1 as 65500;
source address fd00::2;

ipv4 {
import all;
export filter {
# IPv4路由导出过滤规则
if net ~ [1.2.3.4/24] then accept;
reject;
};
};

ipv6 {
import all;
export filter {
# IPv6路由导出过滤规则
if net ~ [fd00::/48] then accept;
reject;
};
};
}

0x04 公网与DN42的主要区别

  1. 路由表规模:公网路由表数量庞大(IPv6约20万条,IPv4更多),而DN42仅有数千条路由。因此OSPF等协议在公网环境中并不适用
  2. 对等关系:公网中有明确的上下游和peer区分,DN42中则多为互相发送全表
  3. 路由通告:公网上游会向下游发送完整路由表,peer之间仅交换各自的路由
  4. 后面的区域,以后再来探索吧

0x05 一些额外说明

  • 公网路由通告的最小前缀限制:IPv4为/24,IPv6为/48
  • 黑洞路由可能不受上述前缀限制,具体取决于上游服务商的策略
  • 路由过滤器的正确配置至关重要,本文仅展示了基础配置,实际使用时需要更严格的过滤规则

0x06 参考资料