1.1.quagga代码总览
原版quagga是包含了以下进程实例:
1、zebra
2、rip
3、ospf
4、等
vrf 代码流程图
通过代码的分析,认为quagga的vrf还属于半成品。quagga开发的目标应该为一个zebra进程管理多个vrf,但还未实现,每个vrf路由进程都要有对应的vrf的zebra进程管理。
例如如下RIP请求zebra的代码:
vrf为固定值,并不能请求对应的vrf。只能每个vrf-zebra对应相应vrf-rip。还不能实现一个zebra管理全部vrf路由进程。
静态路由:
其中zebra主要负责全局配置和静态路由。zebra单进程下可以配置多vrf实例。
RIP路由:
如果要支持多vrf实例。根据分析,则需要启动多个RIP进程,每个进程绑定一个vrf。
注意事项:
zebra创建的vrf-id主要是维护linux系统中spacename的一个关联,并不创建spacename。而zebra又负责给每个路由实例发送系统资源信息,例如rip的接口信息是由zerba发送的。所以在实现vrf的时候要注意一点,那就是在创建vrf-id的时候需要创建对应namespace的zebra进程! 不然rip是获取不到namespace空间的接口信息的。而rip和zebra通信的管道是可以修改的,应该为启动参数中包含的,但还没有测试。
1.2.编译quagga
交叉编译libreadline库
================================================================
echo bash_cv_wcwidth_broken=yes > nioslinux.cache
3128
route add命令实例.
/configure --enable-shared --host=armeb-mv5sft-linux-gnueabi --prefix=/opt/toolschain/armeb-mv5sft-linux-gnueabi_SW3.2/ --cache-file=nioslinux.cache
全千兆
./configure --enable-shared --host=arm-broadcom-linux-gnueabi --prefix=/opt/toolschain/bcm-arm-glibcle/ --cache-file=nioslinux.cache
=================================================================
x86
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/quagga-1.0.20160315-r2 --htmldir=/usr/share/doc/quagga-1.0.20160315-r2/html --libdir=/usr/lib64 --enable-exampledir=/usr/share/doc/quagga-1.0.20160315-r2/samples --enable-irdp --enable-isisd --enable-isis-topology --enable-pim
d --enable-user=quagga --enable-group=quagga --enable-vty-group=quagga --with-cflags=-march=native --with-pkg-extra-version=-gentoo --sysconfdir=/etc/quagga --localstatedir=/run/quagga --disable-static --disable-capabilities --disable-pcreposix --disable-tcp-zebra --disable-doc --enable-vtysh --with-libpam --enable-ripngd --enable-ospf6d --enable-rtadv
3128
./configure --prefix=/witnet --build=x86_64-pc-linux-gnu --host=armeb-mv5sft-linux-gnueabi CPPFLAGS=-I/opt/toolschain/armeb-mv5sft-linux-gnueabi_SW3.2/include --libdir=/opt/toolschain/armeb-mv5sft-linux-gnueabi_SW3.2/lib  --enable-irdp --enable-isisd --enable-isis-topology --enable-pimd --enable-user=root --enable-group=root --enable-vty-group=root --with-pkg-extra-version=-madhex  --sysconfdir=/etc/quagga --localstatedir=/run/quagga --disable-static --disable-capabilities --disable-pcreposix --disable-tcp-zebra --disable-doc --enable-vtysh --with-libpam --enable-ripngd --enable-ospf6d --enable-rtadv
全千兆
./configure --prefix=/witnet --build=x86_64-pc-linux-gnu --host=arm-broadcom-linux-gnueabi CPPFLAGS=-I/opt/toolschain/bcm-arm-glibcle/include --libdir=/opt/toolschain/bcm-arm-glibcle/lib --disable-vtysh --enable-user=root --enable-group=root --enable-vty-group=root

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。