Openwrt安装quagga路由软件打造真正强大的路由器 | APP-DEV-P|各种乱789知识积累

Openwrt安装quagga路由软件打造真正强大的路由器 | APP-DEV-P|各种乱789知识积累

Openwrt安装quagga路由软件打造真正强大的路由器

Openwrt要想实现强大的真正路由器功能,安装Quagga这个路由软件是首选,现在就将安装过程实录如下。

1.更新软件源
root@myOpenWrt:/usr/sbin# opkg update
2.安装quagga主程序
root@myOpenWrt:/usr/sbin# opkg install quagga
3.选择安装quagga常用模块
我们主要是实现Openwrt的支持RIP路由协议,因此只安装了Zebra和ripd两个主要模块
其中还有watchdog和vtysh两个模块是辅助模块,一般都需要选上。
root@myOpenWrt:/usr/sbin# opkg install quagga-zebra quagga-ripd quagga-watchquagga quagga-vtysh

4.完成以上安装过程后,会新产生/etc/quagga目录,其中quagga的配置文件都在其中。
root@myOpenWrt:/etc/quagga# ls -l
-rw——- 1 root root 106 Mar 23 23:50 ripd.conf
-rw——- 1 root root 106 Mar 23 23:50 zebra.conf
我们来看看默认的内容:
【/etc/quagga/zebra.conf默认内容】
root@myOpenWrt:/etc/quagga# cat zebra.conf
password zebra ——–默认密码,建议首先修改
!
access-list vty permit 127.0.0.0/8 ——默认只运行本机登录,建议在前面加‘!’屏蔽
access-list vty deny any
!
line vty
access-class vty
【/etc/quagga/ripd.conf默认内容】
root@myOpenWrt:/etc/quagga# cat ripd.conf
password zebra ——–默认密码,建议首先修改
!
access-list vty permit 127.0.0.0/8 ——默认只运行本机登录,建议在前面加‘!’屏蔽
access-list vty deny any
!
line vty
access-class vty
其实以上两个文件内容都可以只保留第一行,其他行可以直接删除,或者全部加上!好注释掉。

5.启动quagga
root@myOpenWrt:/etc/quagga# /etc/init.d/quagga start
quagga.init: Starting zebra … done.
quagga.init: Starting ripd … done.
quagga.init: Starting watchquagga … done.
可以参看运行后的网路监听端口,分别默认是2601(zebra)和2602(ripd)
root@myOpenWrt:/etc/quagga# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2601 0.0.0.0:* LISTEN 3131/zebra
tcp 0 0 0.0.0.0:2602 0.0.0.0:* LISTEN 3137/ripd

6.登录管理台进行设置
通常我们主要是设置RIP协议,因此主要登录2602端口,可以直接在Openwrt本机上telnet localhost 2602 端口,运行如下。
root@myOpenWrt:/etc/quagga# telnet localhost 2602

Entering character mode
Escape character is ‘^]’.

Hello, this is Quagga (version 0.99.21).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

User Access Verification

Password:
myOpenWrt>
输入/etc/quagga/ripd.conf第一行设置的密码后就进入到ripd的管理控制台,至此,一台强大的真正的rip路由器就呈现在你面前啦。
简答输入几个命令看看,至此超多命令呢,而且都是和Cisco路由器的命令基本一直,想学CCIE的筒子们有福气啦。
myOpenWrt> list ——输入list可以列举出至此的所有命令!!!
enable
exit
help
list
quit
show history
show ip prefix-list
show ip prefix-list WORD
show ip prefix-list WORD A.B.C.D/M
show ip prefix-list WORD A.B.C.D/M first-match
show ip prefix-list WORD A.B.C.D/M longer
show ip prefix-list WORD seq
show ip prefix-list detail
show ip prefix-list detail WORD
show ip prefix-list summary
show ip prefix-list summary WORD
show ip rip
show ip rip status
show ipv6 prefix-list
show ipv6 prefix-list WORD
show ipv6 prefix-list WORD X:X::X:X/M
show ipv6 prefix-list WORD X:X::X:X/M first-match
。。。 。。。

7. 一步一步实例讲解如何支持RIP路由协议

(1)配置之前,先看看我的Openwrt网卡设置,基本可以看到我的Openwrt网络拓扑:
本人Openwrt目前有三个网段,分别是:
br-lan 10.10.7.0/24
br-wan 10.10.8.0/24
tap0 10.10.6.0/24

通过RIP协议实现的主要目标是这三个网段可以互访,最关键是不需要设置静态路由。
root@myOpenWrt:/etc/quagga# ifconfig
br-lan Link encap:Ethernet HWaddr 00:90:4C:C0:04:51
inet addr:10.10.7.1 Bcast:10.10.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43 errors:0 dropped:0 overruns:0 frame:0
TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10988 (10.7 KiB) TX bytes:10384 (10.1 KiB)

br-wan Link encap:Ethernet HWaddr 00:90:4C:C0:04:51
inet addr:10.10.8.30 Bcast:10.10.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:66125 errors:0 dropped:6060 overruns:0 frame:0
TX packets:40913 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8414640 (8.0 MiB) TX bytes:4575110 (4.3 MiB)

eth0 Link encap:Ethernet HWaddr 00:90:4C:C0:04:51
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:273997 errors:0 dropped:0 overruns:0 frame:0
TX packets:44407 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:82347347 (78.5 MiB) TX bytes:5276107 (5.0 MiB)
Interrupt:4

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:940 errors:0 dropped:0 overruns:0 frame:0
TX packets:940 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:125091 (122.1 KiB) TX bytes:125091 (122.1 KiB)

tap0 Link encap:Ethernet HWaddr D2:34:15:87:F5:38
inet addr:10.10.6.10 Bcast:10.10.6.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1846 errors:0 dropped:289 overruns:0 frame:0
TX packets:792 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:234361 (228.8 KiB) TX bytes:57130 (55.7 KiB)
===================================================================================
(2)配置命令示例
【注意:下面我用—标注的命令才是有效命令,未标注的命令是手工敲命令前几个字母后,直接按tab键,命令会自动补全!!!非常方便】
myOpenWrt> en
myOpenWrt> enable –进入管理权限
myOpenWrt# config
myOpenWrt# configure ter
myOpenWrt# configure terminal –进入终端设置模式
myOpenWrt(config)# route
route-map router
myOpenWrt(config)# router
rip zebra
myOpenWrt(config)# router rip –指定路由为rip
myOpenWrt(config-router)# ver
myOpenWrt(config-router)# version 2 –指定版本为rip v2
myOpenWrt(config-router)# br-wan –配置openwrt的网卡1(重要的命令,将你需要互相访问的网卡都逐个设置
myOpenWrt(config-router)# network br-lan –配置openwrt的网卡2
myOpenWrt(config-router)# network tap0 –配置openwrt的网卡3
myOpenWrt(config-router)# exit —回到上一层
myOpenWrt(config)# in
myOpenWrt(config)# interface tap0 —指定需要配置的网卡 我的机器需要配置的是tap0
myOpenWrt(config-if)# ip rip authentication mode md5 —–认证模式为md5
myOpenWrt(config-if)# ip rip authen
myOpenWrt(config-if)# ip rip authentication str
myOpenWrt(config-if)# ip rip authentication string abc –认证字符串为abc
myOpenWrt(config-if)# exit —回到上一层
myOpenWrt(config)# exit —回到上一层
myOpenWrt# write —-!!!将上述配置写入配置文件,重启后一样生效。
Configuration saved to /etc/quagga/ripd.conf
myOpenWrt# (至此,基本需要配置RIP的命令就OK了)

下面我们来看看配置后生成的配置文件内容
root@myOpenWrt:/etc/quagga# cat ripd.conf
!
! Zebra configuration saved from vty
! 2013/06/29 22:04:51
!
password zebra
!
interface tap0
ip rip authentication mode md5 auth-length old-ripd
ip rip authentication string abc
!
router rip
version 2
network br-wan
network br-lan
network tap0
!
line vty
!

—————–
通过以上比较可以看出上述文件内容基本就是我命令中配置的东西,可见quagga非常智能方便,如果你擅长命令就直接用命令配置,如果你擅长用配置文件,可以直接修改配置文件,两种方式效果一样。通过以上设置后,就已经实现了路由器联通的几个网段可以互相访问了!!!基本不需要用户再设置任何静态路由,OpenWrt会自动通过RIP协议定期更新路由表,是不是很方便啊。