FRRouting

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
groupadd -r -g 85 frrvty
useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin  -c "FRR FRRouting suite" -d /var/run/frr frr

 

2.3  安裝依賴

 #由於centos7沒有libyang,需要手動安裝
    cd /tmp
    git clone https://github.com/CESNET/libyang.git
    cd libyang
    mkdir build; cd build
    cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -D CMAKE_BUILD_TYPE:String="Release" ..
    make
    make install

 

2.4  安裝FRR

    下載release版本frr-frr-7.3.1.tar.gz
    cd frr
    ./bootstrap.sh
    ./configure \
        --bindir=/usr/bin \
        --sbindir=/usr/lib/frr \
        --sysconfdir=/etc/frr \
        --libdir=/usr/lib/frr \
        --libexecdir=/usr/lib/frr \
        --localstatedir=/var/run/frr \
        --with-moduledir=/usr/lib/frr/modules \
        --enable-snmp=agentx \
        --enable-multipath=64 \
        --enable-user=frr \
        --enable-group=frr \
        --enable-vty-group=frrvty \
        --enable-systemd=yes \
        --disable-exampledir \
        --disable-ldpd \
        --enable-fpm \
        --with-pkg-git-version \
        --with-pkg-extra-version=-MyOwnFRRVersion \
        SPHINXBUILD=/usr/bin/sphinx-build
    make
    make install
    install -p -m 644 tools/frr.service  /usr/lib/systemd/system/frr.service
    install -p -m 644 tools/frrinit.sh.in  /usr/lib/frr/frr

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
! Zebra configuration file
!
frr version 6.0
frr defaults traditional
!
hostname Router
password zebra
enable password zebra
!
log stdout
!
!

 

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、FRRIGP協議棧,isis和ospf支持存儲LinkState數據庫

2、bgp協議棧不支持北向通過bgp-ls發佈LinkState數據。

4.2  SR能力

1、srpolicy在bgp地址族中不存在;

2、ospf擴展支持segment-routing,不支持靜態配置;

3、isis視圖下無segment-routing命令,暫不支持;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章