zebra/quagga ospf and unh test section 3

原创 2005年04月26日 23:09:00

case 3.1
ospf_router_lsa_originate
  |--ospf_router_lsa_body_set
       |--router_lsa_link_set
            |--lsa_link_broadcast_set
           
           
A router originates a router-LSA for each area that it
belongs to. Such an LSA describes the collected states of
the router’s links to the area.

case 3.2
nsm_inactivity_timer
  |--nsm_kill_nbr
       |--nsm_change_state(NSM_Full-->NSM_Down)
            |--ospf_router_lsa_timer_add
            |--OSPF_ISM_EVENT_EXECUTE (ISM_NeighborChange)
           
case 3.3
see case 3.1


case 3.4
Part A
ism_change_state(ISM_Waiting-->ISM_DR)
  |--ospf_network_lsa_timer_add
      |--ospf_network_lsa_originate
           |--ospf_network_lsa_new
                |--  if (oi->full_nbrs == 0)return NULL;
               
Part B
nsm_change_state(NSM_Loading-->NSM_Full)
  |--ospf_network_lsa_timer_add
               
case 3.5
nsm_change_state(NSM_Loading-->NSM_Full or NSM_Full-->NSM_Down)
  |--ospf_network_lsa_timer_add  
       |--ospf_network_lsa_originate
            |--ospf_network_lsa_refresh
                 |--ospf_network_lsa_body_set
                
case 3.6
data structure:
ospf{}
  |--new_rtrs(route_table{})
       |--info(list{})--ospf_route
      
new_rtrs is constructed in
ospf_spf_calculate
  |--ospf_intra_add_router

originate/refresh summary lsa
ospf_abr_task
  |--ospf_abr_process_router_rt
       |--ospf_find_asbr_route
       |--ospf_abr_announce_rtr               
            |--ospf_abr_announce_rtr_to_area
                 |--ospf_summary_asbr_lsa_refresh

remove summary lsa                
ospf_abr_task
  |--ospf_abr_unapprove_summaries
  |--ospf_abr_remove_unapproved_summaries                
 
 
case 3.7
data structure:
ospf{}
  |--new_rtrs(route_table{})
       |--info--ospf_route{}

ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh
           
case 3.8
ospf_abr_task
  |--ospf_abr_process_router_rt
       |--ospf_find_asbr_route
       |--ospf_abr_announce_rtr            
             
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))  
            |--ospf_abr_announce_rtr_to_area
                 |--ospf_summary_asbr_lsa_refresh


case 3.9
ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh
 
 
case 3.10
ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh

ospf_abr_task
  |--ospf_abr_unapprove_summaries
  |--ospf_abr_remove_unapproved_summaries                
 

case 3.12
ospf_area{}
  |--ranges(route_table)--ospf_area_range{}

ospf_abr_task
  |--ospf_abr_prepare_aggregates
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            |--ospf_abr_update_aggregate
  |--ospf_abr_announce_aggregates
       |--ospf_abr_announce_network_to_area
      
ospf_area_range
  |--ospf_area_range_set
       |--ospf_area_range_new   
       |--ospf_area_range_add
       |--ospf_schedule_abr_task  
      
case 3.13
ospf_abr_announce_aggregates

case 3.14
ospf_abr_announce_aggregates     

case 3.15
set vlink ospf interface output cost
ospf_spf_calculate
  |--ospf_intra_add_router
       |--ospf_vl_up_check
            |--ospf_vl_set_params
           
ospf_write
in this case virtual link src address and destination address is not in the same subnet.
           
case 3.16
add a static route
ip_route
  |--zebra_static_ipv4
       |--static_add_ipv4
            |--static_install_ipv4
                 |--rib_process
                      |--nexthop_active_update (check unreachable nexthop)
                      |--rib_install_kernel
                           |--kernel_add_ipv4
                                |--netlink_route_multipath
                                     |--netlink_talk
                                    
                      |--redistribute_add
                           |--zsend_route_multipath
                                |--zebra_server_send_message


initiate request
ospf_redistribute_source_type_metric
  |--ospf_redistribute_set
       |--zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD)
            |--zebra_redistribute_send
       |--ospf_asbr_status_update
            |--ospf_spf_calculate_schedule  
           
           
zebra server handle service request
zebra_client_read (ZEBRA_REDISTRIBUTE_ADD)
  |--zebra_redistribute_add
       |--zebra_redistribute
            |--zsend_route_multipath
                 |--zebra_server_send_message        
                
zebra client handle response from server
zclient_read
  |--ipv4_route_add
       |--ospf_zebra_read_ipv4
            |--ospf_external_lsa_originate   
case 3.17
same as 3.16

case 3.18
can't find the related source code.it's a bug!!!
           
case 3.19
ospf_abr_task
  |--ospf_abr_announce_stub_defaults
       |--ospf_abr_announce_network_to_area         
      
ospf_area_default_cost   

case 3.20
ospf_spf_calculate_timer
  |--ospf_ia_routing
       |--ospf_examine_summaries            
            |--process_summary_lsa
                 |--ospf_ia_network_route
                      |--ospf_route_add

case 3.21
ospf_external_lsa_originate
  |--ospf_external_lsa_new
       |--ospf_lsa_unique_id
                     
case 3.22
can't find flush process, it's a bug!!!
ospf_lsa_install
  |--OSPF_MAX_SEQUENCE_NUMBER
                     

zebra/quagga ospf and unh test section 2

case 2.1DR and BDR become adjacent with all other routers.nsm_twoway_received() changes nbr state fr...
  • egong
  • egong
  • 2005年04月13日 23:20
  • 1328

zebra/quagga ospf and unh test section 4

Calculation of the routing table1.Calculating the shortest-path tree for an area,   -yields the set ...
  • egong
  • egong
  • 2005年05月13日 09:58
  • 928

Linux下使用Quagga搭建软路由-OSPFv2学习

在学习路由协议如OSPF协议时,需要进行一个实操的练习,若手里又没有核心交换机,怎么破? 本文讲述了如何在Linux系统上搭建软路由环境,并使用OSPF路由协议完成路由表的学习。 Quagga是一款开...
  • stayneckwind2
  • stayneckwind2
  • 2017年01月03日 22:03
  • 1727

CentOS配置zebra OSPF

创建zebra和ospfd的配置文件: [root@localhost ~]# cp /usr/local/etc/zebra.conf.sample /usr/local/etc/zebra.co...
  • dingtao7890
  • dingtao7890
  • 2016年11月16日 19:45
  • 596

quagga 的原理解析 zebra原理解析

quagga 的原理解析 zebra原理解析
  • ztguang
  • ztguang
  • 2017年04月25日 20:59
  • 1280

Quagga使用笔记1

使用版本:version 0.99.22.4(由sudo apt-get install quagga 得到) 由于最开始设置中/etc/quagga/daemons 这个文件中已经设置为: zebr...
  • u010087886
  • u010087886
  • 2015年04月13日 22:34
  • 703

用Zebra做OSPF实验

用Zebra做OSPF实验 关键字: zebra OSPF(开放最短路径优先)路由协议是一项链路状态型技术,是目前IGP中应用最广、性能最优的一个 协议,解决了RIP不能解决的大型、可扩展的网...
  • sahusoft
  • sahusoft
  • 2011年05月24日 22:51
  • 2121

Quagga(Zebra)基本配置

Zebra使用ospfd程序实现OSPF路由功能,但ospfd需要从zebra程序获得接口信息,所以zebra程序必须在 ospfd 程序之前运行。ospfd不支持多个OSPF进程,我们不能指定...
  • realmeh
  • realmeh
  • 2014年05月11日 23:51
  • 2219

Quagga 简介

Quagga 简介 什么是Quagga   Quagga软件原名是Zebra是由一个日本开发团队编写的一个以GNU版权方式发布的软件。Quagga项目开始与1996年,当前版本是0.98.4版 可...
  • u011353822
  • u011353822
  • 2014年11月20日 23:51
  • 5982

解决zebra下ospf正常启动却无法建立邻居的问题

zebra正常启动,配置好ospf之后,却无法建立邻居,用tcpdump抓包能够抓到双发发送的OSPF报文,ping交换机也没有问题。 以上问题经过分析,是由iptables限制所导致的,执行以下命...
  • dingtao7890
  • dingtao7890
  • 2016年11月25日 13:48
  • 378
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zebra/quagga ospf and unh test section 3
举报原因:
原因补充:

(最多只允许输入30个字)