RIP 实例之间的路由重新分配
了解 RIP 实例之间的路由重新分配
您可以在 RIP 进程之间重新分配路由。另一种方法是将 RIP 路由从一个 RIP 实例导出到其他 RIP 实例。
在 Junos OS 中,路由实例之间的路由重新分配通过使用路由表组(也称为 RIB 组)来完成。路由表组允许您将一个路由表中某个协议中的路由导入和导出到另一个路由表中。请注意,Junos OS 15.1X49、15.1X49-D30 或 15.1X49-D40 版不支持本主题中描述的 RIP 实例之间重新分配路由的功能。
相比之下,基于策略的导入和导出功能允许您在同一路由表中不同协议之间导入和导出路由。
考虑以下部分示例:
protocols { rip { rib-group inet-to-voice; } } routing-instances { voice { protocols { rip { rib-group voice-to-inet; } } } } routing-options { rib-groups { inet-to-voice { import-rib [ inet.0 voice.inet.0 ]; } voice-to-inet { import-rib [ voice.inet.0 inet.0 ]; } } }
阅读 import-rib
语句的方法如下所示。获取协议中的路由(本案例中为 RIP),并将这些路由导入主(或本地)路由表中,并导入在此之后列出的任何其他路由表中。主路由表是正在使用路由表组的路由表。如果在主路由实例中使用,则表示 inet.0 ,而在路由实例中使用,则为 voice.inet.0 。在 inet 转语音 路由表组中, 首先列出了 inet.0 ,因为此路由表组用于主路由实例。在 语音到 inet 路由表组中, 首先列出了 voice.inet.0 ,因为此路由表组用于语音路由实例。
示例:在两个 RIP 实例之间重新分配路由
此示例说明如何配置 RIP 路由实例,并控制路由实例和主实例之间 RIP 路由的重新分配。
要求
配置此示例之前,不需要除设备初始化之外的特殊配置。
概述
创建名为语音的路由实例时,Junos OS 会创建一个名为 voice.inet.0 的路由表。此示例说明如何将通过主 RIP 实例学习的路由安装到 voice.inet.0 路由表中。此示例还说明如何将通过语音路由实例了解的路由安装到 inet.0 中。这可以通过配置路由表组来实现。RIP 路由安装在属于路由表组的每个路由表中。
图 1 显示了此示例中使用的拓扑。
CLI 快速配置 显示了 图 1 中所有设备的配置。 第 #d72e63__d72e212 节介绍了设备 R2 上的步骤。
拓扑
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层级的 [edit]
CLI 中,然后从配置模式进入 commit
。
设备 R1
set interfaces fe-1/2/0 unit 1 family inet address 10.0.0.1/30 set interfaces lo0 unit 1 family inet address 172.16.0.1/32 set interfaces lo0 unit 1 family inet address 192.168.1.1/32 set protocols rip group to-R2 export advertise-routes-through-rip set protocols rip group to-R2 neighbor fe-1/2/0.1 set policy-options policy-statement advertise-routes-through-rip term 1 from protocol direct set policy-options policy-statement advertise-routes-through-rip term 1 from protocol rip set policy-options policy-statement advertise-routes-through-rip term 1 then accept
设备 R2
set interfaces fe-1/2/0 unit 2 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 5 family inet address 10.0.0.5/30 set interfaces lo0 unit 2 family inet address 192.168.2.2/32 set interfaces lo0 unit 2 family inet address 172.16.2.2/32 set protocols rip rib-group inet-to-voice set protocols rip group to-R3 export advertise-routes-through-rip set protocols rip group to-R3 neighbor fe-1/2/1.5 set policy-options policy-statement advertise-routes-through-rip term 1 from protocol direct set policy-options policy-statement advertise-routes-through-rip term 1 from protocol rip set policy-options policy-statement advertise-routes-through-rip term 1 then accept set routing-instances voice protocols rip group to-R1 export advertise-routes-through-rip set routing-instances voice interface fe-1/2/0.2 set routing-instances voice protocols rip rib-group voice-to-inet set routing-instances voice protocols rip group to-R1 neighbor fe-1/2/0.2 set routing-options rib-groups inet-to-voice import-rib inet.0 set routing-options rib-groups inet-to-voice import-rib voice.inet.0 set routing-options rib-groups voice-to-inet import-rib voice.inet.0 set routing-options rib-groups voice-to-inet import-rib inet.0
设备 R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 3 family inet address 192.168.3.3/32 set interfaces lo0 unit 3 family inet address 172.16.3.3/32 set protocols rip group to-R2 export advertise-routes-through-rip set protocols rip group to-R2 neighbor fe-1/2/0.6 set policy-options policy-statement advertise-routes-through-rip term 1 from protocol direct set policy-options policy-statement advertise-routes-through-rip term 1 from protocol rip set policy-options policy-statement advertise-routes-through-rip term 1 then accept
逐步过程
以下示例要求您在配置层次结构中的各个级别上导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
在路由实例之间重新分配 RIP 路由:
配置网络接口。
[edit interfaces] user@R2# set fe-1/2/0 unit 2 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 5 family inet address 10.0.0.5/30 user@R2# set lo0 unit 2 family inet address 192.168.2.2/32 user@R2# set lo0 unit 2 family inet address 172.16.2.2/32
创建路由实例,然后向路由实例添加一个或多个接口。
[edit routing-instances voice] user@R2# set interface fe-1/2/0.2
创建 RIP 组并添加接口。
[edit protocols rip group to-R3] user@R2# set neighbor fe-1/2/1.5 [edit routing-instances voice protocols rip group to-R1] user@R2# set neighbor fe-1/2/0.2
创建路由表组。
[edit routing-options rib-groups] user@R2# set inet-to-voice import-rib inet.0 user@R2# set inet-to-voice import-rib voice.inet.0 user@R2# set voice-to-inet import-rib voice.inet.0 user@R2# set voice-to-inet import-rib inet.0
应用路由表组。
[edit protocols rip] user@R2# set rib-group inet-to-voice [edit routing-instances voice protocols rip] user@R2# set rib-group voice-to-inet
创建路由策略以播发直接路由和 RIP 学习路由。
[edit policy-options policy-statement advertise-routes-through-rip term 1] user@R2# set from protocol direct user@R2# set from protocol rip user@R2# set then accept
应用路由策略。
在 Junos OS 中,只能在组级别应用 RIP 导出策略。
[edit protocols rip group to-R3] user@R2# set export advertise-routes-through-rip [edit routing-instances voice protocols rip group to-R1] user@R2# set export advertise-routes-through-rip
结果
在配置模式下,输入 、 show interfaces
show protocols
、 show policy-options
、 show routing-instances
和show routing-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
user@R2# show interfaces
fe-1/2/0 {
unit 2 {
family inet {
address 10.0.0.2/30;
}
}
}
fe-1/2/1 {
unit 5 {
family inet {
address 10.0.0.5/30;
}
}
}
lo0 {
unit 2 {
family inet {
address 192.168.2.2/32;
address 172.16.2.2/32;
}
}
}
user@R2# show protocols
rip {
rib-group inet-to-voice;
group to-R3 {
export advertise-routes-through-rip;
neighbor fe-1/2/1.5;
}
}
user@R2# show policy-options
policy-statement advertise-routes-through-rip {
term 1 {
from protocol [ direct rip ];
then accept;
}
}
user@R2# show routing-instances
voice {
interface fe-1/2/0.2;
protocols {
rip {
rib-group voice-to-inet;
group to-R1 {
export advertise-routes-through-rip;
neighbor fe-1/2/0.2;
}
}
}
}
user@R2# show routing-options
rib-groups {
inet-to-voice {
import-rib [ inet.0 voice.inet.0 ];
}
voice-to-inet {
import-rib [ voice.inet.0 inet.0 ];
}
}
完成设备配置后,请在配置模式下输入 提交 。
验证
确认配置工作正常。
检查路由表
目的
请确保路由表包含预期的路由。
行动
在操作模式下,输入 show route protocol rip
命令。
user@R2> show route protocol rip inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.0.1/32 *[RIP/100] 01:58:14, metric 2, tag 0 > to 10.0.0.1 via fe-1/2/0.2 172.16.3.3/32 *[RIP/100] 02:06:03, metric 2, tag 0 > to 10.0.0.6 via fe-1/2/0.5 192.168.1.1/32 *[RIP/100] 01:58:14, metric 2, tag 0 > to 10.0.0.1 via fe-1/2/0.2 192.168.3.3/32 *[RIP/100] 02:06:03, metric 2, tag 0 > to 10.0.0.6 via fe-1/2/0.5 224.0.0.9/32 *[RIP/100] 01:44:13, metric 1 MultiRecv voice.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.0.1/32 *[RIP/100] 02:06:03, metric 2, tag 0 > to 10.0.0.1 via fe-1/2/0.2 172.16.3.3/32 *[RIP/100] 01:58:14, metric 2, tag 0 > to 10.0.0.6 via fe-1/2/0.5 192.168.1.1/32 *[RIP/100] 02:06:03, metric 2, tag 0 > to 10.0.0.1 via fe-1/2/0.2 192.168.3.3/32 *[RIP/100] 01:58:14, metric 2, tag 0 > to 10.0.0.6 via fe-1/2/0.5 224.0.0.9/32 *[RIP/100] 01:44:13, metric 1 MultiRecv
意义
输出显示两个路由表都包含所有 RIP 路由。