本帖最后由 victor_huang 于 2011-10-29 20:08 编辑
在路由器上启用 OSPF 在路由器上启用 OSPF 涉及配置模式中的以下两个步骤:
- 使用 router ospf <process-id> 命令启用一个 OSPF 进程。
- 使用 network <network or IP address> <mask> <area-id> 命令将区域分配给接口。
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.213.11.1 255.255.255.0
interface Ethernet1
ip address 192.213.12.2 255.255.255.0
interface Ethernet2
ip address 128.213.1.1 255.255.255.0
router ospf 100
network 192.213.0.0 0.0.255.255 area 0.0.0.0
network 128.213.1.1 0.0.0.0 area 23
第一条 network 语句将 E0 和 E1 放置在同一区域 0.0.0.0 内,第二条 network 语句将 E2 放置在区域 23 内。 请注意掩码 0.0.0.0,这指示 IP 地址需完全匹配。 如果难以算出掩码,则这是将接口放入特定区域的简便方法。
OSPF 身份验证 可以对 OSPF 数据包进行身份验证,从而使路由器可以基于预定义的口令加入路由域。 默认情况下,路由器使用空身份验证,这意味着不对网络上的路由交换进行身份验证。 还有其他两种身份验证方法: 简单口令身份验证和消息概要身份验证 (MD-5)。
简单口令身份验证 简单口令身份验证允许为每个区域配置一个口令(密钥)。 同一区域中要加入路由域的路由器必须使用相同的密钥进行配置。 此方法的缺点是容易受到被动攻击。 任何使用链路分析器的人都很容易从线路中获得口令。 若要启用口令身份验证,请使用以下命令:
- ip ospf authentication-key key(这在特定接口下使用)
- area area-id authentication(这在“router ospf <process-id>”下使用)
如下面的示例所示:
interface Ethernet0
ip address 10.10.10.10 255.255.255.0
ip ospf authentication-key mypassword
router ospf 10
network 10.10.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 <process-id>”下使用)
如下面的示例所示:
interface Ethernet0
ip address 10.10.10.10 255.255.255.0
ip ospf message-digest-key 10 md5 mypassword
router ospf 10
network 10.10.0.0 0.0.255.255 area 0
area 0 authentication message-digest
骨干网与区域 0 当涉及多个区域时,OSPF 具有特殊限制。 如果配置了多个区域,则这些区域中必须有一个是区域 0。 此区域称为骨干网。 当设计网络时,从区域 0 开始然后扩展到其他区域是很好的做法。
骨干网必须位于所有其他区域的中心,即所有区域都必须在物理上连接到骨干网。 接下来便是 OSPF 要求所有区域都将路由信息注入骨干网,骨干网又将这些信息散发到其他区域。 下图显示 OSPF 网络中的信息流:
在上图中,所有区域都直接连接到骨干网。 有一种比较少见的情况是引入了新区域,但该区域不能直接物理访问骨干网,这时将必须配置虚拟链路。 虚拟链路将在下一部分中讨论。 请注意不同类型的路由信息。 从区域内生成的路由(目标属于该区域)称为区域内路由。 这些路由在 IP 路由表中通常由字母 O 表示。 从其他区域发起的路由称为区域间或汇总路由。 这些路由在 IP 路由表中的符号为 O IA。 从其他路由协议(或不同的 OSPF 进程)发起并且通过重分配注入 OSPF 的路由称为外部路由。 这些路由在 IP 路由表中由 O E2 或 O E1 表示。 到同一个目标的多个路由的优先顺序如下: 区域内、区域间、外部 E1、外部 E2。 外部类型 E1 和 E2 将在稍后进行说明。
虚拟链路 虚拟链路用于两个目的:
- 链接与骨干网之间没有物理连接的区域。
- 在区域 0 发生中断时修补骨干网。
与区域 0 之间没有物理连接的区域 如前所述,区域 0 必须位于所有其他区域的中心。 在不可能将某个区域物理连接到骨干网的某些少见情况下,可使用虚拟链路。 虚拟链路将为断开连接的区域提供到骨干网的逻辑路径。 虚拟链路必须在具有公共区域的两个 ABR 之间建立,其中一个 ABR 连接到骨干网。 这在下面的示例中进行了演示:
在本示例中,区域 1 没有与区域 0 之间没有直接物理连接。 必须在 RTA 和 RTB 之间配置虚拟链路。 区域 2 将用作中转区域,并且 RTB 是到区域 0 的入口点。 这样,RTA 和区域 1 与骨干网之间便具有逻辑连接。 若要配置虚拟链路,请对 RTA 和 RTB 使用 area <area-id> virtual-link <RID> 路由器 OSPF 子命令,其中“area-id”表示中转区域。 在上图中,中转区域为区域 2。 RID 是路由器 ID。 OSPF 路由器 ID 通常是机箱上的最高 IP 地址或最高环回地址(如果存在)。 路由器 ID 只在启动时或每次重新启动 OSPF 进程时进行计算。 若要查找路由器 ID,请使用 show ip ospf interface 命令。 假设 1.1.1.1 和 2.2.2.2 分别是 RTA 和 RTB 的 RID,这两个路由器的 OSPF 配置应是:
RTA#
router ospf 10
area 2 virtual-link 2.2.2.2
RTB#
router ospf 10
area 2 virtual-link 1.1.1.1
划分骨干网 OSPF 允许使用虚拟链路链接骨干网中不连续的部分。 在某些情况下,需要将不同的区域 0 链接到一起。 例如,如果某个公司试图使用公共区域 0 将两个独立的 OSPF 网络合并为一个网络,便会发生这种情况。 在其他情况下,虚拟链路是作为冗余添加的,以防止由于某些路由器故障而导致将骨干网一分为二。 无论出于何种原因,都可以在从各端连接到区域 0 且具有公共区域的独立 ABR 之间配置虚拟链路。 这在下面的示例中进行了演示:
在上图中,两个区域 0 通过虚拟链路链接在一起。 如果不存在公共区域,则可以创建一个附加区域(如区域 3)作为中转区域。
如果对不同于骨干网的任意区域进行划分,则骨干网将不使用任何虚拟链路来处理划分。 划分的区域的一部分将通过区域间路由(而不是区域内路由)与另一部分联系。
|