我的实验室工作有问题。我需要用 ospf 提供网络路由。我的网络有以下布局:
所以...当我启动 3 个具有所有工作接口的虚拟机时,一切正常 - 路由表正确,所有连接工作。
但是当我在 R3 机器上放下 IF1 时,120 秒后 R1 和 R2 上的路由表发生了变化。但即使在 1 小时后 R2 上的路由表也没有改变,我在路由到 172.16.3.0 网络时遇到了问题。我知道在 OSPF 中有类似“泛洪”路由的东西 - 第一波变化在 120 秒后发生,下一步 - 在 8-9 分钟后......
请帮助使 ospf 正常工作!
这是 R2 机器的 conf 文件zebra.conf
(ospf.conf
对于其他机器,所有 conf 都相同,IP 地址、网络、主机名和路由器 ID 除外。
斑马.conf:
hostname Router
password zebra
enable password zebra
interface lo
description loopback
interface em0
ip address 192.168.9.3/24
interface em1
ip address 172.16.2.1/24
interface em2
ip address 172.16.1.2/24
ospf.conf:
hostname R2
password zebra
enable password zebra
interface em0
no ip ospf authentication-key
interface em1
no ip ospf authentication-key
interface em2
no ip ospf authentication-key
router ospf
ospf router-id 0.0.0.2
network 192.168.9.0/24 area 0
network 172.16.2.0/24 area 0
network 172.16.1.0/24 area 0
redistribute connected
注意:对于所有机器 - em0=IF3、em1=IF2、em2=IF3
更新:谢谢...问题已解决。我只是直接添加链接检测...抱歉,我暂时无法投票回答...
为什么路由表会发生变化?R2 已经通过其到 R1 和 R3 的链接拥有到所有内容的路由。即使 R1 丢失了到 172.16.3.0/24 的路由,R3 仍将其通告回 R2(就像链路断开之前所做的那样)。
您应该会看到 OSPF 数据库本身发生了一些变化,但主机的路由不需要更改。尝试比较关闭链接前后每个路由器上的“show ip ospf database”。
值得注意的是 - 如果您的 ospf 配置中没有启用多路径,则只有一条到 172.16.3.0/24 的路径将被注入您的路由表。如果它看到来自两个路由器的路由,那么它将根据决胜局选择其中一条路径 - 路由器 ID。如果 R2 已经选择了链路未断开的路径,那么什么都不会改变......
几点——
1.) 你为什么使用“重新分配连接”——尤其是在不受限制的基础上。“network xyzq”命令本身已经处理了链接。Redistribute connected 充其量只会产生显示为外部的本地路由。删除此语句并为 192.168.x 接口添加另一个网络语句(如果这些接口应该用于终端主机连接,则将它们标记为被动接口)。如果您必须重新分配连接的路由,则应用过滤来限制实际重新分配的路由。无限制的再分配只是等待发生的痛苦。
2.) 自从我玩过 Quagga 以来已经有一段时间了,但我认为您还需要在 ospf 接口定义上使用“link-detect”。