- 浏览: 271059 次
- 性别:
- 来自: 北京
最新评论
-
zwb5370:
为什么 Java 的 cron 规则的 周规则和 linux ...
Quartz的cron表达式 -
zjhdreams:
没说说明L W C,L C #,每个字符的含义呢?补充
Quartz的cron表达式 -
qq359907964:
呵呵,没问题了,能正常运行..
Quartz的cron表达式 -
dongcb678:
biaoming 写道看了一下文档,compass已经提供很方 ...
Compass怎样在指定alias中搜索 -
anttribe:
请问博主,源呢?你是使用哪个源? 怎么还有内核的源?我杂没找到 ...
Debian升级内核
RIP和OSPF都是内部网关协议(IGP),BGP属于外部网关协议(EGP)。BGP广泛用于Internet以连接 ISP,并将企业与ISP互连。
当BGP的影响被完全了解,并且至少下列情况之一存在时,在AS中使用BGP才是最恰当的:
1 AS允许数据包穿过它到达其它自治系统(例如,某个服务提供商)。
2 AS有到其它自治系统的多条连接。
3 必须对进入和离开AS的数据流进行控制。
对于互连的自治系统来说,BGP并不总是恰当的解决方案,如果有如下情况中的一个或多个时,不要使 用BGP:
1 只有到Internet或另一AS的单一连接。
2 无需考虑路由策略或路由选择。
3 路由器缺乏经常性的BGP更新的内存或处理器。
4 对路由过滤和BGP路径选择过程的了解十分有限。
5 在自治系统间的带宽较低。
在这些情况下,应该使用静态路由。
Zebra支持BGP-4和BGP-4+,下面实验只是演示BGP的基本命令,以及debug的一些信息。一个比较复杂 的用Zebra做BGP实验见http://www.unixreview.com/print/documentID=15977,有条件可以做一下。
Zebra使用bgpd程序实现BGP路由功能,但bgpd需要从zebra程序获得接口信息,所以zebra程序必须在 bgpd程序之前运行。
初始化第一台机器:
shell_1> cd /usr/local/etc
shell_1> cp zebra.conf.sample zebra.conf
shell_1> cp bgpd.conf.sample bgpd.conf
shell_1> zebra -d
还有一个bgpd.conf.sample2配置样例是用于IPv6的。
进入zebra设置IP
shell_1> telnet localhost 2601
Password:
Router> en
Password:
Router# conf t
Router(config)# hostname r1
r1(config)# int eth0
r1(config-if)# ip address 192.168.5.121/24
r1(config-if)# ctrl+z
r1# copy run start
进入第一台机器的bgp设置
shell_1> bgpd -d
启动bgpd,我们看到TCP端口179已经打开。两台BGP路由器相互间建立一条TCP连接,交换消息以打开 和确认连接参数。这两台路由器被称为对等路由器,或者邻居。
shell_1> telnet localhost 2605
Password:
bgpd> en
bgpd# conf t
bgpd(config)# hostname r1_bgpd
r1_bgpd(config)# router bgp 7675
配置样例里已经指定了AS为7675,我们懒的改就拿来用。AS是一个16bit的数字,其范围从1到 65535。RFC 1930给出了AS编号使用指南。从64512到65535的AS编号范围是留作私用的,类似私有IP。
r1_bgpd(config-router)# network 192.168.5.0/24
r1_bgpd(config-router)# neighbor 192.168.5.121 remote-as 7676
查看bgp信息:
r1_bgpd# sh ip bgp
BGP table version is 0, local router ID is 192.168.5.123
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.5.0 0.0.0.0 32768 i
Total number of prefixes 1
把log记录到文件:
r1_bgpd# conf t
r1_bgpd(config)# log file /usr/local/etc/bgpd.log
打开debug选项:
r1_bgpd(config)# exit
r1_bgpd debug bgp events
r1_bgpd debug bgp keepalives
r1_bgpd debug bgp updates
然后在shell下用tail查看log记录:
shell_1> tail -f /usr/local/etc/bgpd.log
--------------------------------8<---------------------------------------
2002/04/29 19:13:08 BGP: 192.168.5.121 [Event] Connect start to 192.168.5.121 fd 10
2002/04/29 19:13:11 BGP: 192.168.5.121 [Event] Connect failed (Operation now in progress)
--------------------------------8<---------------------------------------
r1不能连接邻居192.168.5.121。
第二台机器的设置
前面的初始化和第一台一样,不过这里名字设成r2便于辨认,IP设成了192.168.5.123/24。
进入第二台机器的bgp设置
shell_2> bgpd -d
shell_2> telnet localhost 2605
Password:
bgpd> en
bgpd# conf t
bgpd(config)# hostname r2_bgpd
AS要设成不一样,所以修改一下:
r2_bgpd(config)# no router bgp 7675
r2_bgpd(config)# router bgp 7676
r2_bgpd(config-router)# network 192.168.5.0/24
r2_bgpd(config-router)# neighbor 192.168.5.123 remote-as 7675
这时第一台机器的log出现如下信息:
--------------------------------8<---------------------------------------
2002/04/29 19:16:35 BGP: [Event] BGP connection from host 192.168.5.121
2002/04/29 19:16:35 BGP: [Event] Make dummy peer structure until read Open packet
2002/04/29 19:16:35 BGP: 192.168.5.121 [Event] Transfer temporary BGP peer to existing one
2002/04/29 19:16:35 BGP: 192.168.5.121 [Event] Accepting BGP peer delete
2002/04/29 19:16:35 BGP: 192.168.5.121 send UPDATE 192.168.5.0/24 nexthop 192.168.5.123, origin i, path
2002/04/29 19:16:35 BGP: 192.168.5.121 rcvd UPDATE w/ attr: nexthop 192.168.5.121, origin i, path 7676
2002/04/29 19:16:35 BGP: 192.168.5.121 rcvd 192.168.5.0/24
--------------------------------8<---------------------------------------
两台bgp已经互连了。再看一下第一台机器的bgp信息:
r1_bgpd# sh ip bgp
BGP table version is 0, local router ID is 192.168.5.123
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 192.168.5.0 192.168.5.121 0 7676 i
*> 0.0.0.0 32768 i
Total number of prefixes 1
r1_bgpd# sh ip bgp neighbors
BGP neighbor is 192.168.5.121, remote AS 7676, local AS 7675, external link
BGP version 4, remote router ID 192.168.5.121
BGP state = Established, up for 00:01:13
Last read 00:00:13, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
Address family IPv4 Unicast: advertised and received
Received 98 messages, 0 notifications, 0 in queue
Sent 103 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 0 seconds
For address family: IPv4 Unicast
Community attribute sent to this neighbor (both)
1 accepted prefixes
Connections established 2; dropped 1
Local host: 192.168.5.123, Local port: 179
Foreign host: 192.168.5.121, Foreign port: 1029
Nexthop: 192.168.5.123
Read thread: on Write thread: off
Zebra还支持很多BGP的特性,请参考GNU Zebra Manual,有条件的可以做一下那些实验。
当BGP的影响被完全了解,并且至少下列情况之一存在时,在AS中使用BGP才是最恰当的:
1 AS允许数据包穿过它到达其它自治系统(例如,某个服务提供商)。
2 AS有到其它自治系统的多条连接。
3 必须对进入和离开AS的数据流进行控制。
对于互连的自治系统来说,BGP并不总是恰当的解决方案,如果有如下情况中的一个或多个时,不要使 用BGP:
1 只有到Internet或另一AS的单一连接。
2 无需考虑路由策略或路由选择。
3 路由器缺乏经常性的BGP更新的内存或处理器。
4 对路由过滤和BGP路径选择过程的了解十分有限。
5 在自治系统间的带宽较低。
在这些情况下,应该使用静态路由。
Zebra支持BGP-4和BGP-4+,下面实验只是演示BGP的基本命令,以及debug的一些信息。一个比较复杂 的用Zebra做BGP实验见http://www.unixreview.com/print/documentID=15977,有条件可以做一下。
Zebra使用bgpd程序实现BGP路由功能,但bgpd需要从zebra程序获得接口信息,所以zebra程序必须在 bgpd程序之前运行。
初始化第一台机器:
shell_1> cd /usr/local/etc
shell_1> cp zebra.conf.sample zebra.conf
shell_1> cp bgpd.conf.sample bgpd.conf
shell_1> zebra -d
还有一个bgpd.conf.sample2配置样例是用于IPv6的。
进入zebra设置IP
shell_1> telnet localhost 2601
Password:
Router> en
Password:
Router# conf t
Router(config)# hostname r1
r1(config)# int eth0
r1(config-if)# ip address 192.168.5.121/24
r1(config-if)# ctrl+z
r1# copy run start
进入第一台机器的bgp设置
shell_1> bgpd -d
启动bgpd,我们看到TCP端口179已经打开。两台BGP路由器相互间建立一条TCP连接,交换消息以打开 和确认连接参数。这两台路由器被称为对等路由器,或者邻居。
shell_1> telnet localhost 2605
Password:
bgpd> en
bgpd# conf t
bgpd(config)# hostname r1_bgpd
r1_bgpd(config)# router bgp 7675
配置样例里已经指定了AS为7675,我们懒的改就拿来用。AS是一个16bit的数字,其范围从1到 65535。RFC 1930给出了AS编号使用指南。从64512到65535的AS编号范围是留作私用的,类似私有IP。
r1_bgpd(config-router)# network 192.168.5.0/24
r1_bgpd(config-router)# neighbor 192.168.5.121 remote-as 7676
查看bgp信息:
r1_bgpd# sh ip bgp
BGP table version is 0, local router ID is 192.168.5.123
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.5.0 0.0.0.0 32768 i
Total number of prefixes 1
把log记录到文件:
r1_bgpd# conf t
r1_bgpd(config)# log file /usr/local/etc/bgpd.log
打开debug选项:
r1_bgpd(config)# exit
r1_bgpd debug bgp events
r1_bgpd debug bgp keepalives
r1_bgpd debug bgp updates
然后在shell下用tail查看log记录:
shell_1> tail -f /usr/local/etc/bgpd.log
--------------------------------8<---------------------------------------
2002/04/29 19:13:08 BGP: 192.168.5.121 [Event] Connect start to 192.168.5.121 fd 10
2002/04/29 19:13:11 BGP: 192.168.5.121 [Event] Connect failed (Operation now in progress)
--------------------------------8<---------------------------------------
r1不能连接邻居192.168.5.121。
第二台机器的设置
前面的初始化和第一台一样,不过这里名字设成r2便于辨认,IP设成了192.168.5.123/24。
进入第二台机器的bgp设置
shell_2> bgpd -d
shell_2> telnet localhost 2605
Password:
bgpd> en
bgpd# conf t
bgpd(config)# hostname r2_bgpd
AS要设成不一样,所以修改一下:
r2_bgpd(config)# no router bgp 7675
r2_bgpd(config)# router bgp 7676
r2_bgpd(config-router)# network 192.168.5.0/24
r2_bgpd(config-router)# neighbor 192.168.5.123 remote-as 7675
这时第一台机器的log出现如下信息:
--------------------------------8<---------------------------------------
2002/04/29 19:16:35 BGP: [Event] BGP connection from host 192.168.5.121
2002/04/29 19:16:35 BGP: [Event] Make dummy peer structure until read Open packet
2002/04/29 19:16:35 BGP: 192.168.5.121 [Event] Transfer temporary BGP peer to existing one
2002/04/29 19:16:35 BGP: 192.168.5.121 [Event] Accepting BGP peer delete
2002/04/29 19:16:35 BGP: 192.168.5.121 send UPDATE 192.168.5.0/24 nexthop 192.168.5.123, origin i, path
2002/04/29 19:16:35 BGP: 192.168.5.121 rcvd UPDATE w/ attr: nexthop 192.168.5.121, origin i, path 7676
2002/04/29 19:16:35 BGP: 192.168.5.121 rcvd 192.168.5.0/24
--------------------------------8<---------------------------------------
两台bgp已经互连了。再看一下第一台机器的bgp信息:
r1_bgpd# sh ip bgp
BGP table version is 0, local router ID is 192.168.5.123
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 192.168.5.0 192.168.5.121 0 7676 i
*> 0.0.0.0 32768 i
Total number of prefixes 1
r1_bgpd# sh ip bgp neighbors
BGP neighbor is 192.168.5.121, remote AS 7676, local AS 7675, external link
BGP version 4, remote router ID 192.168.5.121
BGP state = Established, up for 00:01:13
Last read 00:00:13, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
Address family IPv4 Unicast: advertised and received
Received 98 messages, 0 notifications, 0 in queue
Sent 103 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 0 seconds
For address family: IPv4 Unicast
Community attribute sent to this neighbor (both)
1 accepted prefixes
Connections established 2; dropped 1
Local host: 192.168.5.123, Local port: 179
Foreign host: 192.168.5.121, Foreign port: 1029
Nexthop: 192.168.5.123
Read thread: on Write thread: off
Zebra还支持很多BGP的特性,请参考GNU Zebra Manual,有条件的可以做一下那些实验。
发表评论
-
proftpd禁用反向域名解析
2008-01-17 16:35 1537# 禁用反向域名解析 UseReverseDNS off -
解决libstdc++.so.5问题
2008-01-12 01:22 7980error while loading shared libr ... -
基于Linux实现多个ADSL捆绑
2007-04-29 21:20 3065现在很多公司,为了节约成本,往往会放弃E1 等等这样高价的 ... -
修改ubuntu的启动grub画面,模仿SUSE的效果
2007-04-27 11:58 4819现在ubuntu系统是越来越受大众用户的欢迎,易用性大大的提高 ... -
Ubuntu下连接蓝牙手机和蓝牙鼠标
2007-04-27 11:57 7323具体配置只要下载几个软件就可以了。用新立得安装如下几个软件。 ... -
Apache服务器二级域名的完美实现
2006-12-27 12:17 3343首先,你的拥有一个有泛域名解析的顶级域名,例如: domain ... -
用iptables实现NAT
2006-12-24 18:39 1942摘要 本文是“用iptales实现包过虑型防火墙”的姊妹篇 ... -
用iptales实现包过虑型防火墙(二)
2006-12-24 18:30 1515http://LinuxAid.com.cn bye2000 ... -
(转贴) 用iptales实现包过虑型防火墙(一)
2006-12-24 17:42 1604用iptales实现包过虑型防 ... -
iptables+squid(三)
2006-12-21 10:19 3669Linux 2.4 NAT HOWTO 简体中文版 Rust ... -
iptables+squid (二)
2006-12-21 10:18 3358此文档描述在Linux2.4 内核中,如何使用iptable ... -
iptables+squid (一)
2006-12-21 10:16 2609Linux 目前已经逐步成为网络的同义词。它可以在办公环境或 ... -
用 Linux 打造路由器
2006-12-19 19:03 1988Linux作为一种新近崛起的操作系统,由于其性 ... -
用Zebra做OSPF实验
2006-12-19 18:53 4528OSPF(开放最短路径优先)路由协议是一项链路状态型技术, ... -
用Zebra做简单的RIP实验
2006-12-19 18:32 3146RIP是应用较早、使用较 ... -
Zebra配置(一)
2006-12-19 18:28 2740Zebra 是一个开源的 TCP/IP 路由软件,同 Cisc ... -
linux Apache 2.2 + PHP 5.1.2 + MYSQL 5.0.19+svn
2006-12-09 18:46 5828引用至http://blog.yening.cn/2006/ ... -
Linux下的软件包安装方法[详](转)
2006-11-29 09:22 77971、已经编译打包好的xxx.rpm 如果你的Linux系统带 ... -
Debian升级内核
2006-11-27 22:23 9650Debian是我用Linux当中升级内核最简单的,完全不需要编 ...
相关推荐
4. **模拟和测试**:利用Zebra,可以构建虚拟环境,模拟各种网络拓扑和路由场景,进行实验和测试。 在"zebra-0.95a"这个压缩包中,包含了Zebra的特定版本,这为我们提供了一个特定时间点的软件快照,可以用来研究...
Zebra 是一款功能强大的 TCP/IP 路由软件,它支持多种路由协议,包括 BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2 和 RIPng。这一开源软件遵循 GNU 通用公共许可证发布,可以在 Linux 以及其他的 Unix 变体操作...
Zebra是一款开源的路由软件,它提供了一套完整的路由协议栈,包括RIP、OSPF、BGP等,广泛应用于网络管理和研究领域。Zebra因其高度模块化的设计、强大的功能以及友好的用户界面而受到欢迎。本文档旨在帮助读者了解...
Zebra是一款强大的TCP/IP路由软件,支持多种路由协议,如BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng,适用于Linux和其他Unix变体系统。它的出现打破了传统路由构建的局限性,尤其是对于那些受制于实验环境...
这些协议是互联网路由的基础,通过Zebra,用户可以在本地环境中进行实验,理解它们的工作原理,而无需实际的硬件设备。 在模拟路由器的过程中,Zebra提供了一个命令行接口(CLI),类似于真实的路由器配置界面。...
Zebra是日本NTT实验室开发的一个网络路由服务软件,它提供了一个实时的操作系统接口,用于管理和控制路由协议。Zebra的核心功能包括路由表的维护、路由更新的处理以及与各种路由协议(如RIP, OSPF, BGP等)的交互。...
理解Quagga和Zebra的工作原理和使用方法对于网络管理员和系统集成者来说至关重要。它们允许用户在不依赖商业路由器的情况下搭建和管理复杂的网络环境,同时提供了高度的灵活性和可定制性。通过学习和实践这些开源...
Zebra是一个TCP/IP路由软件,支持多种路由协议,包括BGP 4、BGP 4+、OSPF v2、OSPF v3、RIP v1、RIP v2和RIPng。它遵循GNU的GPL标准,可以在Linux和其他Unix变体系统上运行。Zebra是最先进的路由软件之一,最新版本...
- 查看配置文件:进入`/etc/services`,编辑`/etc/quagga/daemons`文件,开启必要的服务,如zebra、bgpd、ospfd和ripd。 - 复制示例配置文件:从`/usr/share/doc/quagga/examples`目录中将`.conf.sample`文件复制...
本实验的目的是使用 Quagga 在 Ubuntu 16 下进行网络路由仿真,熟悉 Quagga 的安装、配置和使用。同时,通过实验,我们可以了解路由协议的工作原理和 Quagga 的配置方法。 实验环境 实验环境包括: * 软件:Linux...
RIP使用周期性更新来传播路由信息,存在慢收敛和环路问题,但在教育和实验环境中仍然常见。 2. **OSPF(Open Shortest Path First)**:OSPF是IETF制定的链路状态路由协议,适用于大型网络。它使用Dijkstra算法计算...
6. 在实验中,学生可以进行各种网络实验,如路由协议的学习(如OSPF、BGP)、网络故障排查、网络安全测试等,体验接近真实的网络环境。 这种基于软路由系统的实验教学方法不仅提供了高度仿真的网络环境,还鼓励学生...
Gobgp是OSRG(Open Source Routing Group)组织开发的一个强大的、灵活的BGP实现,它旨在为研究、实验和生产环境提供服务。这个开源项目允许开发者和网络工程师深入了解BGP的工作原理,并对其进行定制,以满足特定...
同时,由于Quagga是用C语言编写的,因此它在资源效率方面表现出色,适用于内存和计算能力有限的环境。 对于希望深入学习和理解网络路由协议的IT从业者来说,Quagga是一个理想的工具。通过阅读和分析源代码,可以...
4. **BGP**:Border Gateway Protocol(边界网关协议)是互联网上广泛使用的自治系统之间的路由协议,用于在不同的AS之间交换路由信息,是互联网的重要组成部分。 Quagga的源码特性使其适合于开发者和网络管理员...