应急管控网络拓扑搭建
一、网络拓扑图
二、拓扑配置
1.资源库批量导入roas
在rpki.qcl.edu.cn服务器上的/usr/local/rpki/目录下执行脚本
sh roa_get.sh add
#!/bin/dash
# TODO
A='add'
R='remove'
start=10000
sum=254
run(){
for i in `seq 1 20`
do
for j in `seq 1 250`
do
as_number=`expr $start + $sum \* $i + $j`
a=`expr $i - 1`
b=`expr $j - 1`
echo "$1: 10.$a.$b.0/24 => $as_number" >> a.txt
done
krillc roas update --delta a.txt --ca rpki_qcl
rm -rf ./a.txt
done
}
if [ $1 = $A ];then
rm -rf ./a.txt
run A
else
if [ $1 = $R ];then
rm -rf ./a.txt
run R
fi
fi
2. RP依赖方
测试间左边PC机器作为RP依赖方
2.1 配置机器网口及网络IP地址
ifconfig enp1s0f1 192.168.5.202 netmask 255.255.255.0
ifconfig enp3s0 10.0.5.202 netmask 255.255.255.0
2.2 配置开机启动网络IP配置
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
将配置IP地址命令加入保存退出
/usr/sbin/ifconfig enp1s0f1 192.168.5.202 netmask 255.255.255.0
/usr/sbin/ifconfig enp3s0 10.0.5.202 netmask 255.255.255.0
#配置默认网关
/usr/sbin/route add defult gw 10.0.5.254
2.3 配置启动routinator-0.13.0
1.下载routinator
下载地址:https://github.com/NLnetLabs/routinator/releases/tag/v0.13.0-rc1
2.安装cargo
apt install cargo
3.解压
tar -zxvf routinator-0.13.0.tar.gz
4.编译
在routinator-0.13.0-rc1文件夹下执行cargo build
5.拉取ta.tal
curl --insecure https://rpki.qcl.edu.cn/ta/ta.tal --output ta.tal
6.以server模式启动routinator并添加rtr和http监听端口
cargo run -- --no-rir-tals --extra-tals-dir="/home/rpki/routinator" -c /etc/routinator/routinator.conf -vvvv --disable-rsync --allow-dubious-hosts server --rtr 0.0.0.0:3323 --http 0.0.0.0:8323 --refresh 20
3.路由器配置
3.1 分别配置路由器A(右PC机)、路由器B(上路由器)、路由器C(下路由器)的网口及网络IP
路由器A:
ifconfig enp3s0 192.168.5.200 netmask 255.255.255.0
ifconfig enp1s0f1 13.13.2.2 netmask 255.255.255.0
ifconfig enp1s0f0 10.4.1.1 netmask 255.255.255.0
路由器B:
ifconfig GE1 192.168.5.201 netmask 255.255.255.0
ifconfig GE3 13.13.2.1 netmask 255.255.255.0
ifconfig GE4 13.13.1.1 netmask 255.255.255.0
ifconfig GE2 10.4.2.1 netmask 255.255.255.0
路由器C:
ifconfig GE1 192.168.5.203 netmask 255.255.255.0
ifconfig GE3 13.13.1.3 netmask 255.255.255.0
ifconfig GE2 10.4.3.1 netmask 255.255.255.0
3.2 配置开机启动网络IP配置
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
将配置IP地址命令加入保存退出
3.3 Openbgpd(模拟路由器)
安装:
• 下载并解压
下载地址:https://mirror.sjtu.edu.cn/OpenBSD/OpenBGPD/
tar -zxvf openbgpd-7.8.tar.gz
• 安装
进入openbgpd-7.8目录下执行:
./configure --with-privsep-user=root
make
make install
启动:
• 查询bpgd进程并kill
ps -ef | grep bgpd
kill -9
或者ps -ef | grep bgpd | awk '{print $2}' | xargs kill -9
• 修改配置文件(“/usr/local/etc/bgpd.conf”)
注释
# include "/var/db/rpki-client/openbgpd"
添加RTR
rtr 192.168.5.202{
port 3323
}
• 运行
bgpd/bgpd -d
三、进行应急管控测试
1.启动六台设备
2.在RP依赖方机器上启动RP并连接资源库拉取ROA并设置刷新时间为20s。在RP软件的安装目录routinator执行:
cargo run -- --no-rir-tals --extra-tals-dir="/home/rpki/routinator" -c /etc/routinator/routinator.conf -vvvv --disable-rsync --allow-dubious-hosts server --rtr 0.0.0.0:3323 --http 0.0.0.0:8323 --refresh 20
3.在路由器A上配置ASN为11272,路由IP前缀为10.4.1.0/24 ,此配置应在BGPD的conf文件中配置,文件路径:/usr/local/etc/bgpd.conf
4.在路由器B上配置ASN为11273,路由IP前缀为10.4.2.0/24 ,此配置应在BGPD的conf文件中配置,文件路径:/usr/local/etc/bgpd.conf
5.在路由器C上配置ASN为11274,路由IP前缀为10.4.3.0/24 ,此配置应在BGPD的conf文件中配置,文件路径:/usr/local/etc/bgpd.conf
6.将路由器A与路由器B、路由器B与路由器C分别添加邻居关系。此配置应在BGPD的conf文件中配置,文件路径:/usr/local/etc/bgpd.conf
7.配置好配置文件后,分别在各自路由器上执行命令,建立起邻居关系
bgpctl neighbor 邻居IP up
8.建立完邻居关系后,在各自路由器上执行命令验证邻居关系是否建立成功
bgpctl show neighbor 邻居IP
bgpctl show rib
9.在测试终端A上测试终端B上观察能否ping通
- 访问https://rpki.qcl.edu.cn 登录RPKI路由应急管控系统进行ROA的批量删除、应急管控操作,并观察测试终端A、测试终端B的网络连通情况。