BMP
BMP(BGP Monitoring Protocol)提供了一种比传统 SNMP、syslog、NetFlow 更简单、结构化、实时的方式来监控 BGP 的运行状态。
BMP的数据包包含以下七种类型:
Route Monitoring (Type 0)
报告 BGP 邻居发送的路由更新(几乎是原始 BGP 消息)。
用于收集路由表和路由动态变化。
Statistics Report (Type 1)
定期上报统计信息,例如 BGP 消息数量、错误数、丢弃数等。
Peer Down Notification (Type 2)
通知某个 BGP 邻居会话断开。
Peer Up Notification (Type 3)
通知某个 BGP 邻居会话建立。
Initiation Message (Type 4)
连接建立时,Client 向 Server 发送的启动信息。
Termination Message (Type 5)
连接关闭时的终止信息。
Route Mirroring (Type 6)
用于更高效地复制路由消息。
OBMP
为了测试,我采用了Github上的开源项目,以下是它的官网:
https://www.openbmp.org/
安装步骤完全参考官网流程:
1.Download
wget https://raw.githubusercontent.com/OpenBMP/obmp-docker/main/docker-compose.yml
git clone https://github.com/OpenBMP/obmp-grafana.git
2.Define a root location
export OBMP_DATA_ROOT=/var/openbmp
sudo mkdir -p $OBMP_DATA_ROOT
sudo chmod -R 7777 $OBMP_DATA_ROOT
3.Create sub-directories
mkdir -p ${OBMP_DATA_ROOT}/config
mkdir -p ${OBMP_DATA_ROOT}/kafka-data
mkdir -p ${OBMP_DATA_ROOT}/zk-data
mkdir -p ${OBMP_DATA_ROOT}/zk-log
mkdir -p ${OBMP_DATA_ROOT}/postgres/data
mkdir -p ${OBMP_DATA_ROOT}/postgres/ts
mkdir -p ${OBMP_DATA_ROOT}/grafana
chmod -R 7777 $OBMP_DATA_ROOT/*
4.Copy Grafana Provisioning
cp -r obmp-grafana/dashboards obmp-grafana/provisioning ${OBMP_DATA_ROOT}/grafana/
5.Run OpenBMP docker-compose.yml
OBMP_DATA_ROOT=/var/openbmp docker-compose -f ./docker-compose.yml -p obmp up -d
6.Verify by "docker ps"
confluentinc/cp-kafka:7.0.1;
confluentinc/cp-zookeeper:7.0.1;
openbmp/postgres:2.1.0;
openbmp/psql-app:2.1.0;
grafana/grafana:8.3.4;
openbmp/collector:2.1.0;
openbmp/whois:2.1.0
通过修改docker-compose文件,可以自定义grafana和bmp的端口,默认为3000和5000
Router配置
在docker容器都已启用之后,需要建立路由器与OBMP服务器的连接,此实验以思科IOS-XE为例(ps:思科IOS-XR支持性更好)
router bgp x
bmp server x
address x.x.x.x port-number 5000 #此处为OBMP服务器IP地址
initial-delay 1
failure-retry-delay 40
flapping-delay 1
stats-reporting-period 1
update-source x #此处为设备建立连接的接口,即指定源IP
activate
exit-bmp-server-mode
!
bmp initial-refresh delay 30
bgp router-id x.x.x.x
bgp log-neighbor-changes
neighbor x.x.x.x remote-as x
neighbor x.x.x.x bmp-activate server x #此处调用BMP server号

通过该命令查看BMP监控的邻居,如果有多个邻居绑定了BMP,则此处有多个

通过该命令查看设备与BMP的连接状态,UP代表已正常建立连接
OBMP-Grafana
通过OBMP服务器的IP+grafana端口(默认3000)进入grafana监控页面

注:需要登陆账号才能正常看到信息
默认账号:admin;密码:openbmp

该板块显示某个as号学到的前缀数

该板块会显示监控的BGP邻居信息

该板块会展示学到的路由所在区域及具体AS号的信息(该AS仅为目前环境中学到的AS path),该信息通过whois容器学习,需要一段时间
同时也会真的发现该网段在全球BGP网中的起源AS

该板块会显示前缀的历史信息,如有改动会在此显示
注:由于思科IOS-XE支持兼容性问题,此处显示的是邻居发来的update报文,而不是经过本身设备BGP路由策略而装表的实际条目,在华为及其他设备中可以选择上传给BMP服务器的内容为策略前/策略后