BMP(BGP Monitoring Protocol)提供了一种比传统 SNMP、syslog、NetFlow 更简单、结构化、实时的方式来监控 BGP 的运行状态。

BMP的数据包包含以下七种类型:
image-4-1024x531.png

  • 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服务器的内容为策略前/策略后

文章作者: Wippe
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wippe's Blog
Network Network
喜欢就支持一下吧