1 FRRouting
1.1 简介
FRR是功能齐全的高性能免费软件IP路由套件。
FRR实现了所有标准路由协议,例如BGP,RIP,OSPF,IS-IS等,以及它们的许多扩展。
FRR是主要用C语言编写的高性能套件。它可以轻松处理完整的Internet路由表,并且适用于从廉价SBC到商业级路由器的各种硬件。 它被数百家公司,大学,研究实验室和政府积极地用于生产。
FRR在GPLv2下分发,其开发以Linux内核为模型。 任何人都可以贡献功能,错误修复,工具,文档更新或其他任何东西。
FRR是Quagga的一个分支。
1.2 调研目的
1、调研BGP协议栈支持情况,重点关注bgp-ls。
2、调研SR支持能力,能否作为仿真设备。
2 编译/安装/启动FRR
2.1 安装基础环境
yum install -y -q nss curl git autoconf automake libtool make cmake readline-devel texinfo net-snmp-devel groff pkgconfig json-c-devel pam-devel bison flex pytest c-ares-devel python-devel systemd-devel python-sphinx libcap-devel |
2.2 添加telenet用户
groupadd -g 92 frr |
2.3 安装依赖
#由于centos7没有libyang,需要手动安装 |
2.4 安装FRR
下载release版本frr-frr-7.3.1.tar.gz |
2.5 配置启动组件
2.6 启动FRR
systemctl preset frr.service
systemctl enable frr
systemctl start frr
2.7 登录
2.7.1 执行vtysh
2.7.2 需要配置zebra后再用telnet连接
#cat /etc/frr/zebra.conf |
telnet 127.0.0.1 2601
3 BGP支持情况
3.0 调研版本
本次基于两个版本调研:
1、7.3.1发布版本:https://github.com/FRRouting/frr/archive/frr-7.3.1.tar.gz编译构建;
2、bgp_ls分支版本:https://codeload.github.com/FRRouting/frr/zip/bgp_ls编译构建。
3.1 FRR-BGP支持的RFC
3.1.1 bgp-ls的rfc
如下:
http://www.faqs.org/rfcs/rfc7752.html
North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP
FRR支持的rfc没有包含bgp-ls。RFC7522规定的BGPLS的子地址族和地址簇code如下。
3.2 bgp视图下支持的配置
3.2.1 地址簇支持情况
1、地址簇支持ipv4,ipv6,l2vpn三大类:
2、ipv4下支持:flowspec,bgp-lu,multicast,unicast,vpn。
3、ipv6下支持:flowspec,bgp-lu,multicast,unicast,vpn。
4、l2vpn下支持:evpn。
5、无link-state地址簇。
3.2.2 BGP建链测试
1、与odl可以建链成功,link-state拓扑获取不到节点信息和链路信息
2、odl获取拓扑数据空:
3.3 frr中与link state相关的
3.3.1 OSPF支持link-state
在ospf的数据库中包含link-state信息
3.3.2 IS-IS支持link-state
在isis数据库包含link-state信息
4 FRR调研结果
4.1 link-state支持情况
1、FRR的IGP协议栈,isis和ospf支持存储LinkState数据库。
2、bgp协议栈不支持北向通过bgp-ls发布LinkState数据。
4.2 SR能力
1、srpolicy在bgp地址族中不存在;
2、ospf扩展支持segment-routing,不支持静态配置;
3、isis视图下无segment-routing命令,暂不支持;