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

 

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