【OSPF】链路类型 LinkType
OSPF 除了定义网络类型(Network Type),还定义了链路类型(Link Type),这是两个不同的概念。链路类型主要用于描述 OSPF 路由器的接口或邻居。在 1 类 LSA 中,可以看到产生该 LSA 的路由器所连接的所有链路(Link)、链路的类型以及相关的内容。通过每个 1 类 LSA 中描述的各种链路(Link),OSPF 得以描绘出网络的拓扑和子网信息。
LS age: 1355
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
LS Seq Number: 8000001F
Checksum: 0xFF44
Length: 48
Area Border Router
AS Boundary Router
Number of Links: 2
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 2.2.2.2
(Link Data) Router Interface address: 10.1.12.1
Number of TOS metrics: 0
TOS 0 Metrics: 64
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.1.12.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 64
1 类 LSA 中,用于描述 Link 的 LINKID、Link Date 的取值根据 OSPF link 类型不同而不同:
下面分别来看一看这些个 Link:
1.Stub Network Link
如果路由器的一个接口被激活 OSPF,并且该接口上没有任何 OSPF 邻居,则该接口使用 Stub Network Link 来描述。一个接口被通告进 OSPF,无论其二层封装是什么(以太网、PPP、HDLC 等),只要在该接口上没有 OSPF 邻居,那么就是 Stub Network Link。例如上图所示,R2 产生的 1 类 LSA 中用于描述接口 FE0/0 的 Link 数据就是:
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.1.23.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 1
Loopback 接口永远被定义为 Stub Network Link,默认使用 32 位掩码表示,这就是为什么在 OSPF 实验过程中,Loopback 接口 IP 地址无论配置什么掩码,路由学习过来都是 / 32 的主机路由。不管将 Loopback 接口改为哪种 OSPF 网络类型(Network Type),始终改变不了它的 OSPF 链路类型(Link Type),但可以改变它在 LSA 中的掩码长度。
2.Transit Link
拥有两台或两台以上 OSPF 路由器的链路,简单理解为有邻居的 OSPF 接口,使用 Transit Link 来描述。但网络类型为 Point-To-Point 和点到多点(Point-To-Multipoint)的接口除外,因为它们被定义为 Point-To-Point Link。
例如上图所示,R1 的 FE0/0 接口激活了 OSPF 并且有一个 OSPF 邻居 R2,因此 R1 在 LSA1 中描述这个接口时,使用 Transit Link 来描述,如下:
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.23.2
(Link Data) Router Interface address: 10.1.23.1
Number of TOS metrics: 0
TOS 0 Metrics: 1
3.Point-To-Point Link
OSPF 网络类型为 Point-To-Point 的接口,使用 “Point-To-Point Link” 来描述,但 Loopback 接口除外;
网络类型为点到多点(Point-To-Multipoint)的接口,同样使用为 Point-To-Point Link 这种链路类型来描述。
例如上图,R1 的 S0/0 口的 OSPF 网络类型是 P2P,因此 R1 产生的 LSA1 中用于描述该接口的链路类型就是 P2P LINK,输出如下:
Link connected to: another Router (point-to-point)
(Link ID) Neighboring Router ID: 1.1.1.1
(Link Data) Router Interface address: 10.1.12.2
Number of TOS metrics: 0
TOS 0 Metrics: 64
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.1.12.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 64
值得注意的是,对于 P2P 的网络类型接口,OSPF 使用了两个 LINK 来描述,一个是 P2P Link 用于描述链路对端连接的路由器 ID 及自己本地的接口 IP 地址,另外还使用了一个 Sub Network Link 来描述该条链路的子网
。
综上所述,OSPF 的集中链路类型中,P2P 以及 Transit Link 是用于描述网络拓扑结构的,而 Stub Network 是用于描述子网号的。
4.Virtual link
这种链路类型用于描述 OSPF 虚链路(Virtual Link)。
在上图中 R1、R3 建立了一条虚链路,则 R1 产生的 LSA1 中描述该虚链路的数据如下:
Link connected to: a Virtual Link
(Link ID) Neighboring Router ID: 3.3.3.3 #虚链路对端设备的 RouterID
(Link Data) Router Interface address: 10.1.12.1 #本地接口 IP 地址
Number of TOS metrics: 0
TOS 0 Metrics: 128
上面输出中的 Metric: 128,指的是从本地到虚链路对端,沿途所有出接口的 cost 累加。例如 R1 产生的描述虚链路的 Link 数据中包含的 metric 值就是如图所示绿色标记的接口 cost 累加。
【OSPF】路由汇总
1. 关于路由汇总
路由汇总,又被称为路由聚合(Route Aggregation or Route Summarization),指的是把一组路由汇聚成一条路由条目的操作。这组路由被称为明细路由,而所汇聚成的路由被称为汇总路由。路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。我们都知道,随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需要占用设备的内存空间的,路由的查询也是需要占用设备的资源的,因此我们需要考虑(尤其在一些大型的网络中)在保证网络中路由畅通的同时,减小路由表的规模。路由汇总就是一个有效的手段。几乎所有的路由协议都支持路由汇总。RIP、EIGRP 等协议支持自动及手工路由汇总,而 OSPF 只支持手工路由汇总。OSPF 支持两种形式的手工自动汇总:一种部署在 ABR 上,另一种则部署在 ASBR 上。
2. OSPF 路由汇总案例
网络拓扑如上图所示。R1、R2、R3、R4 及 R5 运行 OSPF,OSPF 区域的规划如图。
R5 将三个直连网段(172.16.1.0/24、172.16.2.0/24 及 172.16.3.0/24)都 network 到 OSPF。
R1 将三个直连网段(10.1.1.0/24、10.1.2.0/24 及 10.1.3.0/24)都重发布到 OSPF。
完成上述配置后,所有的路由器应该都能学习到全网的路由。
2.1 在 ABR 上执行路由汇总
在 R3(ABR)上对 Area2 内的路由执行汇总:
R3 (config)# router ospf 1
R3 (config-router)# area 2 range 172.16.0.0 255.255.0.0 cost ?
注意,这种汇总方式(area range)只能在 ABR 上配置,而且只能对 ABR 直接连接的区域中的 Intra-Area 路由(区域内部路由)执行汇总。R3 执行汇总后,R1 及 R2 的路由表中将出现 172.16.0.0/16 的汇总路由,而不会再学习到明细路由。如此一来,R1 及 R2 的路由表就精简了,而且当它们需要访问 R5 下挂的那三个网段时,可以通过这条汇总路由到达。
要强点的是,如果不是在 R3,而是在 R2 上对 R5 下挂的网段进行汇总,则无法实现。因此此时 R3 作为 ABR,已经将描述这些网段的 3 类 LSA 注入到了 Area0,而在 R2 上,是无法对这些 3 类 LSA 进行路由汇总的。
2.2 在 ASBR 上执行路由汇总
在 R1 上对其自己重发布进 OSPF 的路由执行汇总:
router ospf 1
summary-address 10.1.0.0 255.255.0.0
完成上述配置后,R2、R3、R4 及 R5 都会学习到一条 10.1.0.0/16 的汇总路由(使用 Type-5 LSA 描述),而不会再学习到 10.1.1.0/24、10.1.2.0/24 以及 10.1.3.0/24 这三条明细路由。
2.3 在 NSSA 的 ABR 上执行路由汇总
将网络做一点小小的变更,Area1 被配置为 NSSA。R1 将三条直连路由引入 NSSA,R2 会学习到这三条外部路由(Type-7 LSA),并执行 Type-7 LSA 转 Type-5 LSA 的动作,因此其实 R2 既是 ABR 又是 ASBR,这些 Type-5 LSA 是由其产生的,那么 R2 也能执行路由汇总:
router ospf 1
summary-address 10.1.0.0 255.255.0.0
3. OSPF 汇总路由的防环设计
在上图所示的场景中,R3 将 R5 下挂的三个子网汇总成 172.16.0.0/16 并向 R2 通告这条汇总路由。R1 则下发一条 OSPF 默认路由到整个 OSPF 域。此时 R5 下挂的某个子网里有 PC 中毒,疯狂扫描一个并不存在的子网的 IP 地址(如 172.16.222.0/24 子网),这些数据包被发给网关 R5,R5 通过路由表查询,最终将这些报文依照默认路由进行转发,也就是发送给 R4,而 R4 也一样,将报文依照默认路由转发给 R3,R3 再转给 R2,而 R2 由于已经收到 R3 传递过来的汇总路由(172.16.0.0/16),因此经过路由表查询后,数据包的目的地址匹配上了这条汇总路由,于是它又把这些数据包丢回去给 R3,数据包的目的地址在 R3 处匹配了默认路由,又被丢回 R2,如此反复,直到报文的 TTL 递减为 0。这就出现了环路。
OSPF 为了解决这个问题,在执行路由汇总时,会在本地自动产生一条指向 Null0 的路由。例如在 R3 处执行了路由汇总,则它会自动产生一条指向 Null0 的路由:
O 172.16.0.0/16 is a summary, 00:00:02, Null0
这样一来当再有类似事件发生,数据包将在 R3 这就被丢弃(匹配 Null0 路由)。
实际上,当执行路由汇总时,自动在本地路由表产生一条指向 Null0 的路由是一种非常常规的防环手段,许多动态路由协议都具备这个特征。
注:cnblog 和 sina 上的博文,处于暂稳态,不一定哪天就如百度空间,163 空间那样成为消失的它了…
via:
-
【OSPF】链路类型 LinkType 红茶三杯_新浪博客 2014-11-08 14:51:10
-
【OSPF】路由汇总 红茶三杯新浪博客 2015-04-12 18:59:10