session 1 OSPF网络类型
使用ospf的网络类型修改命令可以看到OSPF支持的网络类型有如下5种:
R1(config-if)#ip ospf network ?
broadcast Specify OSPF broadcast multi-access network 广播网络
non-broadcast Specify OSPF NBMA network 非广播NBAR网络
point-to-multipoint Specify OSPF point-to-multipoint network 点到多点网络
point-to-point Specify OSPF point-to-point network 点到点网络
R1(config-if)#ip ospf network point-to-multipoint non-broadcast 点到多点非广播网络
一、broadcast广播网络
1、
hello10s,Dead40s
2、代表的L2层封装为EthernetII(以太网)
二、p2p点到点网络
1、
hello10s,Dead40s
2、代表的L2层封装为p2p封装(HDLC、PPP、FRp2p子接口、ATM)
三、NBMA非广播网络,代表L2层封装为Fream-relay(主接口、多点子接口),hello30s,Dead120s
1、Hello 30, Dead 120
2、所有非广播网络,都没有邻居自动发现功能,不会主动发送hello探测邻居包。但是可以使用:
R1(config)#router ospf 1
R1(config-router)#neighbor 12.1.1.2 手动开启邻居探测功能,让路由器向邻居发送探测hello包(单播了)
R1(config-router)#exit
在NBMA网络类型中,手工配置了探测邻居功能,向指定的邻居
发送单播hello
的时候,在OSPF邻居关系建立中叫做Attempt状态(而不是two-way状态)
四、point-to-multipoint点到多点网络
1、Hello 30, Dead 120
2、
不存在对应的L2层封装(特殊的网络类型)
3、不需要选举DR/BDR
4、有邻居发现功能,会主动发hello包,不需要手工指neihbor
5、和PPP协议一样有邻居推送的接口32bit主机路由
6、对端邻居可以使用FR的p2p子接口
五、point-to-multipoint non-broadcast
1、Hello 30, Dead 120
2、
点到多点非广播网络不存在对应的L2层封装(特殊的网络类型)
3、
所有非广播网络,都没有邻居自动发现功能。同NBMA网络一样需要手工指neihbor
4、不需要选举DR/BDR
5、和PPP协议一样有邻居推送的接口32bit主机路由
point-to-multipoint和point-to-multipoint non-broadcast是为了取代Fream-relay(主接口、多点子接口)NBMA网络设计出来的,可以在帧中继网络中将接口修改成这两种网络类型(看拓扑结构)
六、loopback网络类型
1、没有
ospf的hello包
总结:
p2p,p2mp,p2mp-non都描述一个区域为stub区域
broadcast和NBMA都描述一个区域为transit(传输)区域
上面这两个区域的区分是以LSA为区分的,两个不同区域的LSA是不一样的,两个区域的R相互看不懂对方的LSA
1、不同OSPF网络类型之间都可以建立邻接关系,但是必须要求hello和Dead时间相同才可以
R1(config-if)#ip ospf internet f0/0 可以查看hello和dead时间
R1(config-if)#ip ospf hello-interval 30
R1(config-if)#ip ospf dead-interval 120
时间修改成一样的,就可以建立邻接关系。但是不一定能传递链路数据库。
2、不同的OSPF网络类型对接,其中一端需要DR/BDR选举而另一端不需要DR/BDR选举的会没有路由(因为需要选举DR和不需要选举DR的网络类型的路由器发送的LAS是不一样的,对端也就看不懂,所以学不到路由)
3、不同的OSPF网络类型对接,只有两端都是非广播的网络类型才需要手工指neibhor,开启邻居探测hello功能
session 2 OSPF的链路状态数据报文LSA
一、LSA序列号
1、LSDB(数据库)中每一个LSA都有一个序列号。序列号是用来衡量LSA的新旧的,序列号越大证明越新,当路由器收到一个比自己LSDB中的任何LSA都新的LSA(序列号大的)就会把这个收到的新的LSA放到自己的LSDB中,如果路由器收到一个比自己LSDB中的LSA序列号小的LSA,不但不会要还会把自己的LSA(序列号大的)发送给对方让对方来学习。
2、LSA序列号范围从0x80000001——0x7FFFFFFF,在路由器中使用命令查看LSA的信息:
R1#show ip ospf database
OSPF Router with ID (2.2.2.2) (Process ID 2)
Router Link States (Area 0) 1类LSA
Link ID ADV Router Age
Seq# Checksum Link count
1.1.1.1 1.1.1.1 12
0x80000002 0x00EA02 2
2.2.2.2 2.2.2.2 12
0x80000002 0x00DA05 2
这里是2个1类LSA,没个link一个,整个area0中有2台Router,所以只有2个1类LSA
Net Link States (Area 0) 2类LSA
Link ID ADV Router Age
Seq# Checksum
12.1.1.2 2.2.2.2 12
0x80000001 0x001204
这里是2类LSA,DR发,所以只有一个
3、LSA的老化时间默认是1小时,OSPF每30min会flood一次,用来维护LSA数据库的同步。
二、LSA种类和功能(路由器就是通过LSDB中的link来画出网络的逻辑拓扑图的)
OSPF的LSA总共12种:
1、Router Link ,1类LSA,用来描述router的直连网段,特点:本area内所有router一致,不能传出本area。
一个直连link就会有一个1类LSA
路由查找规律,首先查看LSDB中有无目的网络的link,如果有则查看哪个Router发给我的这条link,然后查看从哪个接口可以到达哪个发给我目的link的router,把数据包从接口发给那个router。如果发现发给我目的link的router不是和自己直连的(邻居),那么就看一下自己的邻居router有没有去往发给我目的link的(那台)路由器的路由,如果邻居可以到达,那么就把数据包发给邻居router,邻居router就有办法到达目的link网络了。
下面看一个拓扑:
loopback0 1.1.1.1 R1---12.1.1.0/24---R2 loopback0 2.2.2.2
R1#show ip ospf database router 查看1类LSA
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
LS age: 412 LSA的老化年龄
Options: (No TOS-capability, DC)
LS Type: Router Links LSA的类型为router links,也就是1类LSA
Link State ID: 1.1.1.1
表明这条路由link的地址是下面这个路由器宣告给我的
Advertising Router: 1.1.1.1
表明这个LSA是谁宣告的(1.1.1.1是自己)
LS Seq Number: 80000008
Checksum: 0xC81F
Length: 48
Number of Links: 2 这个LSA中包含2条link信息
Link connected to: a Stub Network 表明这个link所在是个末梢网络
(Link ID) Network/subnet number: 1.1.1.1 第一条link信息1.1.1.1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0
Metrics: 1
Link connected to: a Transit Network 表明这条link所在是个直连的传输网路
(Link ID) Designated Router address: 12.1.1.1 表示邻接是DR,如果不是会显示Neighboring Router ID
(Link Data) Router Interface address: 12.1.1.1 表示到达R1(1.1.1.1)通过12.1.1.1这个接口地址
Number of TOS metrics: 0
TOS 0
Metrics: 10
上面这个是R1发的LSA,下面是R2发的LSA,R1与R2直连。在R1的LSDB中看到的信息,收集了R2发的1类LSA
Routing Bit Set on this LSA
LS age: 918
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 2.2.2.2 表明链路link地址
Advertising Router: 2.2.2.2 表明这个LSA是R-ID为2.2.2.2的路由器(R2)宣告的
LS Seq Number: 80000007
Checksum: 0x87EF
Length: 84
Area Border Router
Number of Links: 2 2.2.2.2宣告的LSA中包含2个(它)直连link网络
Link connected to: a Stub Network
(Link ID) Network/subnet number: 2.2.2.2 第一个link信息,网络2.2.2.2(R2还回地址)
(Link Data) Network Mask: 255.255.255.255 link的掩码
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 12.1.1.1
表示邻居是DR,如果不是会显示Neighboring Router ID
(Link Data) Router Interface address: 12.1.1.2
表示通过12.1.1.2这个下一跳可以到达R2(2.2.2.2)
Number of TOS metrics: 0
TOS 0 Metrics: 10
2、Net Link,2类LSA,由DR发送汇总信息。特点:本area内flood
一个DR一个2类LSA,link-ID是DR的router-ID,比如p2p(WAN串口S)网络类型中就没有LSA2,因为没有DR。
R1#show ip ospf database network 查看2类LSA,只有DR才会发2类的LSA-link
OSPF Router with ID (1.1.1.1) (Process ID 1)
Net Link States (Area 0) 表明2类LSA
Routing Bit Set on this LSA
LS age: 870
Options: (No TOS-capability, DC)
LS Type:
Network Links
Link State ID: 12.1.1.1 (address of Designated Router) DR的接口地址
Advertising Router: 1.1.1.1 宣告这个2类LSA的路由器的R-id
LS Seq Number: 80000002
Checksum: 0x48D1
Length: 32
Network Mask: /24 表明这个宣告的LSA的子网掩码
Attached Router: 1.1.1.1 这个2类LSA中所包含R-other路由器(R-ID),这里是2个
Attached Router: 2.2.2.2
一个area0中可能出现2个DR,DR是以网段算的,一个网段只能有一个DR,也就是说直连链路的两端只能有一个DR。
DR可以理解成是每个网段(OSPF网络类型为多路访问型,有广播型(以太网)和非广播NBMR(帧中继))都选举一个DR。在同一个区域中有多个网段时,就会出现多个DR了。