MACHINE Tux's lil' helper
Joined: 30 Mar 2004 Posts: 141 Location: Earth
|
Posted: Mon Sep 19, 2005 2:26 am Post subject: [原创] Gentoo/Cisco混合系列:把PC机变成高性能路由器 -- Quagga |
|
|
Quagga 是一套完全免费、完全自由、基于GPL许可证的路由软件。她由惠普HP、SUN、6WIND和BBN公司赞助。她在Unix平台上,特别是 FreeBSD,Linux,Solaris,NetBSD上,实现了OSPFv2, OSPFv3,RIPv1,RIPv2,RIPv3以及BGP4。Quagga是GNU Zebra(由Kunihiro Ishiguro开发)的一个分支。
Quagga包含一个核心守护进程zebra,她作为Unix底层核心的一个抽象层,表示为Unix上的一些Zserv API或Quagga客户端的TCP流。这些Quagga客户端实现路由协议并和zebra守护程序交换路由更新信息。这些Zserv客户端包括:
ospfd:实现OSPFv2
ripd:实现RIPv1和RIPv2
ospf6d:实现OSPFv3(IPv6)
ripngd:实现RIPv3(IPv6)
bgpd:实现BGP4+(包括对组播地址族和IPv6地址族的支持)
官方Quagga完全精通手册
http://www.quagga.net/docs/quagga.pdf
Quagga的安装与测试(基于Gentoo Linux)
不必按照Quagga包里面的安装说明就可以很轻易的安装好Quagga。
emerge -pv quagga 查看安装并修改安装特性
emerge quagga
安装完毕后,打rc-update show可以看到相关服务,如ripd,ospfd,bpgd,zebra。
默认自动启动:
rc-update add zebra default
rc-update add ripd default
rc-update add ospfd default
默认的安装路径是/usr/local/sbin/,默认的配置文件的路径是 /etc/conf.d/。Quagga的各个模块是分别配置的,在默认的配置文件目录下可以看到有几个.conf.sample文件,将其改名为. conf,然后就可以在/etc/init.d/zebra start来启动Quagga。启动之后可以用telnet到本机来测试:telnet localhost 2601。之后出现的画面和操作非常接近cisco路由器的配置,故不再多说。接下来就可以和Cisco各种路由器交换机进行无缝通讯。
Quagga 0.99版本以后加入了scaleable priority queue based SPF(基于可调整优先队列SPF算法),大大的增强了OSPF的性能。其算法效率优于Cisco2621的OSPF。
详细评测结果参考InfoCom公司的算法论文:
http://net.infocom.uniroma1.it/projects/progetti_dip/zebra/Section4.htm
如果你正在使用Quagga 0.92版本或更老的版本,请你注意以下Quagga对ipv6命令的更改:
老配置
==========
router bgp 7675
bgp router-id 10.0.0.1
redistribute connected
network 192.168.0.0/24
neighbor 10.0.0.2 remote-as 7675
ipv6 bgp network 3ffe:506::/33
ipv6 bgp network 3ffe:1800:e800::/40
ipv6 bgp aggregate-address 3ffe:506::/32
ipv6 bgp redistribute connected
ipv6 bgp neighbor 3ffe:506:1000::2 remote-as 1
新配置
==========
router bgp 7675
bgp router-id 10.0.0.1
network 192.168.0.0/24
redistribute connected
neighbor 10.0.0.2 remote-as 7675
neighbor 3ffe:506:1000::2 remote-as 1
no neighbor 3ffe:506:1000::2 activate
!
address-family ipv6
network 3ffe:506::/33
network 3ffe:1800:e800::/40
aggregate-address 3ffe:506::/32
redistribute connected
neighbor 3ffe:506:1000::2 activate
exit-address-family |
|