免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2671 | 回复: 0
打印 上一主题 下一主题

Quagga 简单静态路由 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-24 11:53 |只看该作者 |倒序浏览


1.在做为路由器的计算机上打开ip转发功能
2.在做为路由器的计算机上添加多个IP或网络接口
3.网络A内计算机的网关设置为192.168.62.254;网络B内计算机的网关设置为172.16.62.254
4.两个网络内计算机测试与对方网络的连通性
多重静态路由

1.在做为路由器1路由器2和的计算机上打开ip转发功能
2.在做为路由器1路由器2的计算机上添加多个IP或网络接口
3.在路由器1上添加静态路由:到目标网络172.16.63.0/16的网关是172.16.62.253
#route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.62.253
4.在路由器2上添加静态路由:到目标网络192.168.62.0/24的网关是172.16.62.254
#route add -net 192.168.62.0 netmask 255.255.255.0 gw 172.16.62.254
5.网络A内计算机的网关设置为192.168.62.254;网络B内计算机的网关设置为172.16.62.254 ( 或172.16.62.253 ) ;网络C内计算机的网关设置为172.16.63.254
6.测试某个网络内的计算机与其它网络内计算机的连通性
注:上述方法添加的路由在系统重新启动后将消失,要使该静态路由保持下来,可以将route指令写在能自动执行的脚本中,或者在网络接口的图形界面中添加永久路由
动态路由
quagga官方站点:http://www.quagga.net/
zebra官方站点:
http://www.zebra.org/
动态路由通常是用在路由器与路由器之间的沟通,所以要让您的路由器具有动态路由的功能,
你必须要了解到对方路由器上面所提供的动态路由协议才行,这样两部路由器才能够透过该协议来沟通彼此的路由规则。
目前常见的动态路由协议有:RIPv1,
RIPv2, OSPF, BGP 等等,
zebra 都有支持这些路由协议喔!
在 CentOS
上头,我们使用 quagga
这个套件来提供 zebra
,因为 quagga
是更新 zebra
而来的,
事实上,你可以说, quagga
就是 zebra
啦!赶紧安装他先:
这个套件所提供的各项动态路由协议都放置到
/etc/quagga/ 目录内,底下我们以较为简单的
RIPv2 协议来处理动态路由,
不过你得要注意的是,不论你要启动什么动态路由协议,那个
zebra 都必须要先启动才行!
这是因为:
zebra
这个 daemon
的功能在更新核心的路由规则;
RIP
这个 daemon
则是在向附近的其它 Router 沟通协调路由规则的传送与否。
而各个路由服务的设定档都必须要以 /etc/quagga/*.conf 的档名来储存才行,如上表我们可以发现
zebra 这个服务是有设定好了,不过 ripd 的档名却不是
.conf 结尾。所以我们必须要额外作些设定才行。 而假设我们的网络连结如下图二所示:

图二
这两部
Linux Router 分别负责不同的网域,且可以透过
192.168.0.0/24 这个网域来沟通。
在没有设定额外路由规则的情况下,那个 PC1
与 PC2
是无法沟通的!另外,
zebra 必须要同时安装在两部
Linux Router 上头才行,
而且我们只要设定好这两部主机的网络接口
(eth0, eth1) 后,不需要手动输入额外的路由设定喔!可以透过
RIP 这个路由协议来搞定的!
设定
zebra
我们先设定图二右手边那一部 Linux Router,关于
zebra.conf 你可以这样设定的:
       
               
               
                1.
                先设定
                zebra 并且启动 zebra
               
                [root@linux
                ~]# vi /etc/quagga/zebra.conf
               
                hostname
                linux.router1  给予这个路由器一个主机名称,随便取!
               
                password
                linux1         给予一个密码!
               
                enable
                password iinux1  将这个密码生效!
               
                log file
                zebra.log      将所有
                zebra 产生的信息存到登录文件中
               
                 
               
                [root@linux
                ~]# /etc/init.d/zebra start
               
                [root@linux
                ~]# netstat -tunlp
               
                Active
                Internet connections (only servers)
               
                Proto Recv-Q
                Send-Q Local Address   Foreign Address   State   PID/Program name
               
                tcp        
                0      0 127.0.0.1:2601  0.0.0.0:*         LISTEN  6422/zebra
       
仔细看,由于
zebra 这个服务的任务主要是在修改 Linux 系统核心内的路由,
所以他仅监听本机接口而已,并不会监听外部的接口才对!另外,在 zebra.conf 这个档案当中,
我们所设定的那个密码是有作用的喔!可以让我们登入 zebra 这套软件呢! 好了,我们来查一查这个
2601 的 port 是否正确的启动的呢?
       
               
               
                [root@linux
                ~]# telnet localhost 2601
               
                Trying
                127.0.0.1...
               
                Connected
                to localhost.
               
                Escape
                character is '^]'.
               
                 
               
                Hello,
                this is Quagga (version 0.98.3).
               
                Copyright
                1996-2005 Kunihiro Ishiguro, et al.
               
                 
               
                User
                Access Verification
               
                 
               
                Password:
                在这里输入刚刚你设定的密码啊!
               
               
                linux.router1> 在这边输入『
                ? 』就能够知道有多少指令可使用
               
                  
                echo      Echo a message back to the vty
               
                  
                enable    Turn on privileged mode command
               
                  exit   
                   Exit current mode and down to previous mode
               
                  
                help      Description of the interactive help system
               
                  
                list      Print command list
               
                  
                quit      Exit current mode and down to previous mode
               
                  
                show      Show running system information
               
                  
                terminal  Set terminal line parameters
               
                  
                who       Display who is on vty
               
               
                linux.router1> list
               
                  echo
                .MESSAGE
               
                  enable
               
                  exit
               
                  help
               
                  list
               
                  quit
               
                  show
                debugging zebra
               
                  show
                history
               
                  show
                interface [IFNAME]
               
                  show ip
                forwarding
               
                  show ip
                route
               
                ....其它省略....
               
               
                linux.router1> show ip route
               
                Codes: K -
                kernel route, C - connected, S - static, R - RIP, O - OSPF,
               
                       I -
                ISIS, B - BGP, > - selected route, * - FIB route
               
                 
               
                K>*
                0.0.0.0/0 via 192.168.0.254, eth0
               
                C>*
                127.0.0.0/8 is directly connected, lo
               
                C>*
                192.168.0.0/24 is directly connected, eth0
               
                C>*
                192.168.10.0/24 is directly connected, eth1
               
               
                linux.router1> exit
               
                Connection
                closed by foreign host.
       
仔细看到,我们登入这个 zebra 的软件之后,可以输入『help』或问号『?』,
zebra 就会显示出你能够执行的指令有哪些,比较常用的当然是查询路由规则啰!以『 show ip
route 』来查阅,结果可以发现目前的接口与预设路由都被显示出来了, 显示的结果当中,K
代表以 router 这个指令直接加入核心的路由规则,C
则代表你的网络接口相关的路由规则。
事实上,如果你还想要增加额外的静态路由的话,也可以透过 zebra 而不必使用
route 指令呢! 例如想要增加 10.0.0.0/24 给
eth0 来处理的话,可以这样做:
       
               
               
                [root@linux
                ~]# vi /etc/quagga/zebra.conf
               
                #
                新增底下这一行喔!
               
                ip route
                10.0.0.0/24 eth0
               
                 
               
               
                [root@linux ~]# /etc/init.d/zebra restart
               
               
                [root@linux ~]# telnet localhost 2601
               
                User
                Access Verification
               
                 
               
                Password:
                这里输入密码
               
               
                linux.router1> show ip route
               
                Codes: K -
                kernel route, C - connected, S - static, R - RIP, O - OSPF,
               
                       I -
                ISIS, B - BGP, > - selected route, * - FIB route
               
                 
               
                K>*
                0.0.0.0/0 via 192.168.0.254, eth0
               
                S>*
                10.0.0.0/24 [1/0] is directly connected, eth0
               
                C>*
                127.0.0.0/8 is directly connected, lo
               
                C>*
                192.168.0.0/24 is directly connected, eth0
               
                C>*
                192.168.10.0/24 is directly connected, eth1
       
嘿嘿!立刻就会多出一笔路由的规则,而且最右边会显示 S,亦即是静态路由
(Static route) 的意思。 如此一来,我们系统管理员可就轻松多了! 设定完 zebra
之后,接下来我们可以开始看看 ripd 这个服务啰!
·
设定
ripd 服务
ripd
这个服务可以在两部
Router 之间进行路由规则的交换与沟通, 当然啦,如果你的环境里面有类似 Cisco
或者是其它有提供 RIP 协议的路由器的话, 那么你当然也是可以透过这个
RIP 让您的 Linux Router 与其它硬件路由器互相沟通的吶!闲话少说,来设定
ripd 吧!
       
               
               
               
                [root@linux ~]# vi /etc/quagga/ripd.conf
               
                hostname
                linux.router1  这里是设定
                Router 的主机名称而已
               
                password
                linux1         设定好你自己的密码喔!
               
                router
                rip              启动
                Router 的 rip 功能
               
                network
                192.168.0.0/24  针对这个网域来进行监听的动作!
               
                network
                eth0            针对这个接口来进行监听的动作
               
                network
                192.168.10.0/24 针对这个网域来进行监听的动作!
               
                network
                eth1            针对这个接口来进行监听的动作
               
                version
                2               启动的是
                RIPv2 的服务
               
                log stdout              
                直接在屏幕输出标准输出的数据
               
                 
               
               
                [root@linux ~]# /etc/init.d/ripd start
               
                 
               
                [root@linux
                ~]# netstat -tulnp
               
                Active
                Internet connections (only servers)
               
                Proto Recv-Q
                Send-Q Local Address  Foreign Address State  PID/Program name
               
                tcp        
                0      0 0.0.0.0:2602   0.0.0.0:*       LISTEN 21373/ripd
       
基本上,这样就设定完成一部路由器的 RIP 动态路由协议了!在上头
ripd.conf 的设定当中, 他会主动以 eth0 及
192.168.0.0/24 这个网域的功能来进行搜索,如此一来,未来你进行任何路由规则的变动, 或者是整个网域的主机
IP 进行更动,你将不需要重新到每部 Router 上更动!
因为这些路由器会自动的更新他们自己的规则喔!嘿嘿!接下来,同样的动作请你到
图二左边那部 Linux Router 上面设定一下!
因为整个设定的流程都一样,所以这里鸟哥就省略啦!
       
       
·
检查
RIP 协议的沟通结果
在两部
Linux Router 都设定妥当之后,你可以登入 zebra
去看这两部主机的路由更新结果喔! 举例来说,鸟哥登入
图二
右边那部
Linux Router 后,并且登入 zebra , 观察路由会是这样的情况:
       
               
               
               
                [root@linux ~]# telnet localhost 2601
               
                User
                Access Verification
               
                 
               
                Password:
                不要忘记了密码啊!
               
               
                linux.router1> show ip route
               
                Codes: K -
                kernel route, C - connected, S - static, R - RIP, O - OSPF,
               
                       B -
                BGP, > - selected route, * - FIB route
               
                 
               
                K>*
                0.0.0.0/0 via 192.168.0.254, eth0
               
                C>*
                127.0.0.0/8 is directly connected, lo
               
                C>*
                192.168.0.0/24 is directly connected, eth0
               
                R>*
                192.168.5.0/24 [120/2] via 192.168.0.200, eth0, 00:06:48
               
                C>*
                192.168.10.0/24 is directly connected, eth1
       
如果你有看到上述的字体,嘿嘿!那就是成功啦!那个最左边的 R 代表的是透过
RIP 通讯协议所设定的路由规则啦! 如此一来,咱们的路由器设定就搞定啰~
透过这个
zebra 以及 RIPv2
的路由协议的辅助,我们可以轻松的就将路由规则分享到附近区网的其它路由器上头, 比起单纯使用 route
去修改 Linux 的核心路由表,这个动作当然要快速很多! 不过,如果是很小型的网络环境,那么不要使用这个
zebra 啊!因为有点多此一举的感觉。 如果您的企业环境真的有够大,那么玩一玩这个 zebra
配合一些动态路由协议,嘿嘿!也是可行的啦!
 
动态路由RIP
动态路由OSPF
利用TC来实现对在一个Linux服务器上的两个虚拟主机实行不同的带宽策略的例子。
练习:
1. 分组合作,实现用两台Linux计算机做路由器,通过添加静态路由的方法联接四个以上的不同网络.
2. 分组合作,实现用三台Linux计算机做路由器,通过添加静态路由的方法联接四个以上的不同网络.
3. 分组合作,实现用两台Linux计算机做路由器,通过动态路由(建议使用OSPF协议)的方法联接多个不同的网络.
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/39518/showart_1334298.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP