要求:
- 为您的 IPv4 和/或 IPv6 范围创建 RPKI 和路由对象,并将您的 AS 编号作为来源。
- 确保您在服务器中运行 CentOS 7,因为本文基于 CentOS 7 操作系统。请注意,不同 Linux 版本上的配置相似。
在继续之前,请通过提供以下信息从您的终端提交请求以请求与您的裸机服务器创建 BGP 会话:
- 服务器的主 IP 地址
- 您的公共 AS 编号
- 您的 IPv4 和/或 IPv6 范围
- BGP 会话密码
- 您希望通过 BGP 会话接收的内容:
- 全桌;
- 全表和默认网关;
- 仅默认网关;
- 没有什么。
- 指定是否需要 /64 IPv6 范围作为管理 IPv6 地址。如果您有自己的管理 IPv6 范围,则可以跳过此步骤。
创建 BGP 会话后,继续执行以下步骤。
连接到您的服务器并将 IPv6 地址添加到网络接口。打开文件/etc/sysconfig/network-scripts/ifcfg-bond0进行编辑:
- [root@fra-d054 ~]# cd /etc/sysconfig/network-scripts/
- [root@fra-d054 network-scripts]# vi ifcfg-bond0
该文件应如下所示:
- [root@fra-d054 network-scripts]# cat ifcfg-bond0
- # BEGIN ANSIBLE MANAGED BLOCK
- DEVICE=bond0
- TYPE=Bond
- ONBOOT=yes
- BOOTPROTO=none
- IPADDR=102.165.9.22
- NETMASK=255.255.255.252
- GATEWAY=102.165.9.21
- DNS1=1.1 .1.1
- DNS2=8.8.8.8
- BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast"
- # END ANSIBLE MANAGED BLOCK
在文件末尾添加 IPv6 地址和网关。
- [root@fra-d054 network-scripts]# cat ifcfg-bond0
- # BEGIN ANSIBLE MANAGED BLOCK
- DEVICE=bond0
- TYPE=Bond
- ONBOOT=yes
- BOOTPROTO=none
- IPADDR=102.165.9.22
- NETMASK=255.255.255.252
- GATEWAY=102.165.9.21
- DNS1=1.1 .1.1
- DNS2=8.8.8.8
- BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast"
- IPV6INIT=yes
- IPV6ADDR=2a03:a960:184:1::2/64
- IPV6_DEFAULTGW=2a03:a960:184:1::1
- #结束 ANSIBLE 管理块
重新启动网络服务以应用更改:
- [root@fra-d054 network-scripts]# systemctl restart network
- [root@fra-d054 network-scripts]# ifconfig
- bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
- inet 102.165.9.22 网络掩码 255.255 .255.252 广播 102.165.9.23
- inet6 fe80::ec4:7aff:fe85:863c prefixlen 64 scopeid 0x20<link>
- inet6 2a03:a960:184:1::2 prefixlen 64 scopeid 0x0<global>
- ether 0c:c4:7a:85 :86:3c txqueuelen 1000 (以太网)
- RX 数据包 39 字节 3802 (3.7 KiB)
- RX 错误 0 丢弃 0 溢出 0 帧 0
- TX 数据包 44 字节 4132 (4.0 KiB)
- TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
- enp1s0f0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
- ether 0c:c4:7a:85:86:3c txqueuelen 1000 (Ethernet)
- RX packet 1932 bytes 197115 (192.4 KiB)
- RX errors 0 drop 0 overruns 0 帧 0
- TX 数据包 1493 字节 178261 (174.0 KiB)
- TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
- 设备内存 0xdf180000-df1fffff
- enp1s0f1: flags=6147<UP,BROADCAST,SLAVE,MULTICAST> mtu 1500
- ether 0c:c4:7a :85:86:3c txqueuelen 1000 (以太网)
- RX 数据包 0 字节 0 (0.0 B)
- RX 错误 0 丢弃 0 溢出 0 帧 0
- TX 数据包 0 字节 0 (0.0 B)
- TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
- 设备内存 0xdf100000-df17ffff
- lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
- inet 127.0.0.1 网络掩码 255.0.0.0
- inet6 ::1 prefixlen 128 scopeid 0x10<host>
- 循环txqueuelen 1(本地环回)
- RX 数据包 72 字节 6962 (6.7 KiB)
- RX 错误 0 丢弃 0 溢出 0 帧 0
- TX 数据包 72 字节 6962 (6.7 KiB)
- TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
确认 IPv6 连接正常:
- [root@fra-d054 network-scripts]# ping6 2001:4860:4860::8888
- PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 个数据字节
- 64 个字节从 2001:4860:4860 ::8888: icmp_seq=1 ttl=119 time=0.370 ms
- 64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=119 time=0.554 ms
- ^C
- --- 2001:4860:4860::8888 ping统计 ---
- 2 个数据包传输,2 个数据包接收,0% 数据包丢失,时间 1000ms
- rtt min/avg/max/mdev = 0.370/0.462/0.554/0.092 ms
将您的 IPv4 和/或 IPv6 范围添加到网络接口:
- [root@fra-d054 network-scripts]# ip addr add 191.96.202.0/24 dev bond0
- [root@fra-d054 network-scripts]# ip -6 addr add 2a0e:1c04:1::/48 dev bond0
通过一一运行以下命令来更新存储库并安装bird守护程序:
- [root@fra-d054 ~]# wget -4 https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm
- [root@ fra-d054 ~]# rpm -Uvh epel-release-7-13.noarch.rpm
- [root@fra-d054 ~]# yum -y update
- [root@fra-d054 ~]# yum -y install bird
打开文件/etc/bird.conf并使用以下行附加文件。确保将示例 IP 地址和 IP 范围替换为您的实际 IP 数据、AS 编号和 BGP 密码。
- 全部记录系统日志;
- #Router ID = 服务器主IP地址
- router id 102.165.9.22;
- 协议设备{
- 扫描时间10;# 每 10 秒扫描一次接口
- } #
- 禁用自动生成到所有网络接口的直接路由。
- 协议直接{
- 禁用;# 默认禁用
- } #禁止
- BIRD 路由表与 OS 内核同步。
- 协议内核{
- 全部导入;# 导入表,默认是全部导入全部
- 导出;# 导出到协议。默认为 export none
- }
- #Route your subnet via your server main IP address
- protocol static {
- route 191.96.202.0/24 via 102.165.9.22;
- }
- #local = 您的服务器主 IP 地址和您的 AS 编号
- #neighbor = 您的服务器主 IP 地址的网关和 Heficed AS 编号,默认为 61317
- #password = BGP 会话密码
- 协议 bgp Heficed {
- description "BGP session to Heficed";
- 本地 102.165.9.22 为 397727;
- 邻居 102.165.9.21 为 61317;
- 密码“您的 BGP 密码”;
- 进口过滤器{打印“进口”;接受; };
- 出口过滤器{打印“出口”;接受; };
- }
保存文件并关闭它。使用以下命令应用更改:
- [root@fra-d054 ~]# systemctl start bird
检查小鸟守护进程是否正在运行:
- [root@fra-d054 ~]# systemctl status bird
- ●bird.service - BIRD Internet Routing Daemon
- Loaded: loaded (/usr/lib/systemd/system/bird.service; disabled; vendor preset: disabled)
- Active: active (running ) 自 2021 年 6 月 26 日星期六 14:31:31 UTC 起;15s 前
- Main PID: 8931 (bird)
- CGroup: /system.slice/bird.service
- └─8931 /usr/sbin/bird -f -u bird -g bird
- Jun 26 14:31:31 fra-d054 systemd[1] : 启动 BIRD Internet Routing Daemon。
- 6 月 26 日 14:31:31 fra-d054 鸟 [8931]:开始
- 于 6 月 26 日 14:31:31 fra-d054 鸟 [8931]:网络链接:文件存在
- 6 月 26 日 14:31:36 fra-d054 鸟 [8931]:出口
- Jun 26 14:31:36 fra-d054 鸟[8931]:进口
使用命令birdc进入鸟控制台:
- [root@fra-d054 ~]#birdc
- BIRD 1.6.8 准备好了。
- 鸟>
检查是否使用命令show protocol all Heficed建立了 BGP 会话:
- bird> show protocol all Heficed
- name proto table state since info
- Heficed BGP master up 14:31:35 已建立
- 描述:到 Heficed 的 BGP 会话
- 首选项:100
- 输入过滤器:(未命名)
- 输出过滤器:(未命名)
- 路由:1 个导入,1 个导出, 1 首选
- 路线更改统计:收到拒绝过滤忽略接受
- 进口更新:1 0 0 0 1
- 进口撤回:0 0 --- 0 0
- 出口更新:2 1 0 --- 1
- 出口撤回:0 --- --- --- 0
- BGP 状态:已建立
- 邻居地址:102.165.9.21
- 邻居 AS:61317
- 邻居 ID:191.101.243.1
- 邻居上限:刷新重启感知 llgr-aware AS4
- 会话:外部 AS4
- 源地址:102.165.9.22
- Hold timer:70/90
- Keepalive timer:20/30
- bird>
而已。您的 BGP IPv4 会话已建立,您的 IPv4 范围应在全局路由表中可见。
要建立 IPv6 BGP 会话,请使用以下命令安装bird6包:
- [root@fra-d054 ~]# yum -y install bird6
编辑配置文件/etc/bird6.conf并使用以下行附加文件。确保将示例 IP 地址和 IP 范围替换为您的实际 IP 信息、AS 编号和 BGP 密码。
- 全部记录系统日志;
- #Router ID = 服务器主 IPv4 地址
- router id 102.165.9.22;
- 协议设备{
- 扫描时间10;# 每 10 秒扫描一次接口
- } #
- 禁用自动生成到所有网络接口的直接路由。
- 协议直接{
- 禁用;# 默认禁用
- } #禁止
- BIRD 路由表与 OS 内核同步。
- 协议内核{
- 全部导入;# 导入表,默认是全部导入全部
- 导出;# 导出到协议。默认是 export none
- }
- #Route your subnet via your server main IP address
- protocol static {
- route 2a0e:1c04:1::/48 via 2a03:a960:184:1::2;
- }
- #local = 您的服务器主 IP 地址和您的 AS 编号
- #neighbor = 您的服务器主 IP 地址的网关和 Heficed AS 编号,默认为 61317
- #password = BGP 会话密码
- 协议 bgp Heficed {
- description "BGP session to Heficed";
- 本地 2a03:a960:184:1::2 为 397727;
- 邻居 2a03:a960:184:1::1 为 61317;
- 密码“您的 BGP 密码”;
- 进口过滤器{打印“进口”;接受; };
- 出口过滤器{打印“出口”;接受; };
- }
使用以下命令应用更改:
- [root@fra-d054 ~]# systemctl start bird6
确认bird6 守护进程是否正在运行:
- [root@fra-d054 ~]# systemctl status bird6
- ● bird6.service - BIRD Internet Routing Daemon
- Loaded: loaded (/usr/lib/systemd/system/bird6.service; disabled; vendor preset: disabled)
- Active: active (running ) 自 2021 年 6 月 26 日星期六 14:37:07 UTC 起;2s 前
- Main PID: 9337 (bird6)
- CGroup: /system.slice/bird6.service
- └─9337 /usr/sbin/bird6 -f -u bird6 -g bird6
- Jun 26 14:37:07 fra-d054 systemd[1] : 启动 BIRD Internet Routing Daemon。
- 6 月 26 日 14:37:07 fra-d054 bird6[9337]:开始
- 于 6 月 26 日 14:37:07 fra-d054 bird6[9337]:Netlink:无效参数
- 6 月 26 日 14:37:08 fra-d054 bird6[9337]:出口
- 6 月 26 日 14:37:08 fra-d054 bird6[9337]:进口
使用命令进入bird6控制台,查看会话是否建立:
- [root@fra-d054 ~]#birdc6
- BIRD 1.6.8 准备好了。
- bird> show protocol all Heficed
- name proto table state since info
- Heficed BGP master up 14:37:08 已建立
- 描述:到 Heficed 的 BGP 会话
- 首选项:100
- 输入过滤器:(未命名)
- 输出过滤器:(未命名)
- 路由:1 个导入,1 个导出, 1 首选
- 路线更改统计:收到拒绝过滤忽略接受
- 进口更新:1 0 0 0 1
- 进口撤回:0 0 --- 0 0
- 出口更新:2 1 0 --- 1
- 出口撤回:0 --- --- --- 0
- BGP 状态:已建立
- 邻居地址:2a03:a960:184:1::1
- 邻居 AS:61317
- 邻居 ID:191.101.243.1
- 邻居上限:刷新重启感知 llgr-感知 AS4
- 会话:外部 AS4
- 源地址:2a03:a960:184:1::2
- 保持定时器:80/90
- Keepalive 定时器:19/30
- Bird>
而已。您的 IPv6 BGP 会话已建立,您的 IPv6 范围应在全局路由表中可见。