以下是我的配置:
bird2
[root@Kwrt:07:21 PM ~] # cat /etc/bird.conf
log syslog all;
router id 192.168.9.254;
protocol device {
scan time 10;
}
protocol kernel {
ipv4 {
import all;
export all;
};
}
protocol direct {
interface "br-lan";
}
protocol static foreign {
ipv4;
include "/root/foreign.conf";
}
protocol ospf v2 ospf1 {
ipv4 {
import all;
export where source = RTS_STATIC && net != 0.0.0.0/0;
};
area 0.0.0.0 {
interface "br-lan" {
type ptp;
hello 10;
dead 40;
};
};
}
ROS 学习到的 address:
AI 说因为学习到了 0.0.0.0 导致的。
[root@Kwrt:08:05 PM ~] # birdc show route | grep 0.0.0.0
150.0.0.0/16 unreachable [foreign 19:11:31.576] * (200)
60.0.0.0/13 unreachable [foreign 19:11:31.576] * (200)
120.0.0.0/12 unreachable [foreign 19:11:31.576] * (200)
路由表生成配置
cat > /root/generate_foreign.sh << 'EOF'
#!/bin/bash
生成国外路由表( BIRD static 格式) - 纯 Shell 版
CHINA_URL="https://raw.githubusercontent.com/mayaxcn/china-ip-list/master/chnroute.txt"
FOREIGN_FILE="/root/foreign.conf"
TMP_CHINA="/tmp/china.tmp"
echo "=== 下载最新国内 IP 列表 ==="
curl -s -L -o "$TMP_CHINA" "$CHINA_URL"
if [ $? -ne 0 ] || [ ! -s "$TMP_CHINA" ]; then
echo "下载失败!"
exit 1
fi
echo "=== 生成国外路由表(取反)==="
cat > "$FOREIGN_FILE" << HEADER
Foreign (non-China) routes generated at $(date -R)
protocol static foreign {
HEADER
awk '!/^#/ && NF>0 { print " route " $1 " reject;" }' "$TMP_CHINA" >> "$FOREIGN_FILE"
echo "}" >> "$FOREIGN_FILE"
echo "生成完成!国外路由文件: $FOREIGN_FILE"
echo "路由条目数量: $(wc -l < "$FOREIGN_FILE")"
rm -f "$TMP_CHINA"
EOF
[root@Kwrt:04:37 PM ~] # head -20 /root/foreign.conf
Foreign (non-China) routes generated at Tue, 30 Jun 2026 16:37:29 +0800
protocol static foreign {
route 1.0.1.0/24 reject;
route 1.0.2.0/23 reject;
route 1.0.8.0/21 reject;
route 1.0.32.0/19 reject;
route 1.1.0.0/24 reject;
route 1.1.2.0/23 reject;
route 1.1.4.0/22 reject;
route 1.1.8.0/24 reject;
route 1.1.9.0/24 reject;
route 1.1.10.0/23 reject;
route 1.1.12.0/22 reject;
route 1.1.16.0/20 reject;
route 1.1.32.0/19 reject;
route 1.2.0.0/23 reject;
route 1.2.2.0/24 reject;
route 1.2.4.0/24 reject;
route 1.2.5.0/24 reject;
route 1.2.6.0/23 reject;