Juniper OSPF 子网与 Quagga 路由器不匹配

Juniper OSPF 子网与 Quagga 路由器不匹配

我正在尝试在 Juniper MX80 和 Quagga 路由器之间设置 OSPF 区域。Quagga 路由器已配置 OSPF,并在 hello 数据包中通告了网络 199.192.100.0/28。但 Juniper MX80 拒绝了它并出现以下错误:

1 月 22 日 04:14:38.371296 OSPF 数据包被忽略:intf ae0.0 区域 0.0.0.0 上的 199.192.100.2 子网不匹配
1 月 22 日 04:14:38.371515 OSPF rcvd Hello 199.192.100.2 -> 224.0.0.5 (ae0.0 IFL 336 区域 0.0.0.0)
1 月 22 日 04:14:38.371538 版本 2,长度 44,ID 10.10.90.4,区域 0.0.0.0
1 月 22 日 04:14:38.371559 校验和 0x0,授权类型 0
1 月 22 日 04:14:38.371581 掩码 255.255.255.240,hello_ivl 10,opts 0x2,prio 1
1 月 22 日 04:14:38.371602 dead_ivl 40,DR 199.192.100.2,BDR 0.0.0.0

配置的相关部分是:

瞻博网络 MX80:

ashinn@mx2# 显示接口 ae0
聚合以太选项 {
    乳酸菌
        积极的;
    }
}
单元 0 {
    家庭网络 {
        地址 199.192.100.253/30;
    }
}

ashinn@mx2# 显示 ospf 协议   
出口再分配连接;
区域 0.0.0.0 {
    区域范围199.192.100.0/28;
    接口xe-0/0/1.0;
    接口 ae0.0 {
        接口类型p2p;
    }
}

接口 ae0.0 是面向 Quagga 路由器 bond0 接口的接口:


接口 bond0
 ip ospf 成本 50
 ipv6 nd 抑制-ra
路由器ospf
 对数邻接变化
 重新分配内核
 重新分配连接
 网络 199.192.100.0/28 区域 0.0.0.0
 邻居 199.192.100.253

Quagga 的 bond0 接口如下:

[ashinn@lb2 ~]$ ip addr show dev bond0
8:bond0:mtu 1500 qdisc 无队列状态 UP
    链接/以太 00:25:90:27:8a:be brd ff:ff:ff:ff:ff:ff
    inet 199.192.100.254/30 brd 199.192.100.255 范围全局 bond0
    inet 199.192.100.2/28 范围全局 bond0
    inet6 fe80::225:90ff:fe27:8abe/64 范围链接
       valid_lft 永远 preferred_lft 永远

我尝试过neighbor statement在 Quagga 中不使用,也尝试过ip ospf network point-to-point在 Quagga 中设置。两种方法似乎都没有什么区别。

我找到了这篇文章http://kb.juniper.net/InfoCenter/index?page=content&id=KB23533&cat=T1600_1&actp=LIST&showDraft=false这似乎解释了同样的问题。但它只建议纠正子网掩码不匹配。这种不匹配可能在哪里?如果它与 /30 点对点接口子网冲突,那么为什么?

答案1

问题在于你在 Quagga 的 OSPF 中配置了错误的子网。你需要 /30 作为网络语句:

network 199.192.100.252/30 area 0.0.0.0

network 语句告诉 Quagga 在哪个接口上启用 OSPF。每个具有该子网 IP 的接口都将启用 OSPF。

同样,199.192.100.2/28 可能不在该 bond0 设备上。尝试将其放在 lo 接口上,并告诉该接口为被动接口。

像这样:

!
interface bond0
 ip ospf cost 50
 ipv6 nd suppress-ra
!
router ospf
 log-adjacency-changes
 redistribute kernel
 redistribute connected
 network 199.192.100.252/30 area 0.0.0.0
 network 199.192.100.0/28 area 0.0.0.0
 passive-interface lo
 neighbor 199.192.100.253
!

另外,我建议将 MX80 和 Quagga 之间的 OSPF 接口模式设置为点对点。这将加快收敛时间。

答案2

OSPF 邻居所在的 /30 范围部分尝试在为 OSPF 启用的 /28 之外形成邻接关系...这就是子网掩码不匹配的原因。调试输出会告诉您修复它所需的所有信息。 OSPF rcvd Hello应该匹配另一侧。如果掩码不匹配,则永远不会形成邻接关系。

最好在 MX80 + Quagga 路由器之间建立不同的连接,或者至少在三者之间建立一个专用于 OSPF 的网络段(尽管在这种情况下,您需要关闭它interface-type p2p,因为您需要进行 DR 选举)。您首先遇到此问题的原因是 Quagga 试图使用来自错误子网/配置的 IP 的 Hello 数据包建立 OSPF 邻接关系。

如果没有完整的配置,很难知道还有什么问题,但我会非常小心,考虑当前配置,以及这些重新分配命令可能发生的情况;)

答案3

我知道这有点晚了,但需要澄清的是,OSPF 要形成邻居关系,必须满足几个条件。这些条件包括区域编号、接口类型(点对点或广播)问候计时器、死计时器和形成邻居的接口的子网掩码。MX 正在寻找与本地 MX 接口完全相同的子网掩码的邻居。

相关内容