🐦🔥Bird的使用
约 467 字大约 2 分钟
2025-08-13
以下是在 Multipass 中创建两台 Ubuntu 虚拟机,并通过 BIRD 实现 BGP 路由交换的完整演示步骤:
1. 创建两台虚拟机
multipass launch --name vm1 --cpus 1 --mem 1G --disk 5G
multipass launch --name vm2 --cpus 1 --mem 1G --disk 5G2. 安装 BIRD
在两台虚拟机上安装 BIRD(BGP 路由守护进程):
# 进入 vm1
multipass shell vm1
sudo apt update
sudo apt install -y bird同样在 vm2 上执行相同操作。
3. 配置 BGP
在 vm1 上配置 BIRD(AS 65001)
编辑配置文件 /etc/bird/bird.conf:
sudo nano /etc/bird/bird.conf内容如下:
router id 192.168.64.100; # 使用 vm1 的 IP
protocol kernel {
scan time 60;
import filter {
if (net = 0.0.0.0/0) then reject;
accept;
};
export all;
}
protocol device {
scan time 60;
}
protocol bgp vm2 {
local as 65001;
neighbor 192.168.64.101 as 65002; # vm2 的 IP 和 AS
import all;
export all;
}在 vm2 上配置 BIRD(AS 65002)
编辑 /etc/bird/bird.conf:
router id 192.168.64.101; # 使用 vm2 的 IP
protocol kernel {
scan time 60;
import filter {
if (net = 0.0.0.0/0) then reject;
accept;
};
export all;
}
protocol device {
scan time 60;
}
protocol bgp vm1 {
local as 65002;
neighbor 192.168.64.100 as 65001; # vm1 的 IP 和 AS
import all;
export all;
}4. 启动 BIRD 并验证
在两台虚拟机上重启 BIRD:
sudo systemctl restart bird
sudo systemctl enable bird检查 BGP 邻居状态:
birdc show protocols输出应显示 vm2 或 vm1 为 Established 状态。
测试连通性:
在 vm1 上添加一个测试路由并检查 vm2 是否学习到:
# 在 vm1 上添加测试路由
sudo ip route add 10.0.0.0/24 via 192.168.64.100
# 在 vm2 上检查路由表
ip route | grep 10.0.0.05. 关键问题排查
- BGP 邻居未建立:
检查防火墙是否放行 BGP 端口(TCP 179):sudo ufw allow 179/tcp - 路由未同步:
确保protocol kernel中配置了export all。
效果图
vm1 (AS65001) ↔ BGP ↔ vm2 (AS65002)
192.168.64.100 192.168.64.101通过此配置,两台虚拟机将通过 BGP 动态交换路由表。你可以扩展此实验(如添加 OSPF 或更多邻居)。
也可直接参考官方docker演示:https://packetfire.org/post/intro-to-bgp/
更新日志
2025/8/13 15:11
查看所有更新日志
b14e6-add calico于06652-add bird于
