JunOS 在 OSPF 路由上使用 iBGP 路由

网络工程 bgp 杜松
2021-07-26 08:21:05

您好,我有一个问题,我的 Juniper 路由器没有将 BGP 10.255.255.4/32 通告给邻居,因为在 inet.0 中它不是作为最佳路由发布的

root# run show route table inet.0 

inet.0: 11 destinations, 12 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.0.2.0/30        *[IS-IS/15] 2d 22:48:54, metric 20
                    > to 10.0.2.5 via em1.0
10.0.2.4/30        *[Direct/0] 2d 22:49:21
                    > via em1.0
10.0.2.6/32        *[Local/0] 2d 22:49:21
                      Local via em1.0
10.0.3.0/24        *[Direct/0] 2d 22:49:21
                    > via em0.0
10.0.3.1/32        *[Local/0] 2d 22:49:21
                      Local via em0.0
10.255.255.1/32    *[BGP/170] 02:19:00, MED 0, localpref 100, from 10.255.255.2
                      AS path: I, validation-state: unverified
                    > to 10.0.2.5 via em1.0, Push 300
10.255.255.2/32    *[IS-IS/15] 2d 22:48:54, metric 30
                    > to 10.0.2.5 via em1.0
10.255.255.3/32    *[Direct/0] 2d 22:49:21
                    > via lo0.0
10.255.255.4/32    *[OSPF/10] 2d 22:49:06, metric 1
                    > to 10.0.3.2 via em0.0
                    [BGP/170] 00:00:08, localpref 100, from 10.255.255.4
                      AS path: I, validation-state: unverified
                    > to 10.0.3.2 via em0.0
224.0.0.2/32       *[LDP/9] 2d 22:49:21, metric 1
                      MultiRecv
224.0.0.5/32       *[OSPF/10] 2d 22:49:24, metric 1
                      MultiRecv

[edit]
root# 

我目前正在寻找一种可以使 BGP 路由成为首选的解决方案。我曾尝试使用政策声明,但不幸的是没有运气。

有任何想法吗?先感谢您

2个回答

我已经能够通过以下政策声明来解决这个问题:

policy-statement prioritize_BGP {
        from {
            route-filter 10.255.255.4/32 exact;
        }
        then {
            preference 10;
            accept;
       }
}

bgp {
        group ibgp {
            import prioritize_BGP;
        }
    }

此解决方案仅调整确切的 BGP 路由以最终比 OSPF 更好

root> show route table inet.0 

inet.0: 11 destinations, 12 routes (11 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.0.2.0/30        *[IS-IS/15] 3d 08:58:47, metric 20
                    > to 10.0.2.5 via em1.0
10.0.2.4/30        *[Direct/0] 3d 08:59:14
                    > via em1.0
10.0.2.6/32        *[Local/0] 3d 08:59:14
                      Local via em1.0
10.0.3.0/24        *[Direct/0] 3d 08:59:14
                    > via em0.0
10.0.3.1/32        *[Local/0] 3d 08:59:14
                      Local via em0.0
10.255.255.1/32    *[BGP/170] 09:53:18, MED 0, localpref 100, from 10.255.255.2
                      AS path: I, validation-state: unverified
                    > to 10.0.2.5 via em1.0, Push 201, Push 300(top)
10.255.255.2/32    *[IS-IS/15] 3d 08:58:47, metric 30
                    > to 10.0.2.5 via em1.0
10.255.255.3/32    *[Direct/0] 3d 08:59:14
                    > via lo0.0
10.255.255.4/32    *[BGP/10] 00:24:52, localpref 100, from 10.255.255.4
                      AS path: I, validation-state: unverified
                    > to 10.0.3.2 via em0.0
                    [OSPF/10] 3d 08:58:59, metric 1
                    > to 10.0.3.2 via em0.0
224.0.0.2/32       *[LDP/9] 3d 08:59:14, metric 1
                      MultiRecv
224.0.0.5/32       *[OSPF/10] 3d 08:59:17, metric 1
                      MultiRecv

root> 

查看您的输出,您无法重新通告 BGP 路由的原因是它不是活动的/首选的。您可以调整 OSPF 的首选项,使其不如 BGP 优先,例如:

set protocols ospf preference 180

但您需要了解,有问题的 BGP 路由依赖于可用作递归下一跳的底层 OSPF 下一跳 - 例如:您的 IBGP 会话在环回 10.255.255.4 上终止,这是您通过 OSPF 学习的。如果您更改 OSPF 的首选项,一旦通过 BGP 而不是 OSPF 获知路由,您的 BGP 会话可能会被破坏。

也许您可以描述一下您要解决的问题?