- 浏览: 269719 次
- 性别:
- 来自: 北京
最新评论
-
zwb5370:
为什么 Java 的 cron 规则的 周规则和 linux ...
Quartz的cron表达式 -
zjhdreams:
没说说明L W C,L C #,每个字符的含义呢?补充
Quartz的cron表达式 -
qq359907964:
呵呵,没问题了,能正常运行..
Quartz的cron表达式 -
dongcb678:
biaoming 写道看了一下文档,compass已经提供很方 ...
Compass怎样在指定alias中搜索 -
anttribe:
请问博主,源呢?你是使用哪个源? 怎么还有内核的源?我杂没找到 ...
Debian升级内核
OSPF(开放最短路径优先)路由协议是一项链路状态型技术,是目前IGP中应用最广、性能最优的一个 协议,解决了RIP不能解决的大型、可扩展的网络需求而写的,适用于大规模的网络。
Zebra支持OSPFv2和OSPFv3(用于IPv6的OSPF,CISCO还未对其封装),由于条件所限,下面的OSPF实 验同样是在两台单网卡的RedHat7.2下做的。
Zebra使用ospfd程序实现OSPF路由功能,但ospfd需要从zebra程序获得接口信息,所以zebra程序必须在 ospfd程序之前运行。ospfd不支持多个OSPF进程,我们不能指定OSPF进程号。
初始化第一台机器:
shell_1> cd /usr/local/etc
shell_1> cp zebra.conf.sample zebra.conf
shell_1> cp ospfd.conf.sample ospfd.conf
shell_1> zebra -d
进入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
进入第一台机器的ospf设置
shell_1> ospfd -d
shell_1> telnet localhost 2604
Password:
ospfd> en
ospfd# conf t
ospfd(config)# hostname r1_ospfd !改个名字好辨认
r1_ospfd(config)# router ospf !启动ospf
r1_ospfd(config-router)# ospf router-id 192.168.5.121 !设置router-id
r1_ospfd(config-router)# network 192.168.5.0/24 area 0
!最关键的,来标识路由器上哪些IP网络号是OSPF的一部分,对于每个网络,我们必须标识该网络所属 的区域。由于我们只有两台机器,当然只有一个网络,所以只需执行一个network命令就够了。
对于我们的小网络,ospf就算配好了,下面来检验一下:
r1_ospfd(config-router)# ctrl+z
r1_ospfd# sh ip ospf route
============ OSPF network routing table ============
N 192.168.5.0/24 [10] area: 0.0.0.0
directly attached to eth0
============ OSPF router routing table =============
============ OSPF external routing table ===========
r1_ospfd# sh ip ospf database
OSPF Router with ID (192.168.5.121)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
192.168.5.121 192.168.5.121 126 0x80000002 0x8584 1
r1_ospfd# sh ip ospf int eth0
eth0 is up, line protocol is up
Internet Address 192.168.5.121/24, Area 0.0.0.0
Router ID 192.168.5.121, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.5.121, Interface Address 192.168.5.121
No backup designated router on this network
Timer intarvals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:07
Neighbor Count is 0, Adjacent neighbor count is 0
由于网络里没有其它的路由器,r1就把自己选为DR(指定路由器)了。Zebra对log处理可能有些问题,使 用log stdout不能显示各种debug信息,所以只能记录到文件,在shell下用tail命令查看。而且debug命令和 实际路由器也有不同。
r1_ospfd# debug ospf event
r1_ospfd(config)# log file /usr/local/etc/ospfd.log
然后我们在shell下查看debug信息
shell_1> tail -f /usr/local/etc/ospfd.log
--------------------------------8<---------------------------------------
2002/04/28 14:24:27 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:37 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:47 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:57 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:25:07 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
--------------------------------8<---------------------------------------
我们错过了最开始的信息,看到路由器每隔10秒发送一个hello数据包。hello数据包通过多目组播地址 224.0.0.5被发送出去,如果我们打开debug ospf packet all就能很清楚的看到。
第二台机器的设置
前面的初始化和第一台一样,不过这里名字设成r2便于辨认,IP设成了192.168.5.123/24。
进入第二台机器的ospf设置
shell_2> ospfd -d
shell_2> telnet localhost 2604
Password:
ospfd> en
ospfd# conf t
ospfd(config)# hostname r2_ospfd
r2_ospfd(config)# router ospf
r2_ospfd(config-router)# ospf router-id 192.168.5.123
r2_ospfd(config-router)# network 192.168.5.0/24 area 0
执行完network命令,我们看到第一台机器的tail -f /usr/local/etc/ospfd.log输出下面的信息:
--------------------------------8<---------------------------------------
2002/04/28 14:25:51 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 14:25:51 OSPF: NSM[eth0:192.168.5.121:0.0.0.0]: start
2002/04/28 14:25:52 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:25:52 OSPF: couldn't find any VL to associate the packet with
2002/04/28 14:25:52 OSPF: DR-Election[1st]: Backup 192.168.5.123
2002/04/28 14:25:52 OSPF: DR-Election[1st]: DR 192.168.5.121
2002/04/28 14:25:52 OSPF: Packet[DD]: Negotiation done (Slave).
--------------------------------8<---------------------------------------
r1收到r2(192.168.5.123)发过来的hello数据包,交换信息后选举DR,由于本身192.168.5.121是DR了,所以 只选举了BDR就好了。这时在r1上就能看到r2了。
r1_ospfd# sh ip ospf neig
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
192.168.5.123 1 Full/Backup 00:00:37 192.168.5.123 eth0:192.168.5.121 0 0 0
检验其它信息
r1_ospfd# sh ip ospf database
OSPF Router with ID (192.168.5.121)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
192.168.5.121 192.168.5.121 1259 0x80000008 0x534e 1
192.168.5.123 192.168.5.123 1265 0x80000006 0x534a 1
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
192.168.5.123 192.168.5.123 1265 0x80000001 0x5a5a
r1_ospfd# sh ip ospf int eth0
eth0 is up, line protocol is up
Internet Address 192.168.5.121/24, Area 0.0.0.0
Router ID 192.168.5.121, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.5.121, Interface Address 192.168.5.121
Backup Designated Router (ID) 192.168.5.123, Interface Address 192.168.5.123
Timer intarvals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:01
Neighbor Count is 1, Adjacent neighbor count is 1
和前面的输出信息相比,发生了很多变化,两台路由器已经相互识别了。OSPF不象RIP一样,每隔30秒 给所有的邻居广播一次完整的路由表,而是通过IP多目组播地址224.0.0.5每隔10秒发送一个很小的hello 数据包来维护邻居关系,当链路发生变化的时候,才重新计算。
拔掉两台机器连接的网线,看ospfd.log的记录:
--------------------------------8<---------------------------------------
2002/04/28 16:25:53 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:25:57 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 16:26:03 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:13 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:23 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:33 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): Start
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): looked through areas
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_act_attached: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_act_attached: 1
2002/04/28 16:26:37 OSPF: nsm_change_status(): scheduling new router-LSA origination
2002/04/28 16:26:37 OSPF: DR-Election[1nd]: Backup 0.0.0.0
2002/04/28 16:26:37 OSPF: DR-Election[1nd]: DR 192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): Start
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): looked through areas
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_act_attached: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_act_attached: 1
2002/04/28 16:26:37 OSPF: Timer[router-LSA]: (router-LSA Refresh expire)
2002/04/28 16:26:37 OSPF: counting fully adjacent virtual neighbors in area 0.0.0.0
2002/04/28 16:26:37 OSPF: there are 0 of them
2002/04/28 16:26:37 OSPF: SPF: calculation timer scheduled
2002/04/28 16:26:37 OSPF: SPF: calculation timer delay = 5
2002/04/28 16:26:37 OSPF: ospf_flood_through_interface(): considering int eth0:192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_flood_through_interface(): considering nbr 192.168.5.121
2002/04/28 16:26:42 OSPF: SPF: Timer (SPF calculation expire)
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: Start
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: running Dijkstra for area 0.0.0.0
2002/04/28 16:26:42 OSPF: SPF Result: 0 [R] 192.168.5.121
2002/04/28 16:26:42 OSPF: ========== OSPF routing table ==========
2002/04/28 16:26:42 OSPF: ========================================
2002/04/28 16:26:42 OSPF: ospf_process_stub():processing stubs for area 0.0.0.0
2002/04/28 16:26:42 OSPF: ospf_process_stub():processing router LSA, id: 192.168.5.121
2002/04/28 16:26:42 OSPF: ospf_process_stub(): we have 1 links to process
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): Start
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): processing route to 192.168.5.0/24
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): calculated cost is 0 + 10 = 10
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): installing new route
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): this network is on this router
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): the interface is eth0:192.168.5.121
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): Stop
2002/04/28 16:26:42 OSPF: children of V:
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: Stop
2002/04/28 16:26:42 OSPF: ospf_ia_routing():start
2002/04/28 16:26:42 OSPF: ospf_ia_routing():not ABR, considering all areas
2002/04/28 16:26:42 OSPF: Pruning unreachable networks
2002/04/28 16:26:42 OSPF: Pruning unreachable routers
2002/04/28 16:26:42 OSPF: Route: Router Routing Table free
2002/04/28 16:26:42 OSPF: SPF: calculation complete
--------------------------------8<---------------------------------------
我们看到r1生成一个LSA包,通知其它路由器,由于网络里只有自己了,又选自己为DR。r2也是一样。 我们再插上网线,查看ospfd.log:
--------------------------------8<---------------------------------------
2002/04/28 16:52:08 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 16:52:08 OSPF: NSM[eth0:192.168.5.121:0.0.0.0]: start
2002/04/28 16:52:08 OSPF: DR-Election[1st]: Backup 192.168.5.123
2002/04/28 16:52:08 OSPF: DR-Election[1st]: DR 192.168.5.121
2002/04/28 16:52:08 OSPF: DR-Election[1st]: Backup 0.0.0.0
2002/04/28 16:52:08 OSPF: DR-Election[1st]: DR 192.168.5.123
2002/04/28 16:52:08 OSPF: DR-Election[2nd]: Backup 192.168.5.121
2002/04/28 16:52:08 OSPF: DR-Election[2nd]: DR 192.168.5.123
--------------------------------8<---------------------------------------
由于拔了网线,r1和r2都把自己选为DR,一个网络只能有一个DR,所以恢复连接后它们重新进行了DR选 举,由于192.168.5.123的router id大,所以它被选为DR。
保存一下配置
r1_ospfd# copy run start
Configuration saved to /usr/local/etc/ospfd.conf
r2_ospfd# copy run start
Configuration saved to /usr/local/etc/ospfd.conf
以上只是演示了最简单的OSPF的配置,而OSPF在大型网络才广泛的使用,配置也复杂多很多。即使是 Zebra,也还可用做复杂的多的OSPF实验。
Zebra支持OSPFv2和OSPFv3(用于IPv6的OSPF,CISCO还未对其封装),由于条件所限,下面的OSPF实 验同样是在两台单网卡的RedHat7.2下做的。
Zebra使用ospfd程序实现OSPF路由功能,但ospfd需要从zebra程序获得接口信息,所以zebra程序必须在 ospfd程序之前运行。ospfd不支持多个OSPF进程,我们不能指定OSPF进程号。
初始化第一台机器:
shell_1> cd /usr/local/etc
shell_1> cp zebra.conf.sample zebra.conf
shell_1> cp ospfd.conf.sample ospfd.conf
shell_1> zebra -d
进入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
进入第一台机器的ospf设置
shell_1> ospfd -d
shell_1> telnet localhost 2604
Password:
ospfd> en
ospfd# conf t
ospfd(config)# hostname r1_ospfd !改个名字好辨认
r1_ospfd(config)# router ospf !启动ospf
r1_ospfd(config-router)# ospf router-id 192.168.5.121 !设置router-id
r1_ospfd(config-router)# network 192.168.5.0/24 area 0
!最关键的,来标识路由器上哪些IP网络号是OSPF的一部分,对于每个网络,我们必须标识该网络所属 的区域。由于我们只有两台机器,当然只有一个网络,所以只需执行一个network命令就够了。
对于我们的小网络,ospf就算配好了,下面来检验一下:
r1_ospfd(config-router)# ctrl+z
r1_ospfd# sh ip ospf route
============ OSPF network routing table ============
N 192.168.5.0/24 [10] area: 0.0.0.0
directly attached to eth0
============ OSPF router routing table =============
============ OSPF external routing table ===========
r1_ospfd# sh ip ospf database
OSPF Router with ID (192.168.5.121)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
192.168.5.121 192.168.5.121 126 0x80000002 0x8584 1
r1_ospfd# sh ip ospf int eth0
eth0 is up, line protocol is up
Internet Address 192.168.5.121/24, Area 0.0.0.0
Router ID 192.168.5.121, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.5.121, Interface Address 192.168.5.121
No backup designated router on this network
Timer intarvals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:07
Neighbor Count is 0, Adjacent neighbor count is 0
由于网络里没有其它的路由器,r1就把自己选为DR(指定路由器)了。Zebra对log处理可能有些问题,使 用log stdout不能显示各种debug信息,所以只能记录到文件,在shell下用tail命令查看。而且debug命令和 实际路由器也有不同。
r1_ospfd# debug ospf event
r1_ospfd(config)# log file /usr/local/etc/ospfd.log
然后我们在shell下查看debug信息
shell_1> tail -f /usr/local/etc/ospfd.log
--------------------------------8<---------------------------------------
2002/04/28 14:24:27 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:37 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:47 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:24:57 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:25:07 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
--------------------------------8<---------------------------------------
我们错过了最开始的信息,看到路由器每隔10秒发送一个hello数据包。hello数据包通过多目组播地址 224.0.0.5被发送出去,如果我们打开debug ospf packet all就能很清楚的看到。
第二台机器的设置
前面的初始化和第一台一样,不过这里名字设成r2便于辨认,IP设成了192.168.5.123/24。
进入第二台机器的ospf设置
shell_2> ospfd -d
shell_2> telnet localhost 2604
Password:
ospfd> en
ospfd# conf t
ospfd(config)# hostname r2_ospfd
r2_ospfd(config)# router ospf
r2_ospfd(config-router)# ospf router-id 192.168.5.123
r2_ospfd(config-router)# network 192.168.5.0/24 area 0
执行完network命令,我们看到第一台机器的tail -f /usr/local/etc/ospfd.log输出下面的信息:
--------------------------------8<---------------------------------------
2002/04/28 14:25:51 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 14:25:51 OSPF: NSM[eth0:192.168.5.121:0.0.0.0]: start
2002/04/28 14:25:52 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 14:25:52 OSPF: couldn't find any VL to associate the packet with
2002/04/28 14:25:52 OSPF: DR-Election[1st]: Backup 192.168.5.123
2002/04/28 14:25:52 OSPF: DR-Election[1st]: DR 192.168.5.121
2002/04/28 14:25:52 OSPF: Packet[DD]: Negotiation done (Slave).
--------------------------------8<---------------------------------------
r1收到r2(192.168.5.123)发过来的hello数据包,交换信息后选举DR,由于本身192.168.5.121是DR了,所以 只选举了BDR就好了。这时在r1上就能看到r2了。
r1_ospfd# sh ip ospf neig
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
192.168.5.123 1 Full/Backup 00:00:37 192.168.5.123 eth0:192.168.5.121 0 0 0
检验其它信息
r1_ospfd# sh ip ospf database
OSPF Router with ID (192.168.5.121)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
192.168.5.121 192.168.5.121 1259 0x80000008 0x534e 1
192.168.5.123 192.168.5.123 1265 0x80000006 0x534a 1
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
192.168.5.123 192.168.5.123 1265 0x80000001 0x5a5a
r1_ospfd# sh ip ospf int eth0
eth0 is up, line protocol is up
Internet Address 192.168.5.121/24, Area 0.0.0.0
Router ID 192.168.5.121, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.5.121, Interface Address 192.168.5.121
Backup Designated Router (ID) 192.168.5.123, Interface Address 192.168.5.123
Timer intarvals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:01
Neighbor Count is 1, Adjacent neighbor count is 1
和前面的输出信息相比,发生了很多变化,两台路由器已经相互识别了。OSPF不象RIP一样,每隔30秒 给所有的邻居广播一次完整的路由表,而是通过IP多目组播地址224.0.0.5每隔10秒发送一个很小的hello 数据包来维护邻居关系,当链路发生变化的时候,才重新计算。
拔掉两台机器连接的网线,看ospfd.log的记录:
--------------------------------8<---------------------------------------
2002/04/28 16:25:53 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:25:57 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 16:26:03 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:13 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:23 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:33 OSPF: make_hello: options: 2, int: eth0:192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): Start
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): looked through areas
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_act_attached: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_act_attached: 1
2002/04/28 16:26:37 OSPF: nsm_change_status(): scheduling new router-LSA origination
2002/04/28 16:26:37 OSPF: DR-Election[1nd]: Backup 0.0.0.0
2002/04/28 16:26:37 OSPF: DR-Election[1nd]: DR 192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): Start
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): looked through areas
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): bb_act_attached: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_configured: 1
2002/04/28 16:26:37 OSPF: ospf_check_abr_status(): areas_act_attached: 1
2002/04/28 16:26:37 OSPF: Timer[router-LSA]: (router-LSA Refresh expire)
2002/04/28 16:26:37 OSPF: counting fully adjacent virtual neighbors in area 0.0.0.0
2002/04/28 16:26:37 OSPF: there are 0 of them
2002/04/28 16:26:37 OSPF: SPF: calculation timer scheduled
2002/04/28 16:26:37 OSPF: SPF: calculation timer delay = 5
2002/04/28 16:26:37 OSPF: ospf_flood_through_interface(): considering int eth0:192.168.5.121
2002/04/28 16:26:37 OSPF: ospf_flood_through_interface(): considering nbr 192.168.5.121
2002/04/28 16:26:42 OSPF: SPF: Timer (SPF calculation expire)
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: Start
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: running Dijkstra for area 0.0.0.0
2002/04/28 16:26:42 OSPF: SPF Result: 0 [R] 192.168.5.121
2002/04/28 16:26:42 OSPF: ========== OSPF routing table ==========
2002/04/28 16:26:42 OSPF: ========================================
2002/04/28 16:26:42 OSPF: ospf_process_stub():processing stubs for area 0.0.0.0
2002/04/28 16:26:42 OSPF: ospf_process_stub():processing router LSA, id: 192.168.5.121
2002/04/28 16:26:42 OSPF: ospf_process_stub(): we have 1 links to process
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): Start
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): processing route to 192.168.5.0/24
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): calculated cost is 0 + 10 = 10
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): installing new route
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): this network is on this router
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): the interface is eth0:192.168.5.121
2002/04/28 16:26:42 OSPF: ospf_intra_add_stub(): Stop
2002/04/28 16:26:42 OSPF: children of V:
2002/04/28 16:26:42 OSPF: ospf_spf_calculate: Stop
2002/04/28 16:26:42 OSPF: ospf_ia_routing():start
2002/04/28 16:26:42 OSPF: ospf_ia_routing():not ABR, considering all areas
2002/04/28 16:26:42 OSPF: Pruning unreachable networks
2002/04/28 16:26:42 OSPF: Pruning unreachable routers
2002/04/28 16:26:42 OSPF: Route: Router Routing Table free
2002/04/28 16:26:42 OSPF: SPF: calculation complete
--------------------------------8<---------------------------------------
我们看到r1生成一个LSA包,通知其它路由器,由于网络里只有自己了,又选自己为DR。r2也是一样。 我们再插上网线,查看ospfd.log:
--------------------------------8<---------------------------------------
2002/04/28 16:52:08 OSPF: Packet 192.168.5.123 [Hello:RECV]: Options *|*|-|-|-|-|E|*
2002/04/28 16:52:08 OSPF: NSM[eth0:192.168.5.121:0.0.0.0]: start
2002/04/28 16:52:08 OSPF: DR-Election[1st]: Backup 192.168.5.123
2002/04/28 16:52:08 OSPF: DR-Election[1st]: DR 192.168.5.121
2002/04/28 16:52:08 OSPF: DR-Election[1st]: Backup 0.0.0.0
2002/04/28 16:52:08 OSPF: DR-Election[1st]: DR 192.168.5.123
2002/04/28 16:52:08 OSPF: DR-Election[2nd]: Backup 192.168.5.121
2002/04/28 16:52:08 OSPF: DR-Election[2nd]: DR 192.168.5.123
--------------------------------8<---------------------------------------
由于拔了网线,r1和r2都把自己选为DR,一个网络只能有一个DR,所以恢复连接后它们重新进行了DR选 举,由于192.168.5.123的router id大,所以它被选为DR。
保存一下配置
r1_ospfd# copy run start
Configuration saved to /usr/local/etc/ospfd.conf
r2_ospfd# copy run start
Configuration saved to /usr/local/etc/ospfd.conf
以上只是演示了最简单的OSPF的配置,而OSPF在大型网络才广泛的使用,配置也复杂多很多。即使是 Zebra,也还可用做复杂的多的OSPF实验。
发表评论
-
proftpd禁用反向域名解析
2008-01-17 16:35 1513# 禁用反向域名解析 UseReverseDNS off -
解决libstdc++.so.5问题
2008-01-12 01:22 7949error while loading shared libr ... -
基于Linux实现多个ADSL捆绑
2007-04-29 21:20 3057现在很多公司,为了节约成本,往往会放弃E1 等等这样高价的 ... -
修改ubuntu的启动grub画面,模仿SUSE的效果
2007-04-27 11:58 4797现在ubuntu系统是越来越受大众用户的欢迎,易用性大大的提高 ... -
Ubuntu下连接蓝牙手机和蓝牙鼠标
2007-04-27 11:57 7300具体配置只要下载几个软件就可以了。用新立得安装如下几个软件。 ... -
Apache服务器二级域名的完美实现
2006-12-27 12:17 3336首先,你的拥有一个有泛域名解析的顶级域名,例如: domain ... -
用iptables实现NAT
2006-12-24 18:39 1922摘要 本文是“用iptales实现包过虑型防火墙”的姊妹篇 ... -
用iptales实现包过虑型防火墙(二)
2006-12-24 18:30 1487http://LinuxAid.com.cn bye2000 ... -
(转贴) 用iptales实现包过虑型防火墙(一)
2006-12-24 17:42 1579用iptales实现包过虑型防 ... -
iptables+squid(三)
2006-12-21 10:19 3639Linux 2.4 NAT HOWTO 简体中文版 Rust ... -
iptables+squid (二)
2006-12-21 10:18 3350此文档描述在Linux2.4 内核中,如何使用iptable ... -
iptables+squid (一)
2006-12-21 10:16 2574Linux 目前已经逐步成为网络的同义词。它可以在办公环境或 ... -
用 Linux 打造路由器
2006-12-19 19:03 1953Linux作为一种新近崛起的操作系统,由于其性 ... -
用Zebra做BGP实验
2006-12-19 18:54 7131RIP和OSPF都是内部网关协议(IGP),BGP属于外部 ... -
用Zebra做简单的RIP实验
2006-12-19 18:32 3127RIP是应用较早、使用较 ... -
Zebra配置(一)
2006-12-19 18:28 2730Zebra 是一个开源的 TCP/IP 路由软件,同 Cisc ... -
linux Apache 2.2 + PHP 5.1.2 + MYSQL 5.0.19+svn
2006-12-09 18:46 5816引用至http://blog.yening.cn/2006/ ... -
Linux下的软件包安装方法[详](转)
2006-11-29 09:22 77731、已经编译打包好的xxx.rpm 如果你的Linux系统带 ... -
Debian升级内核
2006-11-27 22:23 9637Debian是我用Linux当中升级内核最简单的,完全不需要编 ...
相关推荐
成功安装后,Zebra 的可执行文件将被放置在 `/usr/local/sbin` 目录下,如 bgpd、ospf6d、ospfd、ripd、ripngd 和 zebra 等。 - 配置文件示例: 安装完成后,Zebra 提供了一系列的配置文件样本,这些文件位于 `/...
Zebra是一款开源的路由软件,它提供了一套完整的路由协议栈,包括RIP、OSPF、BGP等,广泛应用于网络管理和研究领域。Zebra因其高度模块化的设计、强大的功能以及友好的用户界面而受到欢迎。本文档旨在帮助读者了解...
Zebra的使用对于小型网络尤其适用,通过模拟路由器和应用路由协议(如RIP和OSPF),可以构建实验网络,进行动态路由学习和测试。这为网络工程师提供了一个经济高效的学习和实践平台,降低了网络设备的成本,同时也...
这些协议是互联网路由的基础,通过Zebra,用户可以在本地环境中进行实验,理解它们的工作原理,而无需实际的硬件设备。 在模拟路由器的过程中,Zebra提供了一个命令行接口(CLI),类似于真实的路由器配置界面。...
Zebra是日本NTT实验室开发的一个网络路由服务软件,它提供了一个实时的操作系统接口,用于管理和控制路由协议。Zebra的核心功能包括路由表的维护、路由更新的处理以及与各种路由协议(如RIP, OSPF, BGP等)的交互。...
4. **模拟和测试**:利用Zebra,可以构建虚拟环境,模拟各种网络拓扑和路由场景,进行实验和测试。 在"zebra-0.95a"这个压缩包中,包含了Zebra的特定版本,这为我们提供了一个特定时间点的软件快照,可以用来研究...
理解Quagga和Zebra的工作原理和使用方法对于网络管理员和系统集成者来说至关重要。它们允许用户在不依赖商业路由器的情况下搭建和管理复杂的网络环境,同时提供了高度的灵活性和可定制性。通过学习和实践这些开源...
实验结果显示,在大部分情况下,Zebra软件路由器的表现与传统硬件路由器相当,甚至在某些特定场景下表现出更好的性能。这进一步证明了Zebra软件路由器在安全云环境下作为硬件路由器的有效替代方案的可行性。 #### ...
为了打破这一局面,我们可以利用Linux技术构建一个小型的实验网络,并使用路由信息协议(RIP)和开放式最短路径优先(OSPF)这两种技术来展示不同的负载均衡方案。 在我们的实验中,我们将使用三个路由器,其中一个是由...
RIP使用周期性更新来传播路由信息,存在慢收敛和环路问题,但在教育和实验环境中仍然常见。 2. **OSPF(Open Shortest Path First)**:OSPF是IETF制定的链路状态路由协议,适用于大型网络。它使用Dijkstra算法计算...
本实验的目的是使用 Quagga 在 Ubuntu 16 下进行网络路由仿真,熟悉 Quagga 的安装、配置和使用。同时,通过实验,我们可以了解路由协议的工作原理和 Quagga 的配置方法。 实验环境 实验环境包括: * 软件:Linux...
6. 在实验中,学生可以进行各种网络实验,如路由协议的学习(如OSPF、BGP)、网络故障排查、网络安全测试等,体验接近真实的网络环境。 这种基于软路由系统的实验教学方法不仅提供了高度仿真的网络环境,还鼓励学生...
【Ubuntu16下Quagga进行网络路由仿真】 ...总结来说,通过这个实验,学生不仅可以掌握Quagga的使用,还能深化对网络路由协议的理解,锻炼解决问题的能力,这对于未来在IT行业从事网络相关工作是非常有益的。
在文中提到的是使用GNU Zebra 0.95,这是一款路由软件,可用于配置和管理Linux系统的路由功能。通过Zebra,可以将Linux工作站转变为IPv6路由器,实现路由表的动态管理和更新。 【IPv6路由器的配置】 在Linux上配置...
同时,由于Quagga是用C语言编写的,因此它在资源效率方面表现出色,适用于内存和计算能力有限的环境。 对于希望深入学习和理解网络路由协议的IT从业者来说,Quagga是一个理想的工具。通过阅读和分析源代码,可以...
在本实验中,我们将使用LXD来创建和配置多个容器,每个容器代表网络中的一个节点,如路由器或虚拟主机。 实验的首要任务是配置LXD容器。通过执行`sudo lxc profile edit default`命令,我们可以编辑默认的容器配置...
- 集成了Zebra库,可以将BGP学到的路由注入到其他网络层二协议,如OSPF或IS-IS。 - 实时监控和日志记录功能,便于故障排查和性能分析。 在开发和部署Gobgp时,你需要了解BGP的基本概念,如AS号、路由更新、路径选择...