此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍OSPF的工作方式,以及如何使用OSPF设计和构建大型复杂网络。
RFC 2328 中定义的开放最短路径优先 (OSPF) 协议,是用于分配单个自控系统中的路由信息的内部网关协议。
开发 OSPF 协议是因为 Internet 社区中需要为 TCP/IP 协议族引入具备强大功能的非专有内部网关协议 (IGP)。
关于创建 Internet 通用互操作 IGP 的讨论从 1988 年就开始了,但直到 1991 年才正式成形。
当时,OSPF 工作小组要求考虑将 OSPF 发展为互联网标准草案。
OSPF 协议基于链路状态技术,不同于传统 Internet 路由协议(如 RIP)中使用的基于 Bellman-Ford 矢量的算法。
OSPF 引入了一些新概念,如路由更新身份验证、可变长度子网掩码 (VLSM)、路由汇总等。
这些章节讨论当今大型复杂网络设计中的OSPF术语、算法以及协议的优点和细微差别。
现代网络的快速增长和扩展已将路由信息协议(RIP)推向极限。RIP 的以下一些限制在大型网络中可能会导致出现问题:
完整路由表的定期广播消耗大量带宽。这是大型网络中的一个主要问题,特别是在低速链路和广域网网云中。
RIP的新版本RIP中引入了增强功能,称为RIP2。RIP2 解决了 VLSM、身份验证和多播路由更新的问题。
与RIP(现在称为RIP1)相比,RIP2并没有什么大的改进,因为它仍然具有在大型网络中必不可少的跳数和收敛速度限制。
另一方面,OSPF 解决了以前存在的大多数问题:
这会导致OSPF网络的配置和故障排除更加复杂。
习惯了简单 RIP 的管理员若要跟上 OSPF 网络的发展,就面临着必须了解大量新信息这一挑战。
这会在内存分配和CPU利用率方面引入更多开销。运行RIP的一些路由器必须升级才能处理OSPF引起的开销。
OSPF 是一种链路状态协议。将链路视为路由器上的接口。链路状态是接口及其与邻居路由器关系的描述。
例如,接口的说明将包括接口的 IP 地址、掩码、所连接的网络的类型、连接到该网络的路由器等。
所有这些链路状态的集合形成链路状态数据库。
OSPF使用最短路径优先算法来构建和计算到达所有目的地的最短路径。最短路径使用Dijkstra算法计算。
算法本身就很复杂。这是对算法各个步骤的高度了解:
该算法将每个路由器置于一个树的根部,并基于到达每个目标所需的累积成本计算与该目标之间的最短路径。
尽管所有路由器都使用相同的链路状态数据库构建最短路径树,但每台路由器都有自己的拓扑视图。这些部分指出了创建最短路径树所涉及的内容。
OSPF 中接口的成本(也称为度量)是在特定接口上发送数据包所需开销的指示。
接口的成本与接口的带宽成反比。带宽越高,成本越低
与10M以太网线路相比,56k串行线路涉及更多的开销(更高的成本)和时间延迟。
用于计算成本的公式如下:
例如,跨10M以太网线路的开销为10 EXP8/10 EXP7 = 10,跨T1线路的开销为10 EXP8/1544000 = 64。
默认情况下,根据带宽计算接口的开销;您可以强制使用 ip ospf cost
接口子配置模式命令。
请参阅此网络图,了解所指示的接口成本。若要生成 RTA 的最短路径树,我们必须将 RTA 作为树的根并计算每个目标的最小成本。
这是从RTA看到的网络视图。注意成本计算中的箭头方向。
当开销计算为192.168.0.1时,通向网络198.51.100.1的RTB接口的开销并不相关。
RTA 可以通过 RTB 到达 192.168.0.1,成本为 15 (10+5)。
RTA也可以通过RTC到达203.0.113.1,开销为20(10+10),或通过RTB到达20(10+5+5)。
如果存在通往同一目的地的等价路径,OSPF的实施将跟踪最多六(6)个通往同一目的地的下一跳。
路由器构建最短路径树后,会构建路由表。直连网络通过度量(开销)0到达,其他网络根据树中计算出的开销到达。
如前所述,OSPF使用泛洪在路由器之间交换链路状态更新。路由信息的所有更改都泛洪给网络中的所有路由器。
引入区域是为了给链路状态更新的急剧增长设置边界。路由器上的Dijkstra算法的泛洪和计算仅限于区域内的更改。
区域之内的所有路由器都有确切的链路状态数据库。属于多个区域的路由器以及将这些区域连接到骨干网区域的路由器称为区域边界路由器 (ABR)。
因此,ABR必须维护描述主干区域和其他附加区域的信息。
区域特定于接口。所有接口都在同一个区域之内的路由器称为内部路由器 (IR)。
接口在多个区域内的路由器称为区域边界路由器 (ABR)。
在 OSPF 和其他路由协议(IGRP、EIGRP、IS-IS、RIP、BGP、Static)或其他 OSPF 路由进程实例之间用作网关(重分配)的路由器称为自治系统边界路由器 (ASBR)。所有路由器都可以是 ABR 或 ASBR。
链路状态数据包有不同类型,这些类型通常在OSPF数据库中看到(附录A和此处图示)。
路由器链路是路由器接口在特定指定区域中的状态指示。每台路由器都会为其所有接口生成一条路由器链路。
汇总链接由ABR生成;这是网络可达性信息在区域之间传播的方式。
通常,所有信息都注入主干(区域0),主干反过来将其传递到其他区域。
ABR还会传播ASBR的可达性。这便是路由器了解如何到达其他 AS 中的外部路由的方式。
网络链路由网段上的指定路由器(DR)生成(DR将在稍后讨论)。
此信息表示连接到特定多路访问分段(如以太网、令牌环和 FDDI(也称为 NBMA))的所有路由器。
外部链路表示 AS 外的网络。这些网络通过重分配注入 OSPF。ASBR将这些路由注入自治系统。
在路由器上启用OSPF涉及配置模式中的两个步骤:
router ospf
命令。network
命令。OSPF process-id 是路由器的本地数值。该数据不必匹配其他路由器上的 process-id。
可以在同一路由器上运行多个 OSPF 进程,但不建议这样做,因为这样会创建多个数据库实例,从而增加额外的路由器开销。
此 network
命令是将接口分配到特定区域的一种方法。掩码用作快捷方式,它使用一个线路配置行将接口列表置于同一区域。
掩码包含通配符位,其中0表示匹配,1表示“忽略”位,例如0.0.255.255表示网络号的前两个字节匹配。
区域 ID 是要使接口所处的区域编号。区域 ID 可以是介于 0 和 4294967295 之间的整数,或者可以采用类似于 IP 地址 A.B.C.D 的形式。
示例如下:
RTA# interface Ethernet0 ip address 192.168.0.2 255.255.255.0 interface Ethernet1 ip address 192.168.0.5 255.255.255.0 interface Ethernet2 ip address 192.168.0.3 255.255.255.0 router ospf 100 network 192.168.0.4 0.0.255.255 area 0.0.0.0 network 192.168.0.3 0.0.0.0 area 23
第一条 network 语句将 E0 和 E1 放置在同一区域 0.0.0.0 内,第二条 network 语句将 E2 放置在区域 23 内。请注意掩码 0.0.0.0,这指示 IP 地址需完全匹配。
如果无法解析掩码,这是一种将接口置于特定区域的简单方法。
可以对 OSPF 数据包进行身份验证,从而使路由器可以基于预定义的口令加入路由域。
默认情况下,路由器使用空身份验证,这意味着不对网络上的路由交换进行身份验证。还有两种身份验证方法:简单密码身份验证和 Message Digest
身份验证(MD-5)。
简单密码身份验证允许按区域配置密码(密钥)。同一区域中想要加入路由域的路由器必须配置相同的密钥。
此方法的缺点是容易受到被动攻击。任何使用链路分析器的人都很容易从线路中获得口令。
要启用密码身份验证,请使用以下命令:
ip ospf authentication-key key
(这位于特定接口下)area area-id authentication
(这属于 router ospf
(E)示例如下:
interface Ethernet0 ip address 10.0.0.1 255.255.255.0 ip ospf authentication-key mypassword router ospf 10 network 10.0.0.0 0.0.255.255 area 0 area 0 authentication
消息概要身份验证是加密身份验证。密钥(口令)和密钥 ID 在每个路由器上进行配置。
路由器使用基于 OSPF 数据包、密钥和密钥 ID 的算法生成附加到数据包的“消息概要”。
与简单身份验证不同,此身份验证不会在线路上交换密钥。每个 OSPF 数据包还包含非递减序号,以防止受到重播攻击。
此方法还允许在密钥间进行不间断转换。这对于希望在不中断通信的情况下更改OSPF密码的管理员很有帮助。
如果接口配置有新密钥,路由器将发送同一数据包的多个副本,每个副本通过不同的密钥进行身份验证。
当路由器检测到其所有邻居都已采用新密钥时,它不会发送重复的数据包。
以下是用于消息摘要身份验证的命令:
ip ospf message-digest-key keyid md5 key
(在接口下使用)area area-id authentication message-digest
(用于 router ospf
(E)示例如下:
interface Ethernet0 ip address 10.0.0.1 255.255.255.0 ip ospf message-digest-key 10 md5 mypassword router ospf 10 network 10.0.0.0 0.0.255.255 area 0 area 0 authentication message-digest
当涉及多个区域时,OSPF 具有特殊限制。如果配置了多个区域,则这些区域中必须有一个是区域 0。此区域称为骨干网。
最好从区域0开始,然后扩展到其他区域。
主干必须位于所有其他区域的中心,也就是说,所有区域必须物理连接到主干。
原因是OSPF希望所有区域将路由信息注入主干,主干反过来将该信息传播到其他区域。
下图说明了OSPF网络中的信息流:
在此图中,所有区域都直接连接到主干。在极少数情况下,引入的新区域无法直接物理访问主干,因此必须配置虚拟链路。
虚拟链路将在下一节讨论。请注意不同类型的路由信息。从区域内生成的路由(目标属于该区域)称为区域内路由。
这些路由在 IP 路由表中通常由字母 O 表示。源自其他区域的路由称为 inter-area
或 Summary routes
.
这些路由在 IP 路由表中的符号为 O IA。源自其他路由协议(或不同OSPF进程)的路由以及通过重分发注入到OSPF的路由称为 external routes
.
这些路由在 IP 路由表中由 O E2 或 O E1 表示。首选多条通往同一目的地的路由,顺序如下: intra-area, inter-area, external E1, external E2
.外部类型E1和E2将在稍后说明。
虚拟链路用于两个目的:
如前所述,区域 0 必须位于所有其他区域的中心。在不可能将某个区域物理连接到骨干网的某些少见情况下,可使用虚拟链路。
虚拟链路为断开区域提供到主干的逻辑路径。虚拟链路必须在具有公共区域的两个 ABR 之间建立,其中一个 ABR 连接到骨干网。
在本示例中,区域 1 没有与区域 0 之间没有直接物理连接。必须在 RTA 和 RTB 之间配置虚拟链路。区域 2 将用作中转区域,并且 RTB 是到区域 0 的入口点。
通过这种方式,RTA和区域1与主干建立逻辑连接。要配置虚拟链路,请使用 area
rta和RTB上的router OSPF子命令,其中area-id是传输区域。
在图中,这是区域2。RID是路由器ID。OSPF路由器ID通常是机箱中最高的IP地址,或最大的环回地址(如果存在)。
路由器 ID 只在启动时或每次重新启动 OSPF 进程时进行计算。要查找路由器ID,请使用 show ip ospf interface
命令。
假设10.0.0.11和10.0.0.22是RTA和RTB各自的RID,两台路由器的OSPF配置将是:
RTA# router ospf 10 area 2 virtual-link 10.0.0.22 RTB# router ospf 10 area 2 virtual-link 10.0.0.11
OSPF允许主干的不连续部分通过虚拟链路进行链路。在某些情况下,需要将不同的区域 0 链接到一起。
例如,如果公司尝试将两个独立的OSPF网络合并为一个具有公共区域0的网络,就会出现这种情况。在其他情况下,虚拟链路是作为冗余添加的,以防止由于某些路由器故障而导致将骨干网一分为二。
可以在从每一端连接到区域0并共享公共区域的独立ABR之间配置虚拟链路(如图所示)。
在此图中,两个区域0通过虚拟链路连接在一起。如果不存在公共区域,则可以创建一个附加区域(如区域 3)作为中转区域。
如果与主干不同的区域被分区,主干会负责分区工作,而无需使用任何虚拟链路。
分区区域的一部分通过区域间路由(而不是区域内路由)为另一部分所知。
共享公共分段的路由器成为该分段上的邻居。邻居是通过 Hello 协议进行选择的。Hello数据包通过IP组播定期从每个接口发送出去(附录B)。
路由器一旦发现自己被列在邻居Hello数据包中就会成为邻居。这样,就可保证进行双向通信。邻居协商仅使用于主地址。
辅助地址可在接口上使用以下限制进行配置:这些地址必须与主地址属于同一个区域。
除非两台路由器同意此条件,否则它们不会成为邻居。
Area-id:
两台具有公共网段的路由器;它们的接口必须属于该网段上的同一区域。接口必须属于同一子网并具有相似的掩码。Authentication:
OSPF 允许为特定区域配置口令。要成为邻居的路由器必须在特定分段上交换相同的口令。Hello and Dead Intervals:
OSPF交换 Hello
每个网段上的数据包。这是路由器使用的一种保持连接形式,目的是为了确认路由器在分段上的存在以及在多路访问分段上选择指定路由器 (DR)。此 Hello
interval指定NTP与NTP之间 Hello
路由器在OSPF接口上发送的数据包。
Dead间隔是路由器的秒数 Hello
在邻居宣布OSPF路由器关闭之前,未发现数据包。
ip ospf hello-interval seconds
和 ip ospf dead-interval seconds
.Stub area flag:
两台路由器还必须同意网络中的末节区域标志 Hello
数据包,从而成为邻居。末节区域将在后续部分讨论。考虑末节区域定义会影响邻居选举过程。邻接是邻居进程之后的下一步。相邻路由器是超出 Hello
exchange并进入数据库交换过程。
为了使特定分段上的信息交换量减到最小,OSPF 在每个多路访问分段上选择一个路由器作为指定路由器 (DR),一个路由器作为备用指定路由器 (BDR)。
BDR 选择作为 DR 停机时的备用机制。采用这种做法的目的是使路由器具有用于信息交换的中心联络点。
每台路由器不与网段上的其他路由器交换更新,而是与DR和BDR交换信息。
DR和BDR会将信息中继到其他所有创建者。从数学的角度来看,这减少了从 O(n*n) 到 O(n) 的信息交换,其中 n 是多路访问分段上的路由器数量。
此路由器模型说明了DR和BDR:
在此图中,所有路由器共享一个通用的多路访问网段。由于交换 Hello
数据包,一台路由器被选举为DR,另一台路由器被选举为BDR。
网段上的每台路由器(已变为邻居)都会尝试与DR和BDR建立邻接关系。
DR和BDR选举通过 Hello
协议。 Hello
数据包在每个网段上通过IP组播数据包(附录B)交换。
网段中具有最高OSPF优先级的路由器成为该网段的DR。会为 BDR 重复相同的过程。如果是平局,则优先选择具有最高RID的路由器。
接口 OSPF 优先级的默认值是一。请记住,DR 和 BDR 概念是针对每个多路访问分段的。接口上的OSPF优先级值通过 ip ospf priority
接口命令。
优先级值为零指示接口将不会选作 DR 或 BDR。优先级为零的接口的状态是DROTHER。这说明了DR选举:
在此图中,RTA和RTB具有相同的接口优先级,但RTB具有更高的RID。RTB 将是该分段上的 DR。RTC 具有比 RTB 更高的优先级。RTC 是该分段上的 DR。
相邻关系构建过程在完成多个阶段后生效。相邻路由器具有确切的链路状态数据库。
以下是接口在与另一路由器相邻之前所经过的状态摘要:
示例如下:
RTA、RTB、RTD 和 RTF 共享区域 0.0.0.0 中的一个公共分段 (E0)。这些是RTA和RTF的配置。RTB和RTD的配置必须与RTF类似,并且不包含这些配置。
RTA# hostname RTA interface Loopback0 ip address 203.0.113.41 255.255.255.0 interface Ethernet0 ip address 203.0.113.141 255.255.255.0 router ospf 10 network 203.0.113.41 0.0.0.0 area 1 network 203.0.113.100 0.0.255.255 area 0.0.0.0 RTF# hostname RTF interface Ethernet0 ip address 203.0.113.142 255.255.255.0 router ospf 10 network 203.0.113.100 0.0.255.255 area 0.0.0.0
这是一个简单的示例,演示了一些在调试OSPF网络时非常有用的命令。
show ip ospf interface
此命令是快速检查,可确定所有接口是否都属于它们应所在的区域。OSPF network 命令的列出顺序是非常重要的。
在RTA配置中,如果“network 203.0.113.100 0.0.255.255 area 0.0.0.0”语句放在“network 203.0.113.41 0.0.0.0 area 1”语句之前,则所有接口都将位于区域0中,这是不正确的,因为环回位于区域1中。
以下是RTA、RTF、RTB和RTD上的命令输出:
RTA#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.141 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.41, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:02 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.0.113.151 (Designated Router) Loopback0 is up, line protocol is up Internet Address 203.0.113.41 255.255.255.255, Area 1 Process ID 10, Router ID 203.0.113.41, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host RTF#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.142 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.151, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DR, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:08 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.0.113.41 (Backup Designated Router) RTD#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.144 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 192.0.2.174, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2 Adjacent with neighbor 203.0.113.151 (Designated Router) Adjacent with neighbor 203.0.113.41 (Backup Designated Router) RTB#show ip ospf interface e0 Ethernet0 is up, line protocol is up Internet Address 203.0.113.143 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.0.113.121, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.0.113.151, Interface address 203.0.113.142 Backup Designated router (ID) 203.0.113.41, Interface address 203.0.113.141 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2 Adjacent with neighbor 203.0.113.151 (Designated Router) Adjacent with neighbor 203.0.113.41 (Backup Designated Router)
此输出显示了非常重要的信息。在RTA输出中,Ethernet0位于区域0.0.0.0中。进程ID为10(router ospf 10),路由器ID为203.0.113.41。
请记住,RID 是机箱或环回接口上的最高 IP 地址,在启动时或每次重新启动 OSPF 进程时进行计算。
接口的状态是 BDR。由于所有路由器在Ethernet 0上都具有相同的OSPF优先级(默认值为1),因此RTF接口被选为DR,因为RID较高。
同样地,选择 RTA 作为 BDR。RTD 和 RTB 不是 DR 也不是 BDR,其状态是 DROTHER。
注意邻居计数和邻接计数。RTD 有三个邻居,并与其中两个(DR 和 BDR)邻接。RTF 有三个邻居并与所有邻居邻接,因为它是 DR。
有关网络类型的信息非常重要,它决定了接口的状态。在广播网络(如以太网)中,DR和BDR的选举与最终用户无关。
DR或BDR是谁并不重要。但在其他情况下(例如帧中继和 X.25 此类的 NBMA 媒体),这对于 OSPF 的正常工作非常重要。
随着点对点和点对多点子接口的引入,DR选举不再是一个问题。下一节将讨论基于NBMA的OSPF。
我们需要了解的另一个命令是:
show ip ospf neighbor
让我们看看RTD输出:
RTD#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 203.0.113.121 1 2WAY/DROTHER 0:00:37 203.0.113.143 Ethernet0 203.0.113.151 1 FULL/DR 0:00:36 203.0.113.142 Ethernet0 203.0.113.41 1 FULL/BDR 0:00:34 203.0.113.141 Ethernet0
此 show ip ospf neighbor
命令显示特定网段上所有邻居的状态。如果邻居ID不属于您查看的网段,请不要发出警报。
在本例中,203.0.113.121和203.0.113.151不在Ethernet0上。Neighbor ID实际上是RID,可以是机箱上的任何IP地址。
RTD 和 RTB 仅仅是邻居,所以状态是 2WAY/DROTHER。RTD 与 RTA 和 RTF 邻接,状态是 FULL/DR 和 FULL/BDR。
OSPF始终与点对点接口(如点对点串行线路)另一端的邻居形成邻接关系。没有 DR 或 BDR 的概念。串行接口的状态为点对点。
必须特别注意在多路访问非广播介质(如帧中继、X.25、ATM)上配置OSPF。协议对待这些媒体的方式与对待任何其他广播媒体(例如以太网)类似。
NBMA云通常构建在集中星型拓扑中。PVC或SVC在部分网状拓扑中部署,并且物理拓扑不提供OSPF可以检测的多路访问。
DR 的选择会成为问题,因为 DR 和 BDR 需要与网云上存在的所有路由器之间具有完全物理连接。
由于缺少广播功能,DR和BDR需要连接到云的所有其他路由器的静态列表。
这是通过 neighbor ip-address [priority number] [poll-interval seconds]
命令,其中“ip-address”和“priority”是分配给邻居的IP地址和OSPF优先级。
会将优先级为 0 的邻居视为无资格进行 DR 选择。“poll-interval”是NBMA接口在轮询(发送Hello)到可能死邻居之前等待的时间。
此 neighbor
命令适用于具有DR或BDR潜力的路由器(接口优先级不等于0)。下面显示了一个网络图,其中DR选择非常重要:
在此图中,将云的RTA接口选举为DR至关重要。这是因为 RTA 是具有到其他路由器的完全连接的唯一路由器。
DR的选举可能受到接口上的ospf优先级参数的影响。不需要成为DR或BDR的路由器的优先级为0,而其他路由器的优先级可能较低。
此 neighbor
本文档未深入介绍命令,通过新的接口网络类型而废弃,与底层物理介质无关。这将在下一部分中进行说明。
可以使用不同的方法来避免静态邻居配置和特定路由器成为非广播网云上的DR或BDR所带来的复杂性。
指定使用哪种方法取决于我们是从开始启动网络,还是纠正已经存在的设计。
子接口是定义接口的逻辑方式。同一物理接口可以拆分为多个逻辑接口,每个子接口都定义为点对点。
最初创建这种子接口是为了更好地处理 NBMA 上的水平拆分和基于路由协议的向量所导致的问题。
点对点子接口具有任何物理点对点接口的属性。就 OSPF 而言,邻接始终在不进行 DR 或 BDR 选择的点对点子接口上形成。
下面是点对点子接口的图示:
在此图中,在RTA上,我们可以将Serial 0拆分为两个点对点子接口S0.1和S0.2。这样,OSPF会将云视为一组点对点链路,而不是一个多路访问网络。
点到点应用的唯一缺点是每个分段属于不同子网。这是无法接受的,因为某些管理员已经为整个云分配了一个IP子网。
另一个解决方法是在网云上使用 IP 不编号的接口。对于根据串行线路的IP地址管理WAN的管理员而言,这也是一个问题。这是RTA和RTB的典型配置:
RTA# interface Serial 0 no ip address encapsulation frame-relay interface Serial0.1 point-to-point ip address 198.51.100.36 255.255.252.0 frame-relay interface-dlci 20 interface Serial0.2 point-to-point ip address 198.51.100.46 255.255.252.0 frame-relay interface-dlci 30 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 RTB# interface Serial 0 no ip address encapsulation frame-relay interface Serial0.1 point-to-point ip address 198.51.100.35 255.255.252.0 frame-relay interface-dlci 40 interface Serial1 ip address 198.51.100.11 255.255.255.0 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 network 198.51.100.10 0.0.255.255 area 0
用于设置 OSPF 接口网络类型的命令是:
ip ospf network {broadcast | non-broadcast | point-to-multipoint}
点对多点接口
OSPF点对多点接口定义为具有一个或多个邻居的编号点对点接口。此概念拓展了前面讨论的点对点概念。
管理员无需担心每个点对点链路的多个子网。网云会配置为一个子网。
对于那些迁移到点对点概念而不更改云上IP地址的人来说,这种方法非常有效。此外,它们可以忽略DR和邻居语句。
OSPF点对多点通过交换其他链路状态更新来工作,这些更新包含许多描述与邻居路由器之间连接的信息元素。
RTA# interface Loopback0 ip address 203.0.113.101 255.255.255.0 interface Serial0 ip address 198.51.100.101 255.255.255.0 encapsulation frame-relay ip ospf network point-to-multipoint router ospf 10 network 198.51.100.1 0.0.255.255 area 1 RTB# interface Serial0 ip address 198.51.100.102 255.255.255.0 encapsulation frame-relay ip ospf network point-to-multipoint interface Serial1 ip address 198.51.100.11 255.255.255.0 router ospf 10 network 198.51.100.1 0.0.255.255 area 1 network 198.51.100.10 0.0.255.255 area 0
请注意,未配置任何静态帧中继映射语句;这是因为逆向ARP会处理DLCI到IP地址的映射。让我们来看一下 show ip ospf interface
和 show ip ospf route
输出:
RTA#show ip ospf interface s0 Serial0 is up, line protocol is up Internet Address 198.51.100.101 255.255.255.0, Area 0 Process ID 10, Router ID 203.0.113.101, Network Type POINT_TO_MULTIPOINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 0:00:04 Neighbor Count is 2, Adjacent neighbor count is 2 Adjacent with neighbor 198.51.100.174 Adjacent with neighbor 198.51.100.130 RTA#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 198.51.100.103 1 FULL/ - 0:01:35 198.51.100.103 Serial0 198.51.100.102 1 FULL/ - 0:01:44 198.51.100.102 Serial0 RTB#show ip ospf interface s0 Serial0 is up, line protocol is up Internet Address 198.51.100.102 255.255.255.0, Area 0 Process ID 10, Router ID 198.51.100.102, Network Type POINT_TO_MULTIPOINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 0:00:14 Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 203.0.113.101 RTB#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 203.0.113.101 1 FULL/ - 0:01:52 198.51.100.101 Serial0
点对多点的唯一缺点在于会为所有邻居生成多个主机路由(具有掩码 255.255.255.255 的路由)。注意RTB的IP路由表中的主机路由:
RTB#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.210 255.255.255.255 is subnetted, 1 subnets O 203.0.113.101 [110/65] via 198.51.100.101, Serial0 198.51.100.1 is variably subnetted, 3 subnets, 2 masks O 198.51.100.103 255.255.255.255 [110/128] via 198.51.100.101, 00:00:00, Serial0 O 198.51.100.101 255.255.255.255 [110/64] via 198.51.100.101, 00:00:00, Serial0 C 198.51.100.100 255.255.255.0 is directly connected, Serial0 172.16.0.0 255.255.255.0 is subnetted, 1 subnets C 172.16.0.1 is directly connected, Serial1 RTC#show ip route 203.0.113.210 255.255.255.255 is subnetted, 1 subnets O 203.0.113.101 [110/65] via 198.51.100.101, Serial1 198.51.100.1 is variably subnetted, 4 subnets, 2 masks O 198.51.100.102 255.255.255.255 [110/128] via 198.51.100.101,Serial1 O 198.51.100.101 255.255.255.255 [110/64] via 198.51.100.101, Serial1 C 198.51.100.100 255.255.255.0 is directly connected, Serial1 172.16.0.0 255.255.255.0 is subnetted, 1 subnets O 172.16.0.1 [110/192] via 198.51.100.101, 00:14:29, Serial1
请注意,在RTC IP路由表中,网络172.16.0.1可通过下一跳198.51.100.101到达,而不能通过198.51.100.102到达,这通常在共享同一子网的帧中继云上看到。
这是点对多点配置的优点之一,因为您不需要在RTC上进行静态映射即可到达下一跳198.51.100.102。
广播接口
此方法是 neighbor
命令静态列出所有当前邻居。接口在逻辑上设置为广播,其行为就像路由器连接到LAN一样。
执行DR和BDR选举时,可确保全网状拓扑或根据接口优先级静态选择DR。将接口设置为广播的命令是:
ip ospf network broadcast
总结是将多个路由整合到一个通告中。这通常在区域边界路由器 (ABR) 的边界上完成。
虽然任意两个区域之间都配置了汇总,但最好在主干方向进行汇总。这样,主干接收所有汇聚地址,然后将其注入到其他区域(已汇总)。
有两类汇总:
区域间路由汇总在 ABR 上完成,适用于从 AS 内部发起的路由。它无法通过重分配应用到注入 OSPF 的外部路由。
为了利用总结,区域中的网络号必须连续分配,以将这些地址整合成一个范围。
要指定地址范围,请在路由器配置模式下执行此任务:
area area-id range address mask
其中area-id是包含要汇总的网络的区域。“地址”和“掩码”指定在一个范围内汇总的地址范围。以下是总结示例:
在此图中,RTB将从172.16.0.64到172.16.0.95的子网范围归为一个范围:172.16.0.64 255.255.224.0。为此,请使用掩码255.255.224.0对前3个最左边的64位进行掩码。
同样,RTC生成总结地址172.16.0.96 255.255.224.0到主干。请注意,此汇总成功是因为我们有两个不同的子网范围 64-95 和 96-127。
如果区域1和区域2之间的子网重叠,则很难进行汇总。骨干网将接收重叠的汇总范围,中间的路由器无法了解基于汇总地址发送通信的目标位置。
这是RTB的相对配置:
RTB# router ospf 100 area 1 range 172.16.0.64 255.255.224.0
在Cisco IOS®软件版本12.1(6)之前,建议在ABR上手动配置总结地址的丢弃静态路由,以防止可能出现的路由环路。对于所示的总结路由,请使用以下命令:
ip route 172.16.0.64 255.255.224.0 null0
在Cisco IOS® 12.1(6)及更高版本中,默认情况下会自动生成丢弃路由。要放弃路由,请在以下位置配置命令 router ospf
:
[no] discard-route internal
[no] discard-route external
有关汇总地址度量计算的说明:调用RFC 1583,以根据可用组件路径的最小度量计算汇总路由的度量。
RFC 2178(现已被RFC 2328淘汰)更改了计算汇总路由度量的指定方法,因此具有最大(或最大)开销的汇总组件将确定汇总开销。
在Cisco IOS® 12.0之前,Cisco符合当时的RFC 1583。从Cisco IOS® 12.0开始,Cisco将OSPF的行为更改为符合新标准RFC 2328。
这种情况使得如果某一区域内的所有 ABR 未同时升级到新代码,则可能存在次优路由。
为了解决此潜在问题,Cisco IOS®的OSPF配置中添加了一个命令,允许您选择性地禁用与RFC 2328的兼容性。
新的配置命令位于 router ospf
的语法为:
[no] compatible rfc1583
默认参数与RFC 1583兼容。此命令在以下版本的Cisco IOS®中可用:
外部路由汇总特定于通过重分配注入 OSPF 的外部路由。此外,请确保汇总的外部范围是连续的。
从两台不同的路由器总结重叠范围可能会导致数据包发送到错误的目的地。汇总通过 router ospf
子命令:
summary-address ip-address mask
此命令仅对ASBR重分发到OSPF有效。
在此图中,RTA和RTD通过重分发将外部路由注入OSPF。RTA注入范围128.213.64-95的子网,RTD注入范围128.213.96-127的子网。要将每台路由器上的子网汇总为一个范围,请执行以下操作:
RTA# router ospf 100 summary-address 172.16.0.64 255.255.224.0 redistribute bgp 50 metric 1000 subnets RTD# router ospf 100 summary-address 172.16.0.96 255.255.224.0 redistribute bgp 20 metric 1000 subnets
这会导致RTA生成一个外部路由172.16.0.64 255.255.224.0,并导致RTD生成172.16.0.96 255.255.224.0。
请注意, summary-address
命令在RTB上使用时无效,因为RTB不执行到OSPF的重分发。
OSPF 允许将某些区域配置为末节区域。外部网络(如从其他协议重分配到 OSPF 中的外部网络)不允许泛洪到末节区域中。
从这些区域到外界的路由基于默认路由。末节区域配置可减小区域内部的拓扑数据库大小,并降低该区域内路由器的内存要求。
符合以下条件的区域可以作为末节区域:该区域存在单个出口点,或者到区域外部的路由不必采用最优路径。
后面说明表示具有多个出口点的末节区域也具有一个或多个区域边界路由器,这些路由器将默认设置注入该区域。
到外部世界的路由可能采用次优路径,通过比其它出口点更靠近目的地的出口点到达目的地之外的区域。
其他末节区域限制是末节区域不能用作虚拟链路的中转区域。此外,ASBR 不能处于末节区域内部。
之所以存在这些限制,是因为末节区域主要配置为不承载外部路由,并且这些情况中的任何一种都会导致外部链路注入到该区域。主干不能配置为末节。
末节区域内的所有 OSPF 路由器都必须配置为末节路由器。当某个区域被配置为末节时,属于该区域的所有接口交换带有指示该接口为末节标志的Hello数据包。
实际上这只是 Hello 数据包中设置为 0 的一个位(E 位)。具有公共分段的所有路由器都必须就该标志达成一致。否则,它们不会成为邻居,路由也不会生效。
末节区域的扩展称为完全末节区域。思科通过添加 no-summary
末节区域配置的关键字。
完全末节区域是阻止外部路由和汇总路由(区域间路由)进入该区域的区域。
这样,只有区域内路由和默认的 0.0.0.0 路由会注入该区域。
area
stub [no-summary]
area area-id default-cost cost
如果该命令未设置开销,则ABR会通告开销1。
假设区域 2 配置为末节区域。本示例显示区域2末节配置之前和之后的RTE路由表。
RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:06:31, Serial0 198.51.100.1 is variably subnetted, 2 subnets, 2 masks O E2 172.16.0.64 255.255.192.0 [110/10] via 203.0.113.151, 00:00:29, Serial0 O IA 172.16.0.63 255.255.255.252 [110/84] via 203.0.113.151, 00:03:57, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:00:10, Serial0
RTE已获知区域间路由(O IA)203.0.113.140和172.16.0.63,并已获知区域内路由(O)172.16.0.208和外部路由(O E2)172.16.0.64。
要将区域2配置为末节区域,请执行以下操作:
RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 area 2 stub RTE# interface Serial1 ip address 203.0.113.152 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 area 2 stub
请注意, stub
命令,否则RTE不会成为RTC的邻居。未设置默认开销,因此RTC使用度量1向RTE通告0.0.0.0。
RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.151 to network 0.0.0.0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:26:58, Serial0 198.51.100.1 255.255.255.252 is subnetted, 1 subnets O IA 172.16.0.63 [110/84] via 203.0.113.151, 00:26:59, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:26:59, Serial0 O*IA 0.0.0.0 0.0.0.0 [110/65] via 203.0.113.151, 00:26:59, Serial0
请注意,除了替换为默认路由 0.0.0.0 的外部路由外,会显示所有路由。路由的成本为 65(T1 线路的 64 + 由 RTC 通告的 1)。
现在,我们将区域2配置为完全末节区域,并将默认开销0.0.0.0更改为10。
RTC# interface Ethernet 0 ip address 203.0.113.141 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 area 2 stub no-summary area 2 default cost 10 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 172.16.0.108 255.255.255.240 is subnetted, 1 subnets O 172.16.0.208 [110/74] via 203.0.113.151, 00:31:27, Serial0 O*IA 0.0.0.0 0.0.0.0 [110/74] via 203.0.113.151, 00:00:00, Serial0
请注意,只显示区域内路由 (O) 和默认路由 0.0.0.0。阻止了外部和区域间路由。
默认路由的成本现在是 74(T1 线路的 64 + 由 RTC 通告的 10)。在这种情况下,无需在RTE上进行配置。
区域已经是末节区域, no-summary
命令不会影响Hello数据包,因为 stub
命令可以。
将路由从其他路由协议或从静态重分发到OSPF会导致这些路由成为OSPF外部路由。要将路由重分发到OSPF,请在路由器配置模式下使用此命令:
redistribute protocol [process-id] [metric value] [metric-type value] [route-map map-tag] [subnets]
注意:此命令必须在一行上。
protocol和process-id是我们插入到OSPF中的协议,如果存在,则其进程id。该度量是分配给外部路由的开销。
如果未指定度量,OSPF会将默认值为20,此时将从除BGP路由以外的所有协议重分发路由,BGP路由的度量为1。“metric-type”将在下一段落讨论。
“route-map”是用于控制路由在路由域之间重分配的方法。路由映射的格式为:
route-map map-tag [[permit | deny] | [sequence-number]]
通过路由重分发到OSPF,只有未划分子网的路由在 subnets
未指定关键字。
外部路由分为两类:外部类型 1 和外部类型 2。两者之间的差异在于路由开销(度量)的计算方式。
类型 2 路由的成本始终为外部成本,与到达该路由的内部成本无关。
类型 1 成本是用于到达该路由的外部成本和内部成本之和。
对于同一目标,类型 1 路由始终优先于类型 2 路由。
如图所示,RTA将两个外部路由重分发到OSPF。N1 和 N2 的外部成本均为 x。唯一的区别是 N1 使用度量类型 1 重分配到 OSPF 中,而 N2 使用度量类型 2 进行重分配。
如果跟踪从区域1到区域0的路由,则从RTB或RTC到N2的开销始终为x。未考虑此路线的内部成本。另一方面,到达 N1 的成本需加上内部成本。从 RTB 来看,成本为 x+y,从 RTC 来看,成本为 x+y+z。
如果这两个外部路由都是类型 2 路由,并且到目标网络的外部成本相等,则会选择到 ASBR 成本最低的路径作为最佳路径。
除非另外指定,否则为外部路由指定的默认外部类型是类型 2。
假设我们添加了指向RTC上E0的两条静态路由:10.0.0.16 255.255.255.0(/24表示从最左侧开始的24位掩码)和198.51.100.1 255.255.0.0。
这显示了当在 redistribute
命令:
RTC# interface Ethernet0 ip address 203.0.113.142 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute static network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 ip route 10.0.0.16 255.255.255.0 Ethernet0 ip route 198.51.100.1 255.255.0.0 Ethernet0 RTE# interface Serial0 ip address 203.0.113.152 255.255.255.252 router ospf 10 network 203.0.113.150 0.0.0.255 area 2
的输出 show ip route
在RTE:
RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:02:31, Serial0 O E2 198.51.100.1 [110/20] via 203.0.113.151, 00:02:32, Serial0
请注意,出现的唯一外部路由是198.51.100.1,因为我们未使用 subnet
关键字.请记住,如果 subnet
不使用关键字,仅重分发未划分子网的路由。在我们的例子中,10.0.0.16 是未进行子网划分的 A 类路由,未进行重分配。自 metric
未使用关键字(或 default-metric
语句),分配给外部路由的开销为20(BGP的默认开销为1)。
redistribute static metric 50 subnets RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 10.0.0.16 255.255.255.0 is subnetted, 1 subnets O E2 10.0.0.16 [110/50] via 203.0.113.151, 00:00:02, Serial0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:00:02, Serial0 O E2 198.51.100.1 [110/50] via 203.0.113.151, 00:00:02, Serial0
请注意,现在显示了 10.0.0.16,并且到外部路由的成本是 50。因为外部路由是类型 2 (E2),所以未加上内部成本。假设现在我们将类型更改为 E1:
redistribute static metric 50 metric-type 1 subnets RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 10.0.0.16 255.255.255.0 is subnetted, 1 subnets O E1 10.0.0.16 [110/114] via 203.0.113.151, 00:04:20, Serial0 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:09:41, Serial0 O E1 198.51.100.1 [110/114] via 203.0.113.151, 00:04:21, Serial0
请注意,类型更改为 E1,并且成本加上了内部成本 S0(值为 64),因而总成本为 64+50=114。
假设我们将路由映射添加到RTC配置:
RTC# interface Ethernet0 ip address 203.0.113.142 255.255.255.0 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute static metric 50 metric-type 1 subnets route-map STOPUPDATE network 203.0.113.150 0.0.0.255 area 2 network 203.0.113.140 0.0.0.255 area 0 ip route 10.0.0.16 255.255.255.0 Ethernet0 ip route 198.51.100.1 255.255.0.0 Ethernet0 access-list 1 permit 198.51.100.1 0.0.255.255 route-map STOPUPDATE permit 10 match ip address 1
路由映射仅允许将198.51.100.1重分发到OSPF中,并拒绝其余路由。这就是为什么10.0.0.16不再出现在RTE路由表中。
RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.252 is subnetted, 1 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.140 [110/74] via 203.0.113.151, 00:00:04, Serial0 O E1 198.51.100.1 [110/114] via 203.0.113.151, 00:00:05, Serial0
每次将 OSPF 重分配到其他协议中时,都必须遵守那些协议的规则。具体而言,应用的度量必须与该协议使用的度量匹配。
例如,RIP度量是介于1和16之间的跳数,其中1表示网络相距一跳,16表示网络不可达。另一方面,IGRP和EIGRP需要如下形式的度量:
default-metric bandwidth delay reliability loading mtu
另一个需要考虑的问题是 VLSM(可变长度子网指南)(附录 C)。OSPF 可以携带同一个主网的多个子网信息,但是其他协议不能,如 RIP 和 IGRP(EIGRP 对于 VLSM 具有此功能)。
如果同一个主网跨越OSPF和RIP域的边界,则重分发到RIP或IGRP的VLSM信息将丢失,并且必须在RIP或IGRP域中配置静态路由。此示例说明了此问题。
在此图中,RTE运行OSPF,RTA运行RIP。RTC执行两个协议之间的重分发。问题在于C类网络203.0.113.150以可变方式划分子网,它有两个不同的掩码255.255.255.252和255.255.255.192。
以下是RTE和RTA的配置和路由表:
RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router rip network 203.0.113.150 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.252 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 2 network 203.0.113.150 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 is variably subnetted, 2 subnets, 2 masks C 203.0.113.150 255.255.255.252 is directly connected, Serial0 O 203.0.113.64 255.255.255.192 [110/74] via 203.0.113.151, 00:15:55, Serial0 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 1 subnets C 203.0.113.64 is directly connected, Ethernet0
请注意,RTE 已识别出 203.0.113.150 有两个子网,而 RTA 认为只有一个子网(在接口上配置的那个子网)。
关于子网 203.0.113.150 255.255.255.252 的信息在 RIP 域中丢失。若要到达该子网,需要在 RTA 上配置静态路由:
RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router rip network 203.0.113.150 ip route 203.0.113.150 255.255.255.0 203.0.113.67
这样,RTA可以到达其他子网。
协议之间的相互重分发必须以非常谨慎且受控的方式进行。不正确的配置可能会导致潜在的路由信息循环。
相互重分配的一种经验做法是不允许将从某个协议了解的信息注入回同一个协议。
必须在重分发路由器上应用被动接口和分发列表。使用链路状态协议(如OSPF)过滤信息非常困难。
Distribute-list out
在ASBR上工作以过滤重分发到其他协议中的路由。 Distribute-list in
可在任何路由器上使用以防止来自路由表的路由,但不会阻止链路状态数据包的传播;下游路由器仍将拥有路由。
如果可以在其他协议上应用过滤器来防止环路,最好尽量避免使用任何OSPF过滤器。
举例来说,假设RTA、RTC和RTE运行RIP。RTC和RTA也运行OSPF。RTC和RTA都会在RIP和OSPF之间进行重分发。
如果不希望将来自RTE的RIP注入OSPF域,请在RTC的E0上为RIP放置一个被动接口。但是,您已允许将RTA中的RIP注入OSPF。下面是结果:
注:请勿使用此配置。
RTE# interface Ethernet0 ip address 203.0.113.15130 255.255.255.192 interface Serial0 ip address 203.0.113.152 255.255.255.192 router rip network 203.0.113.150 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 2 passive-interface Ethernet0 network 203.0.113.150 RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 1 network 203.0.113.150 RTC#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.15128 [120/1] via 203.0.113.68, 00:01:08, Ethernet0 [120/1] via 203.0.113.152, 00:00:11, Serial1 O 203.0.113.15192 [110/20] via 203.0.113.68, 00:21:41, Ethernet0
请注意,RTC有两条路径可到达203.0.113.15128子网:Serial 1和Ethernet 0(E0显然路径错误)。出现这种情况是因为 RTC 通过 OSPF 提供到 RTA 的该入口,而 RTA 通过 RIP 将其传回(因为 RTA 无法通过 RIP 了解该入口)。
此示例是由于不正确的配置可能导致的超小规模环路。在大型网络中,这种情况更加严重。
要解决本例中的问题,请不要通过被动接口在RTA Ethernet 0上发送RIP。如果以太网上的某些路由器是仅使用RIP的路由器,则此命令不适用。
在这种情况下,您可以允许RTC在以太网上发送RIP;这样,由于水平分割,RTA不会将其重新发送到线路上(如果水平分割关闭,则在NBMA介质上无法执行此操作)。
水平拆分不允许将更新发送回从其了解这些更新的同一个接口(通过相同的协议)。
另一种好的方法是在RTA上应用分发列表,以拒绝通过OSPF获知的子网返回以太网上的RIP。使用后者:
RTA# interface Ethernet0 ip address 203.0.113.68 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 router rip redistribute ospf 10 metric 1 network 203.0.113.150 distribute-list 1 out ospf 10
RTC路由表的输出为:
RTF#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is not set 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.15128 [120/1] via 203.0.113.152, 00:00:19, Serial1 O 203.0.113.15192 [110/20] via 203.0.113.68, 00:21:41, Ethernet0
可以强制自治系统边界路由器 (ASBR) 生成到 OSPF 域中的默认路由。每当将路由重分发到OSPF域时,路由器就会成为ASBR。
但是在默认情况下,ASBR 不生成到 OSPF 路由域中的默认路由。
要让OSPF生成默认路由,请使用:
default-information originate [always] [metric metric-value] [metric-type type-value] [route-map map-name]
注意:此命令必须在一行上。
有两种方式可以生成默认路由。第一种是在域中通告 0.0.0.0,但仅当 ASBR 本身已具有一个默认路由时才这样做。第二种是无论 ASBR 是否具有默认路由都通告 0.0.0.0。后者可以使用关键字进行设置 always
.
请谨慎操作 always
使用关键字。如果您的路由器通告域内的默认(0.0.0.0)且自身没有默认或到达目标的路径,则路由会中断。
度量和度量类型是分配给默认路由的成本和类型(E1 或 E2)。路由映射指定生成默认路由需要满足的一组条件。
假设RTE向RIP中注入默认路由0.0.0.0。RTC具有最后选用网关203.0.113.152。RTC不会将默认路由传播到RTA,直到我们使用 default-information originate
命令。
RTC#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.152 to network 0.0.0.0 203.0.113.150 255.255.255.192 is subnetted, 4 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 R 203.0.113.15128 [120/1] via 203.0.113.152, 00:00:17, Serial1 O 203.0.113.15192 [110/20] via 203.0.113.68, 2d23, Ethernet0 R* 0.0.0.0 0.0.0.0 [120/1] via 203.0.113.152, 00:00:17, Serial1 [120/1] via 203.0.113.68, 00:00:32, Ethernet0 RTC# interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.255 area 0 default-information originate metric 10 router rip redistribute ospf 10 metric 2 passive-interface Ethernet0 network 203.0.113.150 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.67 to network 0.0.0.0 203.0.113.150 255.255.255.192 is subnetted, 4 subnets O 203.0.113.150 [110/74] via 203.0.113.67, 2d23, Ethernet0 C 203.0.113.64 is directly connected, Ethernet0 O E2 203.0.113.15128 [110/10] via 203.0.113.67, 2d23, Ethernet0 C 203.0.113.15192 is directly connected, Ethernet1 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.67, 00:00:17, Ethernet0
请注意,RTA 已了解 0.0.0.0 是度量为 10 的外部路由。最后选用网关按照预期设置为 203.0.113.67。
对于区域中的路由器数量、每个分段的邻居数量或构建网络的最佳方法这些方面,OSPF RFC (1583) 没有指定任何指导。
OSPF网络设计有多种不同的方法。重要的是要记住任何协议在压力下都可能失败。
不要对协议吹毛求疵,而要使用协议获得最佳行为。
每个区域的最大路由器数量取决于几个因素:
因此,很难指定每个区域的最大路由器数量。请咨询您当地的销售或系统工程师以获取特定网络设计帮助。
连接到同一 LAN 的路由器数也很重要。每个 LAN 都有与所有其他路由器生成邻接的 DR 和 BDR。
LAN上存在的邻居越少,DR或BDR必须建立的邻接关系就越少。这取决于路由器的功率。
您可以随时更改 OSPF 优先级以选择 DR。避免在多个网段上使用与DR相同的路由器。
如果 DR 选择基于最高 RID,则一个路由器可能意外地成为所连接到的所有分段的 DR。当其他路由器空闲时,此路由器需要额外工作。
ABR为其服务的所有区域保留数据库的副本。例如,如果路由器连接到五个区域,则必须保留五个不同数据库的列表。
每个ABR的区域数是取决于许多因素的数字,包括区域类型(正常、末节、NSSA)、ABR CPU功率、每个区域的路由数以及每个区域的外部路由数。
因此,无法建议每个 ABR 具有特定数量的区域。当您始终可以在其它路由器上分布区域时,不宜过载ABR。
下图显示了包含五个不同数据库(包括区域0)的一个ABR与每个包含三个数据库的两个ABR之间的区别。
这些只是指导方针。每个ABR配置的区域越多,性能越低。在某些情况下,较低性能是可以容忍的。
低带宽和过多的链路状态(与帧中继或X.25等非广播多路访问(NBMA)云相关联)的组合始终是一项挑战
经证明,部分网状拓扑比全网状拓扑表现更好。经过仔细布局的点对点或点对多点网络比必须处理 DR 问题的多点网络要好得多。
计算出特定 OSPF 配置所需的内存并不容易。当太多外部路由注入 OSPF 域时,通常会发生内存问题。
与具有 4 台路由器并将 33,000 个外部路入注入 OSPF 的骨干网区域相比,具有 40 台路由器和一个到外界的默认路由的骨干网区域具有较少的内存问题。
通过良好的OSPF设计也可以节省内存。区域边界路由器上的汇总和末节区域的使用可以进一步使交换的路由数减到最小。
OSPF使用的总内存是路由表中使用的内存的总和(show ip route summary
)和链路状态数据库中使用的内存。
这些数字是经验法则的估计。路由表中的每个条目大约消耗200到280个字节,加上每条额外路径消耗44个字节。
每个LSA消耗一个100字节的开销加上实际链路状态通告的大小,可能还会消耗60到100字节(对于路由器链路,这取决于路由器上的接口数量)。
这必须添加到其他进程和Cisco IOS®本身所使用的内存中。要了解确切数字,请运行 show memory
无论是否打开OSPF。
两种情况下所使用的处理器内存之差就是答案(请保留配置的备份副本)。
通常,小于500K字节的路由表可以容纳2到4 MB RAM;如果从Internet注入了完整路由,则大于500K的大型网络需要8到16 MB,或32到64 MB。
RFC 1583中定义的OSPF协议提供高功能的开放式协议,允许多个供应商网络与TCP/IP协议系列通信。
OSPF 的优点有快速收敛、VLSM、身份验证、层次结构分段、路由汇总和聚合等,这些都是处理大型复杂网络所需要的。
在此图中,同一网段上的路由器在形成成功邻接之前经历一系列状态。邻居和 DR 选择通过 Hello 协议进行。
当路由器在其邻居Hello数据包中看到自身时,状态会转换为“双向”。此时会在多路访问分段上进行 DR 和 BDR 选择。
如果两个路由器中的任何一个是DR或BDR,或者它们通过点对点或虚拟链路连接,则路由器会继续与邻居形成邻接关系。
在Exstart状态下,两个邻居形成主/次关系,它们就初始序列号达成一致。该序号用于检测旧的或重复的链路状态通告 (LSA)。
在Exchange状态下,Database Description Packets(DD)被交换。这些是链路状态报头形式的缩写链路状态通告。报头提供足够的信息来标识链路。
主节点发送与辅助节点的DD数据包确认的DD数据包。泛洪过程使用处于交换状态或更高状态的所有邻接。
这些邻接完全能够传输和接收所有类型的OSPF路由协议数据包。
在Load状态下,链路状态请求数据包被发送到邻居,以请求已发现但尚未接收的较新通告。每个路由器都生成保持其邻接处于最新状态所必需的 LSA 列表。
会维护一个转发列表,以确保每个 LSA 都得到确认。若要为邻接指定链路状态通告转发之间的秒数,可以使用下面的命令:
ip ospf retransmit-interval seconds
会发送链路状态更新数据包以响应请求数据包。链路状态更新数据包会泛洪到所有邻接关系。
在 Full 状态中,邻居路由器完全邻接。公共区域数据库是邻接路由器之间的完全匹配。
每个 LSA 都有一个 age 字段,当该字段包含在数据库中或在整个区域泛洪时,该字段会定期递增。当某个 LSA 达到 Maxage 时,如果该 LSA 不在任何邻居转发列表中,则该字段会从数据库进行刷新。
链路状态通告分为五种类型。路由器链路 (RL) 由所有路由器生成。这些链路描述特定区域里路由器接口的状态。
这些链路仅在路由器区域内泛洪。网络链路(NL)由特定网段的DR生成;这些表示连接到该网段的路由器。
汇总链路(SL)是区域间链路(第3类);这些链路列出了其他区域内部但仍属于自治系统的网络。
汇总链路由 ABR 从骨干网注入其他区域和从其他区域注入骨干网。这些链路用于区域之间的聚合。
其他类型的汇总链路是 ASBR 汇总链路。这些是指向 ASBR 的类型 4 链路。这是为了确保所有路由器都知道退出自治系统的方式。
最后一种类型是类型 5 外部链路 (EL),这些链路由 ASBR 注入域。
上图说明了不同的链路类型。RTA 生成一条到区域 1 中的路由器链路 (RL),还生成一条网络链路 (NL),因为它恰巧是该特定分段上的 DR。
RTB是ABR,它将RL生成到区域1和区域0。RTB还会生成到区域1和区域0的总结链路。这些链路是在两个区域之间交换的网络列表。
RTB 还向区域 1 注入一条 ASBR 汇总链路。这表示存在 RTD,即自治系统边界路由器 (ASBR)。
类似地,作为另一个ABR的RTC为区域0和区域2生成RL,并将SL(3)生成到区域2(因为它不通告任何ASBR),并将SL(3,4)生成到区域0以通告RTD。
RTD 为区域 2 生成 RL,并为通过 BGP 了解的外部路由生成 EL。外部路由器在整个域中泛洪。
此表概述了链路状态通告。
LS 类型 | 通告说明 |
---|---|
1 | 路由器链路通告。由每台路由器为其所属的每个区域生成。它们描述通向区域的路由器链路的状态。这些通告仅在特定区域内泛洪。 |
2 | 网络链路通告。由指定路由器生成。它们描述连接到特定网络的路由器集合。在包含该网络的区域内泛洪。 |
3 或 4 | 汇总链路通告。由区域边界路由器生成。它们描述区域间(区域之间)路由。第3类描述通往网络的路由,也用于汇聚路由。类型 4 描述到 ASBR 的路由。 |
5 | AS 外部链路通告。由 ASBR 发起。它们描述到 AS 外部目标的路由。在除末节区域外的所有区域泛洪。 |
如果详细查看OSPF数据库, show ip ospf database detail
,有不同的关键字,例如 Link-Data
, Link-ID
,和 Link-state ID
.这些术语变得不一致,因为每个术语的值取决于链路状态类型和链路类型。
我们将回顾此术语,并提供从路由器看到的OSPF数据库的详细示例。
Link-State ID 基本上定义取决于 LS 类型的链路状态标识。
路由器链路通过发起通告的路由器的路由器 ID (RID) 进行标识。
网络链路通过 DR 的相对 IP 地址进行标识。这样做十分有意义,因为网络链路由指定路由器发起。
汇总链路(第3类)由它们指向的目的地的IP网络编号标识。
ASBR 汇总链路(汇总链路类型 4)通过 ASBR 的 RID 进行标识。
外部链路由它们指向的外部目标的IP网络编号标识。此表汇总了以下信息:
LS 类型 | 链路状态ID(在引用路由器时的数据库高级视图中,这称为链路ID) |
---|---|
1 | 源路由器ID(RID)。 |
2 | 网络指定路由器的IP接口地址。 |
3 | 目标网络编号。 |
4 | 所描述的 AS 边界路由器的路由器 ID。 |
5 | 外部网络编号。 |
可用的不同链接:
末节网络链路:此术语与末节区域无关。末节分段是只连接了一个路由器的分段。
连接了一个路由器的以太网或令牌环分段视为到末节网络的链路。环回接口也视为使用 255.255.255.255 掩码(主机路由)、到末节网络的链路。
点对点链路:这些链路可以是物理或逻辑(子接口)点对点串行链路连接。这些链路可以是编号(在链路上配置 IP 地址)或不编号的。
传输链路:这些接口连接到连接了多台路由器的网络,因此称为传输。
虚拟链路:这些逻辑链路将没有物理连接的区域连接到主干。虚拟链路视为编号的点对点链路。
link-ID 是链路本身的标识。这对于每种链路类型都是不同的。
中转链路通过该链路上 DR 的 IP 地址进行标识。
编号的点对点链路通过点对点链路上邻居路由器的 RID 进行标识。
虚拟链路与点对点链路相同。
末节网络链路通过连接到末节网络的接口的IP地址来标识。此表汇总了以下信息:
链路类型 | Link ID(这适用于单个链路) |
---|---|
点对点 | 邻居路由器 ID |
到中转网络的链路 | DR 的接口地址 |
到末节网络的链路(在环回掩码为 255.255.255.255 的情况下) | 网络/子网编号 |
虚拟链路 | 邻居路由器 ID |
链路数据是链路的 IP 地址(除了链路数据是网络掩码的末节网络)。
链路类型 | 链路数据 |
---|---|
末节网络 | 网络掩码 |
其他网络(仅适用于路由器链路) | 路由器 — 关联的IP接口地址 |
最后,通告路由器是发送了 LSA 的路由器的 RID。
根据此网络图、配置和IP路由表,以下是理解OSPF数据库的不同方法。
RTA# interface Loopback0 ip address 203.0.113.41 255.255.255.255 interface Ethernet0 ip address 203.0.113.68 255.255.255.192 interface Ethernet1 ip address 203.0.113.15193 255.255.255.192 router ospf 10 network 203.0.113.100 0.0.255.255 area 0 RTA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.67 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets O E2 203.0.113.1288 [110/10] via 203.0.113.67, 00:00:50, Ethernet0 203.0.113.30 255.255.255.255 is subnetted, 1 subnets C 203.0.113.41 is directly connected, Loopback0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets O IA 203.0.113.150 [110/74] via 203.0.113.67, 00:00:50, Ethernet0 C 203.0.113.64 is directly connected, Ethernet0 C 203.0.113.15192 is directly connected, Ethernet1 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.67, 00:00:50, Ethernet0 RTE# ip subnet-zero interface Ethernet0 ip address 203.0.113.16 255.255.255.192 interface Serial0 ip address 203.0.113.152 255.255.255.192 router ospf 10 redistribute rip metric 10 subnets network 203.0.113.150 0.0.0.63 area 1 default-information originate metric 10 router rip network 203.0.113.128 ip route 0.0.0.0 0.0.0.0 Ethernet0 RTE#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 0.0.0.0 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets C 203.0.113.1288 is directly connected, Ethernet0 203.0.113.30 is variably subnetted, 2 subnets, 2 masks O IA 203.0.113.41 255.255.255.255 [110/75] via 203.0.113.151, 00:16:31, Serial0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets C 203.0.113.150 is directly connected, Serial0 O IA 203.0.113.64 [110/74] via 203.0.113.151, 00:16:31, Serial0 O IA 203.0.113.15192 [110/84] via 203.0.113.151, 00:16:31, Serial0 S* 0.0.0.0 0.0.0.0 is directly connected, Ethernet0 RTC# ip subnet-zero interface Ethernet0 ip address 203.0.113.67 255.255.255.192 interface Serial1 ip address 203.0.113.151 255.255.255.192 router ospf 10 network 203.0.113.64 0.0.0.63 area 0 network 203.0.113.150 0.0.0.63 area 1 RTF#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default Gateway of last resort is 203.0.113.152 to network 0.0.0.0 203.0.113.128 255.255.255.192 is subnetted, 1 subnets O E2 203.0.113.1288 [110/10] via 203.0.113.152, 04:49:05, Serial1 203.0.113.30 255.255.255.255 is subnetted, 1 subnets O 203.0.113.41 [110/11] via 203.0.113.68, 04:49:06, Ethernet0 203.0.113.150 255.255.255.192 is subnetted, 3 subnets C 203.0.113.150 is directly connected, Serial1 C 203.0.113.64 is directly connected, Ethernet0 O 203.0.113.15192 [110/20] via 203.0.113.68, 04:49:06, Ethernet0 O*E2 0.0.0.0 0.0.0.0 [110/10] via 203.0.113.152, 04:49:06, Serial1
数据库常规视图
RTC#show ip ospf database OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.67 203.0.113.67 48 0x80000008 0xB112 2 203.0.113.16 203.0.113.16 212 0x80000006 0x3F44 2 Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 203.0.113.41 203.0.113.67 602 0x80000002 0x90AA 203.0.113.64 203.0.113.67 620 0x800000E9 0x3E3C 203.0.113.15192 203.0.113.67 638 0x800000E5 0xA54E Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.41 203.0.113.41 179 0x80000029 0x9ADA 3 203.0.113.67 203.0.113.67 675 0x800001E2 0xDD23 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.68 203.0.113.41 334 0x80000001 0xB6B5 Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.150 203.0.113.67 792 0x80000002 0xAEBD Summary ASB Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.16 203.0.113.67 579 0x80000001 0xF9AF AS External Link States Link ID ADV Router Age Seq# Checksum Tag 0.0.0.0 203.0.113.16 1787 0x80000001 0x98CE 10 203.0.113.1288 203.0.113.16 5 0x80000002 0x93C4 0
这是整个 OSPF 数据库的概览。数据库按区域列出。在本例中,我们查看RTC数据库,它是ABR。区域 1 和区域 0 的数据库都已列出。
区域 1 由路由器链路和汇总链路组成。不存在网络链路,因为在区域 1 中的任何分段上都不存在 DR。区域1中不存在汇总ASBR链路,因为只有一个ASBR恰好位于区域0中。
外部链路不属于任何特定区域,因为它们会泛洪。请注意,所有链路都是从某一区域中的所有路由器聚集的累积链路。
重点关注区域0中的数据库。这里指示的 Link-ID 实际上是 Link-State ID。这是整个路由器而不是特定链路的表示形式。这似乎有些模糊。
请记住,此高级链路ID(实际上是链路状态ID)代表整个路由器,而不仅仅是链路。
路由器链路
Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 203.0.113.41 203.0.113.41 179 0x80000029 0x9ADA 3 203.0.113.67 203.0.113.67 675 0x800001E2 0xDD23 1
从路由器链路开始。为 203.0.113.41 和 203.0.113.67 列出了两个条目,这些是区域 0 中的两个路由器的 RID。还指出了区域 0 中每个路由器的链路数。RTA 有三条到区域 0 的链路,RTC 有一条链路。RTC路由器链路的详细视图:
RTC#show ip ospf database router 203.0.113.67 OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) LS age: 1169 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000008 Checksum: 0xB112 Length: 48 Area Border Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.16 (Link Data) Router Interface address: 203.0.113.151 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64
这里需要说明的一点是,OSPF 为每个点对点接口生成一个额外末节链路。如果看到链路计数大于物理接口数,请不要疑惑。
Router Link States (Area 0) LS age: 1227 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xA041 Length: 36 Area Border Router Number of Links: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.67 Number of TOS metrics: 0 TOS 0 Metrics: 10
请注意,链路ID等于连接的DR的IP地址(不是RID);在本例中为203.0.113.68。链路数据是RTC IP地址。
网络链路
Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.68 203.0.113.41 334 0x80000001 0xB6B5
列出了一条网络链路,由 DR 的 IP 地址(不是 RID)指示,在本例中为 203.0.113.68。此条目的详细视图:
RTC#show ip ospf database network OSPF Router with ID (203.0.113.67) (Process ID 10) Net Link States (Area 0) Routing Bit Set on this LSA LS age: 1549 Options: (No TOS-capability) LS Type: Network Links Link State ID: 203.0.113.68 (address of Designated Router) Advertising Router: 203.0.113.41 LS Seq Number: 80000002 Checksum: 0xB4B6 Length: 32 Network Mask: 255.255.255.192 Attached Router: 203.0.113.41 Attached Router: 203.0.113.67
请注意,网络链路列出了连接到传输网络的路由器的RID;在本例中,列出了RTA和RTC的RID。
汇总链路
Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.150 203.0.113.67 792 0x80000002 0xAEBD Area 0 has one summary link represented by the IP network address of the link 203.0.113.150. This link was injected by the ABR RTC from area 1 into area 0. A detailed view of this summary link, summary links for area 1 are not listed here: RTC#show ip ospf database summary (area 1 is not listed) Summary Net Link States (Area 0) LS age: 615 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.150 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xACBE Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 64
汇总 ASBR 链路
Summary ASB Link States (Area 0) Link ID ADV Router Age Seq# Checksum 203.0.113.16 203.0.113.67 579 0x80000001 0xF9AF
这指示哪个路由器 ASBR。在本例中,ASBR 是由其 RID 203.0.113.16 表示的 RTE。此条目到区域 0 中的通告路由器是 RID 为 203.0.113.67 的 RTC。汇总ASBR条目的详细视图:
RTC#show ip ospf database asbr-summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary ASB Link States (Area 0) LS age: 802 Options: (No TOS-capability) LS Type: Summary Links(AS Boundary Router) Link State ID: 203.0.113.16 (AS Boundary Router address) Advertising Router: 203.0.113.67 LS Seq Number: 80000003 Checksum: 0xF5B1 Length: 28 Network Mask: 0.0.0.0 TOS: 0 Metric: 64
外部链路
AS External Link States Link ID ADV Router Age Seq# Checksum Tag 0.0.0.0 203.0.113.16 1787 0x80000001 0x98CE 10 203.0.113.1288 203.0.113.16 5 0x80000002 0x93C4 0
我们有两个外部链路,第一个是通过 default-information originate
命令。
另一条是通过重分配注入 OSPF 的网络 203.0.113.128 8。
通告这些网络的路由器是 203.0.113.16(RTE 的 RID)。
以下是外部路由的详细视图:
RTC#show ip ospf database external OSPF Router with ID (203.0.113.67) (Process ID 10) AS External Link States Routing Bit Set on this LSA LS age: 208 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 0.0.0.0 (External Network Number ) Advertising Router: 203.0.113.16 LS Seq Number: 80000002 Checksum: 0x96CF Length: 36 Network Mask: 0.0.0.0 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 10 Routing Bit Set on this LSA LS age: 226 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 203.0.113.1288 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000002 Checksum: 0x93C4 Length: 36 Network Mask: 255.255.255.192 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 0
请注意转发地址。每当此地址为0.0.0.0时,它表示外部路由可以通过通告路由器(本例中为203.250.16.130)到达。
这就是为什么ABR会将ASBR的身份注入使用ASBR汇总链路的其他区域。
此转发地址并不总是 0.0.0.0。在某些情况下,此地址可以是同一分段上其他路由的 IP 地址。下图说明了这种情况:
在这种情况下,RTB运行BGP和RTA,OSPF运行域其余部分。RTA不运行OSPF。RTB将BGP路由重分发到OSPF。
根据OSPF,RTB是通告外部路由的ASBR。在本例中,转发地址设置为 172.16.0.11,而不是通告路由器 (0.0.0.0) RT B。
没有必要进行额外的跳跃。OSPF域内的路由器必须通过OSPF到达转发地址,外部路由才能放入IP路由表中。
如果通过某些其他协议到达转发地址或不可访问转发地址,则外部条目将位于数据库中,但不在 IP 路由表中。
如果RTB和RTC都是ASBR(RTC运行带RTA的BGP),则会出现另一种情况。在这种情况下,为了消除重复工作,两台路由器中的一台不会通告(刷新)外部路由。具有较高RID的路由器优先。
完整数据库
这是整个数据库的列表作为一个练习。现在您可以查看并解释每个条目:
RTC#show ip ospf database router OSPF Router with ID (203.0.113.67) (Process ID 10) Router Link States (Area 1) LS age: 926 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000035 Checksum: 0x573F Length: 48 Area Border Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.16 (Link Data) Router Interface address: 203.0.113.151 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64 Routing Bit Set on this LSA LS age: 958 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.16 Advertising Router: 203.0.113.16 LS Seq Number: 80000038 Checksum: 0xDA76 Length: 48 AS Boundary Router Number of Links: 2 Link connected to: another Router (point-to-point) (Link ID) Neighbor Router ID: 203.0.113.67 (Link Data) Router Interface address: 203.0.113.152 Number of TOS metrics: 0 TOS 0 Metrics: 64 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.150 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 64 Router Link States (Area 0) Routing Bit Set on this LSA LS age: 1107 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.41 Advertising Router: 203.0.113.41 LS Seq Number: 8000002A Checksum: 0xC0B0 Length: 60 AS Boundary Router Number of Links: 3 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.41 (Link Data) Network Mask: 255.255.255.255 Number of TOS metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 203.0.113.15192 (Link Data) Network Mask: 255.255.255.192 Number of TOS metrics: 0 TOS 0 Metrics: 10 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.68 Number of TOS metrics: 0 TOS 0 Metrics: 10 LS age: 1575 Options: (No TOS-capability) LS Type: Router Links Link State ID: 203.0.113.67 Advertising Router: 203.0.113.67 LS Seq Number: 80000028 Checksum: 0x5666 Length: 36 Area Border Router Number of Links: 1 Link connected to: a Transit Network (Link ID) Designated Router address: 203.0.113.68 (Link Data) Router Interface address: 203.0.113.67 Number of TOS metrics: 0 TOS 0 Metrics: 10 RTC#show ip ospf database network OSPF Router with ID (203.0.113.67) (Process ID 10) Net Link States (Area 0) Routing Bit Set on this LSA LS age: 1725 Options: (No TOS-capability) LS Type: Network Links Link State ID: 203.0.113.68 (address of Designated Router) Advertising Router: 203.0.113.41 LS Seq Number: 80000026 Checksum: 0x6CDA Length: 32 Network Mask: 255.255.255.192 Attached Router: 203.0.113.41 Attached Router: 203.0.113.67 RTC#show ip ospf database summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary Net Link States (Area 1) LS age: 8 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.41 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000029 Checksum: 0x42D1 Length: 28 Network Mask: 255.255.255.255 TOS: 0 Metric: 11 LS age: 26 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.64 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000030 Checksum: 0xB182 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 10 LS age: 47 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.15192 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000029 Checksum: 0x1F91 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 20 Summary Net Link States (Area 0) LS age: 66 Options: (No TOS-capability) LS Type: Summary Links(Network) Link State ID: 203.0.113.150 (summary Network Number) Advertising Router: 203.0.113.67 LS Seq Number: 80000025 Checksum: 0x68E0 Length: 28 Network Mask: 255.255.255.192 TOS: 0 Metric: 64 RTC#show ip ospf asbr-summary OSPF Router with ID (203.0.113.67) (Process ID 10) Summary ASB Link States (Area 0) LS age: 576 Options: (No TOS-capability) LS Type: Summary Links(AS Boundary Router) Link State ID: 203.0.113.16 (AS Boundary Router address) Advertising Router: 203.0.113.67 LS Seq Number: 80000024 Checksum: 0xB3D2 Length: 28 Network Mask: 0.0.0.0 TOS: 0 Metric: 64 RTC#show ip ospf database external OSPF Router with ID (203.0.113.67) (Process ID 10) AS External Link States Routing Bit Set on this LSA LS age: 305 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 0.0.0.0 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000001 Checksum: 0x98CE Length: 36 Network Mask: 0.0.0.0 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 10 Routing Bit Set on this LSA LS age: 653 Options: (No TOS-capability) LS Type: AS External Link Link State ID: 203.0.113.1288 (External Network Number) Advertising Router: 203.0.113.16 LS Seq Number: 80000024 Checksum: 0x4FE6 Length: 36 Network Mask: 255.255.255.192 Metric Type: 2 (Larger than any link state path) TOS: 0 Metric: 10 Forward Address: 0.0.0.0 External Route Tag: 0
OSPF 使用 IP 多播交换 Hello 数据包和链路状态更新。使用D类地址实施IP组播地址。D 类地址的范围是从 224.0.0.0 到 239.255.255.255。
为 OSPF 保留了一些特殊 IP 多播地址:
IP组播地址和MAC地址之间的映射有以下规则:
对于支持多播的多路访问网络,IP 地址的低位 23 位用作 MAC 多播地址 01-005E-00-00- 00 的低位。例如:
OSPF 对令牌环网络使用广播。
这是二进制/十进制转换图:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0000 | 16 | 0000 | 32 | 0000 | 48 | 0000 | 64 | 0000 | 80 | 0000 | 96 | 0000 | 112 | 0000 |
1 | 0001 | 17 | 0001 | 33 | 0001 | 49 | 0001 | 65 | 0001 | 81 | 0001 | 97 | 0001 | 113 | 0001 |
2 | 0010 | 18 | 0010 | 34 | 0010 | 50 | 0010 | 66 | 0010 | 82 | 0010 | 98 | 0010 | 114 | 0010 |
3 | 0011 | 19 | 0011 | 35 | 0011 | 51 | 0011 | 67 | 0011 | 83 | 0011 | 99 | 0011 | 115 | 0011 |
4 | 0100 | 20 | 0100 | 36 | 0100 | 52 | 0100 | 68 | 0100 | 84 | 0100 | 100 | 0100 | 116 | 0100 |
5 | 0101 | 21 | 0101 | 37 | 0101 | 53 | 0101 | 69 | 0101 | 85 | 0101 | 101 | 0101 | 117 | 0101 |
6 | 0110 | 22 | 0110 | 38 | 0110 | 54 | 0110 | 70 | 0110 | 86 | 0110 | 102 | 0110 | 118 | 0110 |
7 | 0111 | 23 | 0111 | 39 | 0111 | 55 | 0111 | 71 | 0111 | 87 | 0111 | 103 | 0111 | 119 | 0111 |
8 | 1000 | 24 | 1000 | 40 | 1000 | 56 | 1000 | 72 | 1000 | 88 | 1000 | 104 | 1000 | 120 | 1000 |
9 | 1001 | 25 | 1001 | 41 | 1001 | 57 | 1001 | 73 | 1001 | 89 | 1001 | 105 | 1001 | 121 | 1001 |
10 | 1010 | 26 | 1010 | 42 | 1010 | 58 | 1010 | 74 | 1010 | 90 | 1010 | 106 | 1010 | 122 | 1010 |
11 | 1011 | 27 | 1011 | 43 | 1011 | 59 | 1011 | 75 | 1011 | 91 | 1011 | 107 | 1011 | 123 | 1011 |
12 | 1100 | 28 | 1100 | 44 | 1100 | 60 | 1100 | 76 | 1100 | 92 | 1100 | 108 | 1100 | 124 | 1100 |
13 个 | 1101 | 29 | 1101 | 45 | 1101 | 61 | 1101 | 77 | 1101 | 93 | 1101 | 109 | 1101 | 125 | 1101 |
14 | 1110 | 30 | 1110 | 46 | 1110 | 62 | 1110 | 78 | 1110 | 94 | 1110 | 110 | 1110 | 126 | 1110 |
15 | 1111 | 31 | 1111 | 47 | 1111 | 63 | 1111 | 79 | 1111 | 95 | 1111 | 111 | 1111 | 127 | 1111 |
1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||||||||
128 | 0000 | 144 | 0000 | 160 | 0000 | 176 | 0000 | 192 | 0000 | 208 | 0000 | 224 | 0000 | 240 | 000 |
129 | 0001 | 145 | 0001 | 161 | 0001 | 177 | 0001 | 193 | 0001 | 209 | 0001 | 225 | 0001 | 241 | 0001 |
130 | 0010 | 146 | 0010 | 162 | 0010 | 178 | 0010 | 194 | 0010 | 210 | 0010 | 226 | 0010 | 242 | 0010 |
131 | 0011 | 147 | 0011 | 163 | 0011 | 179 | 0011 | 195 | 0011 | 211 | 0011 | 227 | 0011 | 243 | 0011 |
132 | 0100 | 148 | 0100 | 164 | 0100 | 180 | 0100 | 196 | 0100 | 212 | 0100 | 228 | 0100 | 244 | 0100 |
133 | 0101 | 149 | 0101 | 165 | 0101 | 181 | 0101 | 197 | 0101 | 213 | 0101 | 229 | 0101 | 245 | 0101 |
134 | 0110 | 150 | 0110 | 166 | 0110 | 182 | 0110 | 198 | 0110 | 214 | 0110 | 230 | 0110 | 246 | 0110 |
135 | 0111 | 151 | 0111 | 167 | 0111 | 183 | 0111 | 199 | 0111 | 215 | 0111 | 231 | 0111 | 247 | 0111 |
136 | 1000 | 152 | 1000 | 168 | 1000 | 184 | 1000 | 200 | 1000 | 216 | 1000 | 232 | 1000 | 248 | 1000 |
137 | 1001 | 153 | 1001 | 169 | 1001 | 185 | 1001 | 201 | 1001 | 217 | 1001 | 233 | 1001 | 249 | 1001 |
138 | 1010 | 154 | 1010 | 170 | 1010 | 186 | 1010 | 202 | 1010 | 218 | 1010 | 234 | 1010 | 250 | 1010 |
139 | 1011 | 155 | 1011 | 171 | 1011 | 187 | 1011 | 203 | 1011 | 219 | 1011 | 235 | 1011 | 251 | 1011 |
140 | 1100 | 156 | 1100 | 172 | 1100 | 188 | 1100 | 204 | 1100 | 220 | 1100 | 236 | 1100 | 252 | 1100 |
141 | 1101 | 157 | 1101 | 173 | 1101 | 189 | 1101 | 205 | 1101 | 221 | 1101 | 237 | 1101 | 253 | 1101 |
142 | 1110 | 158 | 1110 | 174 | 1110 | 190 | 1110 | 206 | 1110 | 222 | 1110 | 238 | 1110 | 254 | 1110 |
143 | 1111 | 159 | 1111 | 175 | 1111 | 191 | 1111 | 二零七 | 1111 | 223 | 1111 | 239 | 1111 | 255 | 1111 |
可变长子网掩码的理念是更灵活地将主网划分为多个子网,并保持每个子网中足够数量的主机。
如果没有VLSM,一个子网掩码只能应用于一个主网络。这在指定了所需子网数时,会限制主机数。
如果选择掩码来保证有足够的子网,则不能在每个子网中分配足够的主机。主机也是如此;允许足够主机的掩码无法提供足够的子网空间。
例如,假设您分配了一个C类网络192.168.0.0,您需要将该网络划分为三个子网,每个子网包含100台主机,其余子网包含50台主机。
忽略两端限制 0 和 255,理论上您有 256 个地址 (192.168.0.0 - 192.168.0.255) 可用。如果不使用 VLSM,则这是不可能实现的。
可以使用少数几个子网掩码;请注意,一个掩码必须具有连续的从左侧开始的1个位数,其余位全部为0。
-252 (1111 1100) The address space is divided into 64. -248 (1111 1000) The address space is divided into 32. -240 (1111 0000) The address space is divided into 16. -224 (1110 0000) The address space is divided into 8. -192 (1100 0000) The address space is divided into 4. -128 (1000 0000) The address space is divided into 2.
如果没有VLSM,您可以选择使用掩码255.255.255.128并将地址划分为2个子网,每个子网128台主机,或者使用255.255.255.192并将空间划分为4个子网,每个子网64台主机。
这无法满足要求。如果使用多个掩码,则您可以使用掩码 128,并使用掩码 192 对地址的第二块进一步进行子网划分。
下表显示了如何划分地址空间:
在将IP地址分配给每个掩码时请务必小心。为路由器或主机分配 IP 地址后,您就用完了该分段的整个子网。
例如,如果将192.168.0.10 255.255.255.128分配给E2,则192.168.0.0和192.168.0.127之间的整个地址范围将被E2占用。
同样,如果您将192.168.0.160 255.255.255.128分配给E2,则192.168.0.128和192.168.0.255之间的整个地址范围将被E2网段占用。
以下示例说明了路由器如何解析这些地址。请记住,无论何时使用不同于自然掩码的掩码(例如创建子网),如果组合IP地址和掩码导致子网为零,路由器都会发出抱怨。
请使用 ip subnet-zero
命令,以解决此问题。
RTA# ip subnet-zero interface Ethernet2 ip address 192.168.0.10 255.255.255.128 interface Ethernet3 ip address 192.168.0.160 255.255.255.192 interface Ethernet4 ip address 192.168.0.226 255.255.255.192 RTA#show ip route connected 192.168.0.0 is variably subnetted, 3 subnets, 2 masks C 192.168.0.0 255.255.255.128 is directly connected, Ethernet2 C 192.168.0.128 255.255.255.192 is directly connected, Ethernet3 C 192.168.0.192 255.255.255.192 is directly connected, Ethernet4
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
03-Nov-2022 |
已发现文档符合编址和域标准 |
1.0 |
02-Dec-2013 |
初始版本 |