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命令,暫不支持;