BGP 与 179 端口
179 是 BGP 的端口,自治系统之间通过它交换路由前缀与路径属性,是互联网域间路由的基础。BGP 会话建立在 TCP 之上,因此两端必须能互相连到 179 并保持长时间稳定;路由变化通过增量更新传递,会话中断与重建会带来成规模的收敛抖动。BGP 本身没有强制认证机制,缺少前缀过滤与来源校验时会引发前缀劫持与路由泄露。
基本信息
| 服务 | BGP(硬件路由器、FRR、Bird 等软件实现) |
|---|---|
| 协议 | TCP 179 |
| 规范 | RFC 4271(BGP-4) |
| 必备防护 | TCP MD5 或 TCP-AO、TTL 安全、前缀过滤与最大前缀限制 |
| 配置路径 | 设备命令行或软件路由的配置文件 |
| 安全等级 | 仅对等体互连,避免无关暴露 |
典型使用场景
- 多线出口:同时接入多家运营商并按其路径属性择优转发
- 数据中心互联:跨机房通过 BGP 交换网段并支持快速收敛
- 云上组网:云专线与本地网络之间交换路由
- 内网改造:大型园区用 BGP 替代静态路由,简化维护
- 流量调度:通过路径属性调整入向与出向流量走向
查看对等体与会话状态
查看对等体与会话状态
# 网络设备命令行(厂商语法不同,按实际设备手册核对)
# 华为: display bgp peer
# 思科: show ip bgp summary
# 软件路由 Bird 与 FRR:
birdc show protocols all
vtysh -c 'show bgp summary'
vtysh -c 'show bgp neighbor 192.0.2.1' | head -n 30会话状态速查
| 状态 | 含义 | 排查方向 |
|---|---|---|
| Idle | 未启动或已断开 | 检查是否被管理侧关闭 |
| Connect 与 Active 反复切换 | TCP 未建立 | 地址不可达、端口被拦或认证参数不匹配 |
| OpenSent | TCP 已通,等待对方打开报文 | 核对自治系统号与能力协商 |
| OpenConfirm | 握手接近完成 | 核对认证与保持时间 |
| Established | 会话正常 | 此时才关注路由收发与策略 |
网络层与抓包验证
网络层与抓包验证
nc -vz 192.0.2.1 179 # 先用工具确认 TCP 可达
sudo tcpdump -ni eth0 'tcp port 179 and host 192.0.2.1' -c 20 # 已建立时也应有保持报文往来
ss -tnp | grep ':179' # 本机侧查看连接与状态防护要点清单
防护要点清单
1) 每对邻居启用 TCP MD5 或 TCP-AO 认证
2) 启用 TTL 安全(GTSM),只接受 TTL 接近 255 的报文
3) 对 eBGP 邻居设置接收前缀数量上限并配置阈值告警
4) 收发方向都配置前缀过滤,只允许约定网段
5) 变更优先使用软清,避免整表重建造成抖动缺少前缀过滤与最大前缀限制时,对端一次配置失误就可能把海量路由灌进你的路由表,导致设备资源耗尽与业务中断。
变更纪律:前缀策略调整前先在实验环境验证,维护窗口内优先使用路由刷新而非会话重建;会话重建会造成短暂但成规模的收敛,影响面往往超出预期。
排查顺序:先把 179 的 TCP 可达性与认证参数确认清楚,再看操作系统号、能力协商与保持时间,最后才排查路由策略;多数会话起不来的问题都停在前两步。