用于 3 层 VPN 的基于下一跳的隧道
本主题介绍如何配置动态通用路由封装 (GRE) 隧道和动态 MPLS-over-UDP 隧道以支持隧道复合下一跃点。它还提供了有关配置反向路径转发以防止反欺骗的信息。
配置基于下一跃点的 MPLS-over-GRE 动态隧道
基于下一跳的 MPLS-over-GRE 隧道可创建隧道复合下一跳、间接下一跳和转发下一跃点,以解析隧道目标路由。您可以配置基于下一跃点的 MPLS-over-GRE 隧道以及基于防火墙过滤器的隧道解封装。
在 ACX 系列上,从 Junos OS 演化版 24.2R1 开始,可以通过在 [edit routing-options dynamic-tunnels] 层次结构中包含gre next-hop-based-tunnel语句来配置基于动态 GRE 下一跃点的隧道。
您可以通过在 [edit firewall family family-name filter filter-name term term-name then decapsulate] 层次结构级别包含gre语句来配置基于 MPLS-over-GRE 防火墙过滤器的解封装。防火墙过滤器规则中仅支持解封装作。MPLS-over-GRE 防火墙基于过滤器的解封装仅适用于家族 inet。
您可以通过在 [edit routing-options dynamic-tunnels statistics] 层级使用interval语句配置特定时间间隔来检索封装隧道统计信息。您也可使用show dynamic-tunnels database statistics命令查看统计信息。
为动态下一跳隧道配置封装
要为动态下一跃点隧道配置封装,您需要在 [edit routing-options dynamic-tunnels] 层级包含gre next-hop-based-tunnel语句。
以下是 MPLS-over-GRE 封装的示例配置:
[edit]
protocols {
bgp {
group IBGP {
type internal;
local-address 192.168.19.190;
family inet {
unicast;
}
}
neighbor 192.168.20.11;
}
}
routing-options {
dynamic-tunnels {
gre full-resolved-next-hop-based-tunnel;
gre next-hop-based-tunnel;
test_tunnel {
source-address 192.168.19.190;
gre;
destination-networks {
192.168.20.0/24 preference 4;
}
}
}
}
配置防火墙过滤器以进行解封装
在以下配置中,我们将 SIP、DIP 协议进行匹配以匹配隧道数据包。需要将防火墙过滤器映射到默认路由实例。
通过该作,PFE 对路由器进行编程,以去除隧道标头,并继续基于内部标头进行处理。
forwarding-options {
family inet {
filter {
input f1;
}
}
}
firewall {
family inet {
filter f1 {
term t1 {
from {
source-address {
192.168.9.190/32;
}
destination-address {
10.255.10.11/32;
} }
then {
decapsulate {
gre;
}
}
}
term t2 {
then accept;
}
}
}
}
启用封装统计信息
PFE 能够提供数据包和字节计数级别的封装统计信息。字节计数值包括封装标头。默认情况下,不会为隧道封装启用统计信息,因为用于统计信息的计数器是共享资源。因此,您需要通过配置 encap-stats-enable CLI 语句来启用计数器分配。
要启用封装统计信息,请配置以下 CLI:
user@host# set system packet-forwarding-options tunnel encap-stats-enable
局限性
以下是在 ACX 系列上配置下一个基于跃点的 MPLS-over-GRE 动态隧道时的限制:
-
不支持基于动态下一跳的隧道的 TTL 传播。
-
不支持服务等级和 MTU。
-
不支持 IPv4 和 IPv6 封装的路径 MTU 发现,因为在隧道始发节点上不会为封装的数据包维护流缓存。
-
不支持内部源 IP 的隧道解封装时的反欺骗。
-
在防火墙过滤器规则中,仅
decapsulate mpls-in-udp支持隧道decapsulate gre解封装。由于数据路径限制,不支持对传入核心接口的其他防火墙过滤器规则。 -
防火墙过滤器解封装规则仅支持默认 VRF。
-
不支持每个隧道复合下一跳级别的隧道统计信息。
-
统计计数器分配以先到先得 (FCFS) 的方式进行。在系统重新启动或 evo-pefmand 重新启动时,某些计数器在重新启动后可能具有非零值,并且计数器可能不会递增。
-
IPv4 的前缀掩码为 /32,IPv6 的前缀掩码为 /128,仅在基于解封装的筛选规则中受支持。不支持基于解封装的过滤器规则中的防火墙过滤器前缀列表。
-
不支持灵活 VLAN 标记。
-
不支持基于接口的动态下一跳 GRE 隧道。
-
配置
set chassis loopback-dynamic-tunnel语句不适用于 ACX 平台,因为支持线速隧道封装和解封装。 -
不支持 IPv6 核心。
示例:配置基于下一跃点的动态 GRE 隧道
此示例说明如何配置包含隧道复合下一跃点 (CNH) 而不是接口下一跃点的动态通用路由封装 (GRE) 隧道。与基于接口的动态 GRE 隧道相比,基于下一跳的动态 GRE 隧道具有扩展优势。
要求
此示例使用以下硬件和软件组件:
-
五台带 MPC 和 MIC 的 MX 系列路由器。
-
在 PE 路由器上运行的 Junos OS 16.2 或更高版本。
开始之前:
-
配置设备接口,包括环路接口。
-
配置设备的路由器 ID 和自治系统编号。
-
建立与远程 PE 设备的内部 BGP (IBGP) 会话。
-
在设备之间建立 OSPF 对等互连。
概述
从 Junos OS 16.2 版开始,动态通用路由封装 (GRE) 隧道支持为配置的每个 GRE 隧道创建隧道复合下一跃点。
默认情况下,对于配置的每个新的动态 GRE 隧道,系统都会创建一个相应的逻辑隧道接口。这称为基于接口的动态隧道,是创建动态隧道的默认模式。在基于接口的动态隧道中,设备上可配置的隧道数取决于设备上支持的接口总数。基于下一跃点的动态 GRE 隧道消除了对物理接口的依赖性,并且 GRE 隧道封装作为下一跳指令实现,而无需创建逻辑隧道接口。这为可在设备上创建的动态隧道数量提供了扩展优势。
从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,基于下一跃点的动态 GRE 隧道的扩展限制将会增加。扩展值的增加有利于数据中心网络,其中需要网关路由器才能通过 IP 基础架构与多个服务器进行通信;例如,在 Contrail 网络中。
在给定时间点,设备上可以存在基于下一跃点的动态隧道或默认的基于接口的动态 GRE 隧道。从一个隧道模式切换到另一个隧道模式会删除现有隧道,并根据支持的扩展限制在新隧道模式中创建新隧道。同样,在给定时间点,对于同一隧道目标,基于下一跃点的隧道封装类型可以是 GRE 或 UDP。
要启用基于下一跃点的动态 GRE 隧道,请在[edit routing-options dynamic-tunnels gre]层次结构级别包含next-hop-based-tunnel语句。
现有的动态隧道功能需要完整的静态配置。目前,从播发路由中的对等设备接收的隧道信息将被忽略。从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 GRE 隧道使用 BGP 封装扩展社区发出信号。BGP 导出策略用于指定隧道类型、通告发送方隧道信息以及解析和传送接收方隧道信息。根据接收到的隧道类型创建隧道社区。
BGP 支持多隧道封装。接收到多项功能后,系统会根据配置的 BGP 策略和隧道优先级创建基于下一跳的动态隧道。对于要建立的隧道,隧道优先级应在隧道的两端保持一致。默认情况下,MPLS-over-UDP (MPLSoUDP) 隧道优先于 GRE 隧道。如果存在动态隧道配置,则该配置优先于接收到的隧道社区。
配置基于下一跃点的动态 GRE 隧道时,请注意以下注意事项:
-
在 IBGP 协议下一跃点解析过程中会触发动态隧道创建。
-
允许从基于下一跳的隧道模式切换到基于接口的隧道模式(反之亦然),这可能会根据每种模式中支持的 IP 隧道扩展值来影响网络性能。
-
基于下一跳的动态隧道配置不支持 RSVP 自动网状隧道。
-
此功能支持基于新的 IPv4-mapped-IPv6 下一跃点创建动态 GRE 隧道。
-
基于下一跃点的动态 GRE 隧道配置不支持以下功能:
-
RSVP 自动网格
-
逻辑系统
-
发送方(MX 系列)端的每隧道流量统计信息收集
-
在隧道接口实施 QoS,如监管和整形。
-
路径最大传输单元发现
-
GRE 关键功能
-
GRE 激活消息的 GRE作、管理和维护 (OAM)。
-
拓扑学
图 1 展示了通过动态 GRE 隧道实现的第 3 层 VPN 方案。客户边缘 (CE) 设备 CE1 和 CE2 分别连接到提供商边缘 (PE) 设备 PE1 和 PE2。PE 设备连接到提供商设备(设备 P1),内部 BGP (IBGP) 会话使两个 PE 设备互连。PE 设备之间配置了两个动态 GRE 隧道。设备 PE1 到设备 PE2 的动态隧道基于下一跳隧道模式,设备 PE2 到设备 PE1 的动态隧道基于接口隧道模式。
的第 3 层 VPN
基于下一跃点的动态 GRE 隧道的处理方式如下:
-
配置基于下一跃点的动态 GRE 隧道后,将为 inet.3 路由表中的协议下一跃点创建带有隧道 CNH 的隧道目标掩码路由。仅当删除动态隧道配置时,才会撤回此 IP 隧道路由。
隧道 CNH 属性包括:
-
禁用第 3 层 VPN CNH 时 - 源和目标地址、封装字符串和 VPN 标签。
-
启用第 3 层 VPN CNH 和按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。
-
当启用第 3 层 VPN CNH 并禁用按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。在这种情况下,路由将添加到另一个具有辅助路由的虚拟路由和转发实例表中。
-
-
PE 设备使用 IBGP 会话进行互连。到远程 BGP 邻接方的 IBGP 路由下一跃点即为协议下一跃点,使用隧道掩码路由与隧道下一跃点进行解析。
-
通过隧道复合下一跃点解析下一跃点后,将创建具有转发下一跃点的间接下一跃点。
-
隧道 CNH 用于转发间接下一跳的下一跃点。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
CE1
set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/8
set interfaces lo0 unit 0 family inet address 10.127.0.1/8
set routing-options router-id 10.127.0.1
set routing-options autonomous-system 65200
set protocols bgp group ce1-pe1 export export-loopback-direct
set protocols bgp group ce1-pe1 peer-as 65100
set protocols bgp group ce1-pe1 neighbor 10.0.0.2
set policy-options policy-statement export-loopback-direct term term-1 from interface lo0.0
set policy-options policy-statement export-loopback-direct term term-1 from route-filter 10.127.0.1/8 exact
set policy-options policy-statement export-loopback-direct term term-1 then accept
CE2 认证
set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.2/24
set interfaces lo0 unit 0 family inet address 10.127.0.5/32
set routing-options router-id 10.127.0.5
set routing-options autonomous-system 65200
set protocols bgp group ce1-pe1 export export-loopback-direct
set protocols bgp group ce1-pe1 peer-as 65100
set protocols bgp group ce1-pe1 neighbor 203.0.113.1
set policy-options policy-statement export-loopback-direct term term-1 from interface lo0.0
set policy-options policy-statement export-loopback-direct term term-1 from route-filter 10.127.0.5/8 exact
set policy-options policy-statement export-loopback-direct term term-1 then accept
PE1型
set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/8
set interfaces ge-0/0/1 unit 0 family inet address 192.0.2.1/24
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 10.127.0.2/32
set routing-options static route 10.33.0.0/16 next-hop 192.0.2.2
set routing-options router-id 10.127.0.2
set routing-options autonomous-system 65100
set routing-options dynamic-tunnels gre next-hop-based-tunnel
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe2 source-address 10.127.0.2
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe2 gre
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe2 destination-networks 10.127.0.0/16
set protocols bgp group IBGP type internal
set protocols bgp group IBGP local-address 10.127.0.2
set protocols bgp group IBGP family inet-vpn unicast
set protocols bgp group IBGP neighbor 10.127.0.4
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set routing-instances L3VPN-Over-GRE-PE1 instance-type vrf
set routing-instances L3VPN-Over-GRE-PE1 interface ge-0/0/0.0
set routing-instances L3VPN-Over-GRE-PE1 route-distinguisher 10.127.0.2:1
set routing-instances L3VPN-Over-GRE-PE1 vrf-target target:600:1
set routing-instances L3VPN-Over-GRE-PE1 protocols bgp group pe1-ce1 peer-as 65200
set routing-instances L3VPN-Over-GRE-PE1 protocols bgp group pe1-ce1 neighbor 10.0.0.1 as-override
小一
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.2/24
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/24
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 10.127.0.3/32
set routing-options router-id 10.127.0.3
set routing-options autonomous-system 65100
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0
set protocols ospf area 0.0.0.0 interface lo0.0 passive
PE2
set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.1/24
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.2/24
set interfaces lo0 unit 0 family inet address 10.127.0.4/32
set routing-options nonstop-routing
set routing-options router-id 10.127.0.4
set routing-options autonomous-system 65100
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe1 source-address 10.127.0.4
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe1 gre
set routing-options dynamic-tunnels gre-dyn-tunnel-to-pe1 destination-networks 10.127.0.0/16
set protocols bgp group IBGP type internal
set protocols bgp group IBGP local-address 10.127.0.4
set protocols bgp group IBGP family inet-vpn unicast
set protocols bgp group IBGP neighbor 10.127.0.2
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set routing-instances L3VPN-Over-GRE-PE2 instance-type vrf
set routing-instances L3VPN-Over-GRE-PE2 interface ge-0/0/0.0
set routing-instances L3VPN-Over-GRE-PE2 route-distinguisher 10.127.0.4:1
set routing-instances L3VPN-Over-GRE-PE2 vrf-target target:600:1
set routing-instances L3VPN-Over-GRE-PE2 protocols bgp group ebgp peer-as 65200
set routing-instances L3VPN-Over-GRE-PE2 protocols bgp group ebgp neighbor 203.0.113.2 as-override
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置设备 PE1,请执行以下作:
-
配置设备接口,包括设备的环路接口。
[edit interfaces] user@PE1# set ge-0/0/0 unit 0 family inet address 10.0.0.2/8 user@PE1# set ge-0/0/1 unit 0 family inet address 192.0.2.1/24 user@PE1# set ge-0/0/1 unit 0 family mpls user@PE1# set lo0 unit 0 family inet address 10.127.0.2/8/32 -
为来自设备 PE1 的路由配置静态路由,并将设备 P1 作为下一跳目标。
[edit routing-options] user@PE1# set static route 172.16.0.0/16 next-hop 192.0.2.2 -
配置设备 PE1 的路由器 ID 和自治系统编号。
[edit routing-options] user@PE1# set router-id 10.127.0.2 user@PE1# set autonomous-system 65100 -
配置 PE 设备之间的 IBGP 对等互连。
[edit protocols] user@PE1# set bgp group IBGP type internal user@PE1# set bgp group IBGP local-address 10.127.0.2 user@PE1# set bgp group IBGP family inet-vpn unicast user@PE1# set bgp group IBGP neighbor 10.127.0.4 -
在设备 PE1 的所有接口上配置 OSPF,管理接口除外。
[edit protocols] user@PE1# set ospf area 0.0.0.0 interface ge-0/0/1.0 user@PE1# set ospf area 0.0.0.0 interface lo0.0 passive -
在设备 PE1 上启用基于下一跃点的动态 GRE 隧道配置。
[edit routing-options] user@PE1# set dynamic-tunnels gre next-hop-based-tunnel -
配置从设备 PE1 到设备 PE2 的动态 GRE 隧道参数。
[edit routing-options] user@PE1# set dynamic-tunnels gre-dyn-tunnel-to-pe2 source-address 10.127.0.2 user@PE1# set dynamic-tunnels gre-dyn-tunnel-to-pe2 gre user@PE1# set dynamic-tunnels gre-dyn-tunnel-to-pe2 destination-networks 10.127.0.0/16 -
将负载均衡策略导出到转转发表。
[edit routing-options] user@PE1# set forwarding-table export pplb -
在设备 PE1 上配置 VRF 路由实例和其他路由实例参数。
[edit routing-instances] user@PE1# set L3VPN-Over-GRE-PE1 instance-type vrf user@PE1# set L3VPN-Over-GRE-PE1 interface ge-0/0/0.0 user@PE1# set L3VPN-Over-GRE-PE1 route-distinguisher 10.127.0.2:1 user@PE1# set L3VPN-Over-GRE-PE1 vrf-target target:600:1 -
在路由实例配置中启用 BGP,以便与设备 CE1 对等。
[edit routing-instances] user@PE1# set L3VPN-Over-GRE-PE1 protocols bgp group pe1-ce1 peer-as 65200 user@PE1# set L3VPN-Over-GRE-PE1 protocols bgp group pe1-ce1 neighbor 10.0.0.1 as-override
结果
在配置模式下,输入show interfaces、show routing-optionsshow protocols、和show routing-instances命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show interfaces
ge-0/0/0 {
unit 0 {
family inet {
address 10.0.0.2/8;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 192.0.2.1/24;
}
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 10.127.0.2/32;
}
}
}
user@PE1# show routing-options
static {
route 172.16.0.0/16 next-hop 192.0.2.2;
}
router-id 10.127.0.2;
autonomous-system 65100;
dynamic-tunnels {
gre next-hop-based-tunnel;
gre-dyn-tunnel-to-pe2 {
source-address 10.127.0.2;
gre;
destination-networks {
10.127.0.0/16;
}
}
}
user@PE1# show protocols
bgp {
group IBGP {
type internal;
local-address 127.0.0.2;
family inet-vpn {
unicast;
}
neighbor 127.0.0.4;
}
}
ospf {
area 0.0.0.0 {
interface ge-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
user@PE1# show routing-instances
L3VPN-Over-GRE-PE1 {
instance-type vrf;
interface ge-0/0/0.0;
route-distinguisher 127.0.0.2:1;
vrf-target target:600:1;
protocols {
bgp {
group pe1-ce1 {
peer-as 200;
neighbor 10.0.0.1 {
as-override;
}
}
}
}
}
如果完成设备配置,请从配置模式输入 commit 。
验证
确认配置工作正常。
验证 PE 设备之间的连接
目的
验证设备 PE1 和设备 PE2 之间的 BGP 对等状态,以及从设备 PE2 接收的 BGP 路由。
行动
在作模式下,运行 show bgp summary 和 show route receive-protocol bgp ip-address table bgp.l3vpn.0 命令。
user@PE1> show bgp summary
Groups: 2 Peers: 2 Down peers: 0
Table Tot Paths Act Paths Suppressed History Damp State Pending
bgp.l3vpn.0
2 2 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
127.0.0.4 100 139 136 0 0 58:23 Establ
bgp.l3vpn.0: 2/2/2/0
L3VPN-Over-GRE-PE1.inet.0: 2/2/2/0
10.0.0.1 200 135 136 0 0 58:53 Establ
L3VPN-Over-GRE-PE1.inet.0: 1/1/1/0
user@PE1> show route receive-protocol bgp 10.127.0.4 table bgp.l3vpn.0 bgp.l3vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 10.127.0.4:1:127.0.0.5/8 * 127.0.0.4 65100 65200 I 10.127.0.4:1:203.0.113.0/24 * 127.0.0.4 65100 I
意义
-
在第一个输出中,BGP 会话状态为
Establ,表示会话已启动且 PE 设备处于对等状态。 -
在第二个输出中,设备 PE1 从设备 PE2 获知了两条 BGP 路由。
验证设备 PE1 上的动态隧道路由
目的
验证 inet.3 路由表中的路由以及设备 PE1 上的动态隧道数据库信息。
行动
在作模式下,运行 show route table inet.3 和 show dynamic-tunnels database terse 命令。
user@PE1> show route table inet.3
inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.127.0.0/8 *[Tunnel/300] 01:01:45
Tunnel
10.127.0.4/8 *[Tunnel/300] 00:10:24
Tunnel Composite
user@PE1> show dynamic-tunnels database terse
Table: inet.3
Destination-network: 10.127.0.0/8
Destination Source Next-hop Type Status
10.127.0.4/8 10.127.0.2 0xb395e70 nhid 612 gre Up
意义
-
在第一个输出中,由于设备 PE1 配置了基于下一跃点的动态 GRE 隧道,因此会为 inet.3 路由表路由条目创建隧道复合路由。
-
在第二个输出中,从设备 PE1 到设备 PE2 创建的动态 GRE 隧道已启动,并为其分配了下一跃点 ID,而不是下一跳接口。
验证设备 PE2 上的动态隧道路由
目的
验证 inet.3 路由表中的路由以及设备 PE2 上的动态隧道数据库信息。
行动
在作模式下,运行 show route table inet.3 和 show dynamic-tunnels database terse 命令。
user@PE2> show route table inet.3
inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.127.0.0/8 *[Tunnel/300] 01:06:52
Tunnel
10.127.0.2/8 *[Tunnel/300] 01:04:45
> via gr-0/1/0.32769
user@PE1> show dynamic-tunnels database terse Table: inet.3 Destination-network: 127.0.0.0/8 Destination Source Next-hop Type 10. 10.127.0.2/8 10.127.0.4 gr-0/1/0.32769 gre Up
意义
-
在第一个输出中,由于设备 PE2 具有默认的基于接口的动态 GRE 隧道配置,因此将为 inet.3 路由表路由条目创建一个新接口。
-
在第二个输出中,从设备 PE2 到设备 PE1 创建的动态 GRE 隧道已启动,并为其分配了新创建的接口名称。
验证路由是否具有预期的间接下一跃点标志
目的
验证设备 PE1 和设备 PE2 是否配置为在数据包转发引擎转发表上维护到转发的间接下一跃点绑定。
行动
在作模式下,对设备 PE1 和设备 PE2 运行 show krt indirect-next-hop 命令。
user@PE1> show krt indirect-next-hop
Indirect Nexthop:
Index: 1048574 Protocol next-hop address: 10.127.0.4
RIB Table: bgp.l3vpn.0
Label: Push 299792
Policy Version: 1 References: 2
Locks: 3 0xb2ab630
Flags: 0x0
INH Session ID: 0x0
INH Version ID: 0
Ref RIB Table: unknown
Tunnel type: GRE, Reference count: 3, nhid: 612
Destination address: 10.127.0.4, Source address: 10.127.0.2
Tunnel id: 1, VPN Label: Push 299792, TTL action: prop-ttl
IGP FRR Interesting proto count : 2
Chain IGP FRR Node Num : 1
IGP Resolver node(hex) : 0xb3c6d9c
IGP Route handle(hex) : 0xb1ad230 IGP rt_entry protocol : Tunnel
IGP Actual Route handle(hex) : 0x0 IGP Actual rt_entry protocol : Any
user@PE2> show krt indirect-next-hop
Indirect Nexthop:
Index: 1048574 Protocol next-hop address: 10.127.0.2
RIB Table: bgp.l3vpn.0
Label: Push 299792
Policy Version: 2 References: 2
Locks: 3 0xb2ab630
Flags: 0x2
INH Session ID: 0x145
INH Version ID: 0
Ref RIB Table: unknown
Next hop: via gr-0/1/0.32769
Label operation: Push 299792
Label TTL action: prop-ttl
Load balance label: Label 299792: None;
Label element ptr: 0xb395d40
Label parent element ptr: 0x0
Label element references: 1
Label element child references: 0
Label element lsp id: 0
Session Id: 0x144
IGP FRR Interesting proto count : 2
Chain IGP FRR Node Num : 1
IGP Resolver node(hex) : 0xb3d36e8
IGP Route handle(hex) : 0xb1af060 IGP rt_entry protocol : Tunnel
IGP Actual Route handle(hex) : 0x0 IGP Actual rt_entry protocol : Any
意义
-
在第一个输出中,设备 PE1 具有通向设备 PE2 的基于下一跃点的动态 GRE 隧道。
-
在第二个输出中,设备 PE2 具有通向设备 PE1 的基于接口的动态 GRE 隧道。
故障 排除
要排除基于下一跳的动态隧道故障,请参阅:
故障排除命令
问题
基于下一跃点的动态 GRE 隧道配置未生效。
溶液
要对基于下一跃点的 GRE 隧道配置进行故障排除,请在[edit routing-options dynamic-tunnels]语句层次结构中使用以下traceoptions命令:
-
traceoptions file file-name -
traceoptions file size file-size -
traceoptions flag all
例如:
[edit routing-options dynamic-tunnels]
traceoptions {
file gre_dyn_pe1.wri size 4294967295;
flag all;
}
示例:配置基于下一跳的 MPLS-over-UDP 动态隧道
此示例说明如何配置包含隧道复合下一跃点的动态 MPLS-over-UDP 隧道。MPLS-over-UDP 功能在设备支持的 IP 隧道数量上提供了扩展优势。
从 Junos OS 18.3R1 版开始,PTX 系列路由器和 QFX 系列交换机支持 MPLS-over-UDP 隧道。对于在 PTX 路由器或 QFX 交换机上配置的每个动态隧道,将创建一个隧道复合下一跃点、一个间接下一跃点和一个转发下一跃点,以解析隧道目标路由。您还可以通过在[edit routing-options dynamic-tunnels]层次结构级别包含 forwarding-rib 配置语句,使用策略控制来解析基于所选前缀的动态隧道问题。
要求
此示例使用以下硬件和软件组件:
-
五台带 MPC 和 MIC 的 MX 系列路由器。
-
在提供商边缘 (PE) 路由器上运行的 Junos OS 16.2 或更高版本。
开始之前:
-
配置设备接口,包括环路接口。
-
配置设备的路由器 ID 和自治系统编号。
-
建立与远程 PE 设备的内部 BGP (IBGP) 会话。
-
在设备之间建立 OSPF 对等互连。
概述
从 Junos OS 16.2 版开始,动态 UDP 隧道支持为配置的每个 UDP 隧道创建隧道复合下一跃点。这些基于下一跳的动态 UDP 隧道称为 MPLS-over-UDP 隧道。默认情况下,为 MPLS-over-UDP 隧道启用隧道复合下一跃点。
MPLS-over-UDP 隧道可以是双向的,也可以是单向的。
-
双向 — 当 PE 设备通过 MPLS-over-UDP 隧道双向连接时,称为双向 MPLS-over-UDP 隧道。
-
单向 — 当两个 PE 设备在一个方向上通过 MPLS-over-UDP 隧道连接,并通过 MPLS/IGP 在另一个方向上连接时,称为单向 MPLS-over-UDP 隧道。
单向 MPLS-over-UDP 隧道可用于迁移场景,或者两个 PE 设备通过两个不相交网络提供相互连接的情况。由于单向 MPLS-over-UDP 隧道不存在反向隧道,因此您必须在远程 PE 设备上配置基于过滤器的 MPLS-over-UDP 解封装,以便转发流量。
从 Junos OS 版本 18.2R1 开始,在采用单向 MPLS-over-UDP 隧道的 PTX 系列路由器和QFX10000上,您必须为远程 PE 设备配置一个用于 MPLS-over-UDP 数据包的输入过滤器,以及一个用于解封 IP 和 UDP 标头的作,以便以反向隧道方向转发数据包。
例如,在远程 PE 设备设备 PE2 上,单向 MPLS-over-UDP 隧道需要以下配置:
PE2
[edit firewall filter] user@host# set Decap_Filter term udp_decap from protocol udp user@host# set Decap_Filter term udp_decap from destination-port 6635 user@host# set Decap_Filter term udp_decap then count UDP_PKTS user@host# set Decap_Filter term udp_decap then decapsulate mpls-in-udp user@host# set Decap_Filter term def then count def_pkt user@host# set Decap_Filter term def then accept
在上面的示例配置中, Decap_Filter 是用于 MPLS-over-UDP 解封装的防火墙过滤器的名称。术语 udp_decap 是输入过滤器,用于在设备 PE2 面向核心的接口上接受 UDP 数据包,然后将 MPLS-over-UDP 数据包解封装为 MPLS-over-IP 数据包进行转发。
您可以使用现有的防火墙作模式命令,例如 show firewall filter 查看基于过滤器的 MPLS-over-UDP 解封装。
例如:
user@host >show firewall filter Decap_Filter Filter: Decap_Filter Counters: Name Bytes Packets UDP_PKTS 16744 149 def_pkt 13049 136
对于单向 MPLS-over-UDP 隧道:
-
仅支持将 IPv4 地址作为外部标头。基于过滤器的 MPLS-over-UDP 解封装不支持外部标头中的 IPv6 地址。
-
解封装后仅支持默认路由实例。
从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,MPLS-over-UDP 隧道的扩展限制将会增加。
从 Junos 19.2R1 版开始,在具有 MPC 和 MIC 的 MX 系列路由器上,运营商支持运营商 (CSC) 架构可以部署在 MPLS-over-UDP 隧道中,通过在支持运营商的 PE 设备之间建立的动态 IPv4 UDP 隧道来传输 MPLS 流量。通过此增强功能,MPLS-over-UDP 隧道提供的扩展优势将进一步增强。IPv6 UDP 隧道不支持对 MPLS-over-UDP 隧道的 CSC 支持。
现有的动态隧道功能需要完整的静态配置。目前,从播发路由中的对等设备接收的隧道信息将被忽略。从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 MPLS-over-UDP 隧道使用 BGP 封装扩展社区发出信号。BGP 导出策略用于指定隧道类型、通告发送方隧道信息以及解析和传送接收方隧道信息。根据接收到的隧道类型创建隧道社区。
BGP 支持多隧道封装。接收到多项功能后,系统会根据配置的 BGP 策略和隧道优先级创建基于下一跳的动态隧道。对于要建立的隧道,隧道优先级应在隧道的两端保持一致。默认情况下,MPLS-over-UDP 隧道优先于 GRE 隧道。如果存在动态隧道配置,则该配置优先于接收到的隧道社区。
配置基于下一跃点的动态 MPLS-over-UDP 隧道时,请注意以下注意事项:
-
必须在 PE 设备之间配置 IBGP 会话。
-
允许在基于下一跳的动态隧道封装(UDP 和 GRE)之间切换,这可能会根据每种模式下支持的 IP 隧道扩展值来影响网络性能。
-
对同一隧道目标同时使用 GRE 和 UDP 基于下一跃点的动态隧道封装类型会导致提交失败。
-
对于单向 MPLS-over-UDP 隧道,您必须在远程 PE 设备上为要转发的数据包显式配置基于过滤器的 MPLS-over-UDP 解封装。
-
MPLS-over-UDP 支持平滑路由引擎切换 (GRES),并且 MPLS-over-UDP 隧道类型标志统一符合 ISSU 和 NSR。
-
精简模式下的虚拟 MX (vMX) 支持 MPLS-over-UDP 隧道。
-
MPLS-over-UDP 隧道支持基于新的 IPv4 映射 IPv6 下一跃点创建动态 GRE 隧道。
-
在与 Contrail 的互作性中支持 MPLS-over-UDP 隧道,其中从 Contrail vRouter 到 MX 网关创建 MPLS-over-UDP 隧道。为此,需要在从 MX 系列路由器到 Contrail vRouter 的路由中播发以下社区:
[edit policy-options community] udp members 0x030c:64512:13;
在给定的时间点,Contrail vRouter 仅支持一种隧道类型:基于下一跳的动态 GRE 隧道、MPLS-over-UDP 隧道或 VXLAN。
-
基于下一跃点的动态 MPLS-over-UDP 隧道配置不支持以下功能:
-
RSVP 自动网格
-
普通 IPV6、GRE 和 UDP 隧道配置
-
逻辑系统
-
拓扑学
图 2 展示了动态 MPLS-over-UDP 隧道上的第 3 层 VPN 场景。客户边缘 (CE) 设备 CE1 和 CE2 分别连接到提供商边缘 (PE) 设备 PE1 和 PE2。PE 设备连接到提供商设备(设备 P1),两个 PE 设备通过内部 BGP (IBGP) 会话互连。PE 设备之间会配置一个基于动态下一跳的双向 MPL-over-UDP 隧道。
MPLS-over-UDP 隧道的处理方式如下:
-
配置 MPLS-over-UDP 隧道后,将为 inet.3 路由表中的隧道创建带有隧道复合下一跃点的隧道目标掩码路由。仅当删除动态隧道配置时,才会撤回此 IP 隧道路由。
隧道复合下一跃点属性包括:
-
禁用第 3 层 VPN 复合下一跃点时 - 源和目标地址、封装字符串和 VPN 标签。
-
启用第 3 层 VPN 复合下一跃点和按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。
-
当启用第 3 层 VPN 复合下一跃点并禁用按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。在这种情况下,路由将添加到另一个具有辅助路由的虚拟路由和转发实例表中。
-
-
PE 设备使用 IBGP 会话进行互连。到远程 BGP 邻接方的 IBGP 路由下一跃点即为协议下一跃点,使用隧道掩码路由与隧道下一跃点进行解析。
-
通过隧道复合下一跳解析协议下一跃点后,将创建具有转发下一跃点的间接下一跃点。
-
隧道复合下一跳用于转发间接下一跃点的下一跃点。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
CE1
set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/8 set interfaces lo0 unit 0 family inet address 10.127.0.1/32 set routing-options router-id 10.127.0.1 set routing-options autonomous-system 65200 set protocols bgp group ce1-pe1 export export-loopback-direct set protocols bgp group ce1-pe1 peer-as 100 set protocols bgp group ce1-pe1 neighbor 10.0.0.2 set policy-options policy-statement export-loopback-direct term term-1 from interface lo0.0 set policy-options policy-statement export-loopback-direct term term-1 from route-filter 10.127.0.1/32 exact set policy-options policy-statement export-loopback-direct term term-1 then accept
CE2 认证
set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.2/24 set interfaces lo0 unit 0 family inet address 10.127.0.5/32 set routing-options router-id 10.127.0.5 set routing-options autonomous-system 65200 set protocols bgp group ce1-pe1 export export-loopback-direct set protocols bgp group ce1-pe1 peer-as 65100 set protocols bgp group ce1-pe1 neighbor 203.0.113.1 set policy-options policy-statement export-loopback-direct term term-1 from interface lo0.0 set policy-options policy-statement export-loopback-direct term term-1 from route-filter 10.127.0.5/32 exact set policy-options policy-statement export-loopback-direct term term-1 then accept
PE1型
set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/8 set interfaces ge-0/0/1 unit 0 family inet address 192.0.2.1/24 set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.2/32 set routing-options static route 10.33.0/16 next-hop 192.0.2.2 set routing-options router-id 10.127.0.2 set routing-options autonomous-system 65100 set routing-options forwarding-table export pplb set routing-options dynamic-tunnels gre next-hop-based-tunnel set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe2 source-address 10.127.0.2 set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe2 udp set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe2 destination-networks 10.127.0.0/24 set protocols bgp group IBGP type internal set protocols bgp group IBGP local-address 10.127.0.2 set protocols bgp group IBGP family inet-vpn unicast set protocols bgp group IBGP neighbor 10.127.0.4 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-instances MPLS-over-UDP-PE1 instance-type vrf set routing-instances MPLS-over-UDP-PE1 interface ge-0/0/0.0 set routing-instances MPLS-over-UDP-PE1 route-distinguisher 10.127.0.2:1 set routing-instances MPLS-over-UDP-PE1 vrf-target target:600:1 set routing-instances MPLS-over-UDP-PE1 protocols bgp group pe1-ce1 peer-as 65200 set routing-instances MPLS-over-UDP-PE1 protocols bgp group pe1-ce1 neighbor 10.0.0.1 as-override
小一
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.2/24 set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/24 set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.3/32 set routing-options router-id 10.127.0.3 set routing-options autonomous-system 65100 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
PE2
set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.1/24 set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.2/24 set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.4/8 set routing-options nonstop-routing set routing-options router-id 10.127.0.4 set routing-options autonomous-system 65100 set routing-options forwarding-table export pplb set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe1 source-address 10.127.0.4 set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe1 udp set routing-options dynamic-tunnels udp-dyn-tunnel-to-pe1 destination-networks 10.127.0.0/24 set protocols bgp group IBGP type internal set protocols bgp group IBGP local-address 10.127.0.4 set protocols bgp group IBGP family inet-vpn unicast set protocols bgp group IBGP neighbor 10.127.0.2 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-instances MPLS-over-UDP-PE2 instance-type vrf set routing-instances MPLS-over-UDP-PE2 interface ge-0/0/0.0 set routing-instances MPLS-over-UDP-PE2 route-distinguisher 10.127.0.4:1 set routing-instances MPLS-over-UDP-PE2 vrf-target target:600:1 set routing-instances MPLS-over-UDP-PE2 protocols bgp group ebgp peer-as 65200 set routing-instances MPLS-over-UDP-PE2 protocols bgp group ebgp neighbor 203.0.113.2 as-override
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置设备 PE1,请执行以下作:
-
配置设备接口,包括设备的环路接口。
[edit interfaces] user@PE1# set ge-0/0/0 unit 0 family inet address 10.0.0.2/8 user@PE1# set ge-0/0/1 unit 0 family inet address 192.0.2.1/24 user@PE1# set ge-0/0/1 unit 0 family mpls user@PE1# set lo0 unit 0 family inet address 10.127.0.2/8
-
为来自设备 PE1 的路由配置静态路由,并将设备 P1 作为下一跳目标。
[edit routing-options] user@PE1# set static route 10.33.0.0/16 next-hop 192.0.2.2
-
配置设备 PE1 的路由器 ID 和自治系统编号。
[edit routing-options] user@PE1# set router-id 10.127.0.2 user@PE1# set autonomous-system 65100
-
(仅限 PTX 系列)配置策略控制以解析基于选定前缀的 MPLS-over-UDP 动态隧道路由。
[edit routing-options dynamic-tunnels] user@PTX-PE1# set forwarding-rib inet.0 inet-import dynamic-tunnel-fwd-route-import
-
(仅限 PTX 系列)配置 inet-import 策略,以便通过 解析动态隧道目标路由。
[edit policy-options] user@PTX-PE1# set policy-statement dynamic-tunnel-fwd-route-import term 1 from route-filter 10.127.0.4/32 exact user@PTX-PE1# set policy-statement dynamic-tunnel-fwd-route-import term 1 then accept user@PTX-PE1# set policy-options policy-statement dynamic-tunnel-fwd-route-import then reject
-
配置 PE 设备之间的 IBGP 对等互连。
[edit protocols] user@PE1# set bgp group IBGP type internal user@PE1# set bgp group IBGP local-address 10.127.0.2 user@PE1# set bgp group IBGP family inet-vpn unicast user@PE1# set bgp group IBGP neighbor 10.127.0.4
-
在设备 PE1 的所有接口上配置 OSPF,管理接口除外。
[edit protocols] user@PE1# set ospf area 0.0.0.0 interface ge-0/0/1.0 user@PE1# set ospf area 0.0.0.0 interface lo0.0 passive
-
在设备 PE1 上启用基于下一跃点的动态 GRE 隧道配置。
注意:仅需要此步骤来说明基于下一跃点的动态 GRE 隧道和 MPLS-over-UDP 隧道之间的实现差异。
[edit routing-options] user@PE1# set dynamic-tunnels gre next-hop-based-tunnel
-
配置从设备 PE1 到设备 PE2 的 MPLS-over-UDP 隧道参数。
[edit routing-options] user@PE1# set dynamic-tunnels udp-dyn-tunnel-to-pe2 source-address 10.127.0.2 user@PE1# set dynamic-tunnels udp-dyn-tunnel-to-pe2 udp user@PE1# set dynamic-tunnels udp-dyn-tunnel-to-pe2 destination-networks 10.127.0.0/24
-
在设备 PE1 上配置 VRF 路由实例和其他路由实例参数。
[edit routing-instances] user@PE1# set MPLS-over-UDP-PE1 instance-type vrf user@PE1# set MPLS-over-UDP-PE1 interface ge-0/0/0.0 user@PE1# set MPLS-over-UDP-PE1 route-distinguisher 10.127.0.2:1 user@PE1# set MPLS-over-UDP-PE1 vrf-target target:600:1
-
在路由实例配置中启用 BGP,以便与设备 CE1 对等。
[edit routing-instances] user@PE1# set MPLS-over-UDP-PE1 protocols bgp group pe1-ce1 peer-as 65200 user@PE1# set MPLS-over-UDP-PE1 protocols bgp group pe1-ce1 neighbor 10.0.0.1 as-override
结果
在配置模式下,输入show interfaces、show routing-optionsshow protocols、和show routing-instances命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show interfaces
ge-0/0/0 {
unit 0 {
family inet {
address 10.0.0.2/8;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 192.0.2.1/24;
}
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 10.127.0.2/32;
}
}
}
user@PE1# show routing-options
static {
route 10.33.0.0/16 next-hop 192.0.2.2;
}
router-id 10.127.0.2;
autonomous-system 65100;
forwarding-table {
export pplb;
}
dynamic-tunnels {
gre next-hop-based-tunnel;
udp-dyn-tunnel-to-pe2 {
source-address 10.127.0.2;
udp;
destination-networks {
10.127.0.0/24;
}
}
}
user@PE1# show protocols
bgp {
group IBGP {
type internal;
local-address 10.127.0.2;
family inet-vpn {
unicast;
}
neighbor 10.127.0.4;
}
}
ospf {
area 0.0.0.0 {
interface ge-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
user@PE1# show routing-instances
MPLS-over-UDP-PE1 {
instance-type vrf;
interface ge-0/0/0.0;
route-distinguisher 10.127.0.2:1;
vrf-target target:600:1;
protocols {
bgp {
group pe1-ce1 {
peer-as 65200;
neighbor 10.0.0.1 {
as-override;
}
}
}
}
}
如果完成设备配置,请从配置模式输入 commit 。
验证
确认配置工作正常。
验证 PE 设备之间的连接
目的
验证设备 PE1 和设备 PE2 之间的 BGP 对等状态,以及从设备 PE2 接收的 BGP 路由。
行动
在作模式下,运行 show bgp summary 和 show route receive-protocol bgp ip-address table bgp.l3vpn.0 命令。
user@PE1> show bgp summary
Groups: 2 Peers: 2 Down peers: 0
Table Tot Paths Act Paths Suppressed History Damp State Pending
bgp.l3vpn.0
2 2 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.127.0.4 65100 139 136 0 0 58:23 Establ
bgp.l3vpn.0: 2/2/2/0
MPLS-over-UDP-PE1.inet.0: 2/2/2/0
10.10.0.1 65200 135 136 0 0 58:53 Establ
MPLS-over-UDP-PE1.inet.0: 1/1/1/0
user@PE1> show route receive-protocol bgp 10.127.0.4 table bgp.l3vpn.0 bgp.l3vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 10.127.0.4:1:127.0.0.5/8 * 10.127.0.4 65100 65200 I
意义
-
在第一个输出中,BGP 会话状态为
Establ,表示会话已启动且 PE 设备处于对等状态。 -
在第二个输出中,设备 PE1 已从设备 PE2 获知 BGP 路由。
验证设备 PE1 上的动态隧道路由
目的
验证 inet.3 路由表中的路由以及设备 PE1 上的动态隧道数据库信息。
行动
在作模式下,运行show route table inet.3、show dynamic-tunnels database terseshow dynamic-tunnels database、和show dynamic-tunnels database summary命令。
user@PE1> show route table inet.3
inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.127.0.0/24 *[Tunnel/300] 00:21:18
Tunnel
127.0.0.4/8 *[Tunnel/300] 00:21:18
Tunnel Composite
user@PE1> show dynamic-tunnels database terse Table: inet.3 Destination-network: 10.127.0.0/24 Destination Source Next-hop Type Status 10.127.0.4/8 10.127.0.2 0xb395b10 nhid 613 udp Up
user@PE1> show dynamic-tunnels database
Table: inet.3
. . .
Tunnel to: 10.127.0.4/32
Reference count: 2
Next-hop type: UDP
Source address: 10.127.0.2 Tunnel Id: 2
Next hop: tunnel-composite, 0xb395b10, nhid 613
VPN Label: Push 299776 Reference count: 3
Traffic Statistics: Packets 0, Bytes 0
State: Up
user@PE1> show dynamic-tunnels database summary Dynamic Tunnels, Total 1 displayed GRE Tunnel: Active Tunnel Mode, Next Hop Base IFL Based, Total 0 displayed, Up 0, Down 0 Nexthop Based, Total 0 displayed, Up 0, Down 0 RSVP Tunnel: Total 0 displayed UDP Tunnel: Total 1 displayed, Up 1, Down 0
意义
-
在第一个输出中,由于设备 PE1 配置了 MPLS-over-UDP 隧道,因此会为 inet.3 路由表路由条目创建隧道复合路由。
-
在其余输出中,将显示 MPLS-over-UDP 隧道,其中包含隧道封装类型、隧道下一跳参数和隧道状态。
验证设备 PE2 上的动态隧道路由
目的
验证 inet.3 路由表中的路由以及设备 PE2 上的动态隧道数据库信息。
行动
在作模式下,运行 show route table inet.3和 show dynamic-tunnels database terse 命令。
user@PE2> show route table inet.3
inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.127.0.0/24 *[Tunnel/300] 00:39:31
Tunnel
10.127.0.2/32 *[Tunnel/300] 00:24:53
Tunnel Composite
user@PE1> show dynamic-tunnels database terse Table: inet.3 Destination-network: 127.0.0.0/8 Destination Source Next-hop Type Status 10.127.0.2/32 10.127.0.4 0xb395450 nhid 615 udp Up
意义
输出显示 MPLS-over-UDP 隧道的创建以及分配给下一跳接口的下一跃点 ID,类似于设备 PE1。
验证路由是否具有预期的间接下一跃点标志
目的
验证设备 PE1 和设备 PE2 是否配置为在数据包转发引擎转发表上维护到转发的间接下一跃点绑定。
行动
在作模式下,对设备 PE1 和设备 PE2 运行 show krt indirect-next-hop 命令。
user@PE1> show krt indirect-next-hop
Indirect Nexthop:
Index: 1048574 Protocol next-hop address: 10.127.0.4
RIB Table: bgp.l3vpn.0
Label: Push 299776
Policy Version: 1 References: 1
Locks: 3 0xb2ab630
Flags: 0x0
INH Session ID: 0x0
INH Version ID: 0
Ref RIB Table: unknown
Tunnel type: UDP, Reference count: 3, nhid: 613
Destination address: 10.127.0.4, Source address: 10.127.0.2
Tunnel id: 2, VPN Label: Push 299776, TTL action: prop-ttl
IGP FRR Interesting proto count : 1
Chain IGP FRR Node Num : 1
IGP Resolver node(hex) : 0xb3c70dc
IGP Route handle(hex) : 0xb1ae688 IGP rt_entry protocol : Tunnel
IGP Actual Route handle(hex) : 0x0 IGP Actual rt_entry protocol : Any
user@PE2> show krt indirect-next-hop
Indirect Nexthop:
Index: 1048575 Protocol next-hop address: 10.127.0.2
RIB Table: bgp.l3vpn.0
Label: Push 299776
Policy Version: 1 References: 2
Locks: 3 0xb2ab740
Flags: 0x0
INH Session ID: 0x0
INH Version ID: 0
Ref RIB Table: unknown
Tunnel type: UDP, Reference count: 3, nhid: 615
Destination address: 10.127.0.2, Source address: 10.127.0.4
Tunnel id: 1, VPN Label: Push 299776, TTL action: prop-ttl
IGP FRR Interesting proto count : 2
Chain IGP FRR Node Num : 1
IGP Resolver node(hex) : 0xb3d3a28
IGP Route handle(hex) : 0xb1ae634 IGP rt_entry protocol : Tunnel
IGP Actual Route handle(hex) : 0x0 IGP Actual rt_entry protocol : Any
意义
输出显示,已在 PE 设备之间创建了一个基于下一跃点的动态 MPLS-over-UDP 隧道。
故障 排除
要排除基于下一跳的动态隧道故障,请参阅:
故障排除命令
问题
基于下一跃点的动态 MPLS-over-UDP 隧道配置未生效。
溶液
要对基于下一跃点的 MPLS-over-UDP 隧道配置进行故障排除,请在[edit routing-options dynamic-tunnels]语句层次结构中使用以下traceroute命令:
-
traceoptions file file-name -
traceoptions file size file-size -
traceoptions flag all
例如:
[edit routing-options dynamic-tunnels]
traceoptions {
file udp_dyn_pe1.wri size 4294967295;
flag all;
}
基于下一跳的动态隧道的反欺骗保护概述
随着在数据中心部署大规模 IP 隧道的次数增加,用户需要增加安全措施,以限制来自受损虚拟机 (VM) 的恶意流量。一种可能的攻击是通过网关路由器将流量从受攻击的服务器注入到任意客户 VPN。在这种情况下,对 IP 隧道的反欺骗检查可确保只有合法来源才能从其指定的 IP 隧道将流量注入数据中心。
基于下一跳的动态 IP 隧道会为设备上创建的每个动态隧道创建一个隧道复合下一跳。由于基于下一跃点的动态隧道消除了配置的每个新动态隧道对物理接口的依赖性,因此配置基于下一跃点的动态隧道可提供相对于设备上可创建的动态隧道数量的扩展优势。从 Junos OS 17.1 版开始,为基于下一跳的动态隧道提供了基于下一跳的动态 IP 隧道的反欺骗功能。借助此增强功能,将实施安全措施以防止通过网关路由器将流量从受感染的服务器注入到任意客户 VPN。
反欺骗是通过在数据包转发引擎中使用反向路径转发检查来实现的。将对通过隧道到达路由实例的流量实施检查。目前,当网关路由器从隧道接收流量时,我们只会完成目标查找,并相应地转发数据包。启用反欺骗保护后,除了隧道目标查找外,网关路由器还会对 VPN 中的封装数据包 IP 标头进行源地址查找。这可以确保合法来源通过其指定的 IP 隧道注入流量。因此,反欺骗保护可确保从指定隧道上的合法来源接收隧道流量。
图 3 显示了一个示例拓扑,其中包含反欺骗保护的要求。
的反欺骗保护
在此示例中,网关路由器为路由器 G。路由器 G 有两个 VPN:绿色和蓝色。服务器 A 和服务器 B 两台服务器分别可以通过基于下一跳的动态隧道 T1 和 T2 到达路由器 G 上的绿色和蓝色 VPN。连接到服务器的多个主机和虚拟机(P、Q、R、S 和 T)可以通过网关路由器路由器 G 访问 VPN。路由器 G 具有绿色和蓝色 VPN 的虚拟路由和转发 (VRF) 表,每个表都填充了这些 VPN 中虚拟机的可访问性信息。
例如,在 VPN Green 中,路由器 G 使用隧道 T1 到达主机 P,使用隧道 T2 到达主机 R 和 S,并在隧道 T1 和 T2 之间进行负载平衡以到达多宿主主机 Q。在 VPN Blue 中,路由器 G 使用隧道 T1 访问主机 P 和 R,并使用隧道 T2 访问主机 Q 和 T。
在以下情况下,反向路径转发检查通过:
数据包来自其指定隧道上的合法来源。
VPN 绿色中的主机 P 使用隧道 T1 向主机 X 发送数据包。由于路由器 G 可以通过隧道 T1 到达主机 P,因此允许数据包通过并将数据包转发至主机 X。
数据包来自其指定隧道上的多宿主源。
VPN Green 中的主机 Q 在服务器 A 和 B 上多宿主,可以通过隧道 T1 和 T2 到达路由器 G。主机 Q 使用隧道 T1 向主机 Y 发送数据包,并使用隧道 T2 向主机 X 发送数据包。由于路由器 G 可以通过隧道 T1 和 T2 到达主机 Q,因此允许数据包传递并分别转发至主机 Y 和 X。
默认情况下,第 3 层 VPN 不会启用反欺骗保护。要为基于下一跃点的动态隧道启用反欺骗,请在[edit routing-instances routing-instance-name routing-options forwarding-table]层次结构级别包含ip-tunnel-rpf-check语句。反向路径转发检查仅应用于 VRF 路由实例。默认模式设置为 strict,其中来自非指定隧道上源的数据包未通过检查。该ip-tunnel-rpf-check模式可以设置为 loose,当数据包来自不存在的源时,反向路径转发检查将失败。可以在语句下ip-tunnel-rpf-check配置可选的防火墙过滤器,以计算和记录未通过反向路径转发检查的数据包。
以下示例输出显示了反欺骗配置:
[edit routing-instances routing-instance-name routing-options forwarding-table]
ip-tunnel-rpf-check {
mode loose;
fail-filter filter-name;
}
为基于下一跃点的动态隧道配置反欺骗保护时,请遵循以下准则:
只能为 IPv4 隧道和 IPv4 数据流量启用反欺骗保护。IPv6 隧道和 IPv6 数据流量不支持反欺骗功能。
基于下一跃点的动态隧道的反欺骗可以检测并防止遭到入侵的虚拟机(内部源反向路径转发检查),但不能检测并阻止遭到入侵的服务器进行标签欺骗。
基于下一跃点的 IP 隧道可以在 inet.0 路由表上发起和终止。
当 VRF 路由实例具有标签交换接口 (LSI)(使用
vrf-table-label)或虚拟隧道 (VT) 接口时,反欺骗保护将有效。在 VRF 路由实例上使用per-next-hop标签时,不支持反欺骗保护。仅
rpf fail-filter适用于内部 IP 数据包。启用反欺骗检查不会影响设备上基于下一跳的动态隧道的扩展限制。
为 VRF 路由实例启用了反欺骗保护的系统资源利用率略高于未启用反欺骗保护的基于下一跳的动态隧道的利用率。
反欺骗保护需要额外的源 IP 地址检查,这对网络性能的影响最小。
平滑路由引擎切换 (GRES) 和不中断服务的软件升级 (ISSU) 具有反欺骗保护功能。
示例:为基于下一跳的动态隧道配置反欺骗保护
此示例说明如何为虚拟路由和转发 (VRF) 路由实例配置反向路径转发检查,以便为基于下一跃点的动态隧道启用反欺骗保护。这些检查可确保合法来源通过其指定的 IP 隧道注入流量。
要求
此示例使用以下硬件和软件组件:
三台带 MIC 的 MX 系列路由器,每个连接到一台主机设备。
在一台或所有路由器上运行的 Junos OS 17.1 或更高版本。
开始之前:
在灵活 PIC 集中器上启用通道服务配置。
配置路由器接口。
配置路由器 ID 并为路由器分配一个自治系统编号。
建立与隧道端点的内部 BGP (IBGP) 会话。
在所有路由器上配置 RSVP。
在所有路由器上配置 OSPF 或任何其他内部网关协议。
在两台路由器之间配置两个基于下一跳的动态 IP 隧道。
为每个路由器到主机连接配置一个 VRF 路由实例。
概述
从 Junos OS 17.1 版开始,该功能已添加到基于下一跳的动态 IP 隧道中,其中使用数据包转发引擎中的反向路径转发,对通过隧道到达路由实例的流量进行检查。
目前,当网关路由器从隧道接收流量时,仅在转发前进行目标地址查找。借助反欺骗保护,网关路由器可以对 VPN 中的封装数据包 IP 报头进行源地址查找,以确保合法来源通过其指定的 IP 隧道注入流量。这称为严格模式,是反欺骗保护的默认行为。要从非指定隧道传递流量,将在丢失模式下启用反向路径转发检查。对于从不存在的源接收的流量,严格模式和松散模式的反向路径转发检查都会失败。
VRF 路由实例支持反欺骗。要为动态隧道启用反欺骗,请在[edit routing-instances routing-instance-name routing-options forwarding-table]层次结构级别包含ip-tunnel-rpf-check语句。
拓扑学
图 4 显示了启用了反欺骗保护的网络拓扑示例。路由器 R0、R1 和 R2 分别连接到主机 Host0、Host1 和 Host2。两个基于下一跳的通用路由封装 (GRE) 动态隧道(隧道 1 和隧道 2)分别将路由器 R0 与路由器 R1 和 R2 连接起来。VRF 路由实例在每个路由器及其连接的主机设备之间运行。
的反欺骗保护
例如,路由器 0 通过基于下一跳的动态 GRE 隧道(隧道 2)从路由器 R2 接收三个数据包(数据包 A、B 和 C)。这些数据包的源 IP 地址为 172.17.0.2(数据包 A)、172.18.0.2(数据包 B)和 172.20.0.2(数据包 C)。
数据包 A 和 B 的源 IP 地址分别属于主机 2 和主机 1。数据包 C 是不存在的源隧道。此示例中的指定隧道为隧道 2,非指定隧道为隧道 1。因此,数据包的处理方式如下:
Packet A— 由于源来自指定的隧道(隧道 2),因此数据包 A 通过反向路径转发检查,并经过处理以通过隧道 2 进行转发。
Packet B— 由于源来自隧道 1,这是一个非指定隧道,因此默认情况下,数据包 B 在严格模式下无法通过反向路径转发检查。如果启用了松散模式,则允许转发数据包 B。
Packet C—由于源是不存在的隧道源,数据包 C 未通过反向路径转发检查,因此数据包未被转发。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
路由器 R0
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.1/24 set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/24 set interfaces ge-0/0/2 vlan-tagging set interfaces ge-0/0/2 unit 0 vlan-id 1 set interfaces ge-0/0/2 unit 0 family inet address 172.16.0.1/16 set interfaces lo0 unit 0 family inet address 10.1.1.1/32 set routing-options router-id 10.1.1.1 set routing-options autonomous-system 100 set routing-options dynamic-tunnels gre next-hop-based-tunnel set routing-options dynamic-tunnels T1 source-address 192.0.2.1 set routing-options dynamic-tunnels T1 gre set routing-options dynamic-tunnels T1 destination-networks 192.0.2.0/24 set routing-options dynamic-tunnels T2 source-address 198.51.100.1 set routing-options dynamic-tunnels T2 gre set routing-options dynamic-tunnels T2 destination-networks 198.51.100.0/24 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols bgp group IBGP type internal set protocols bgp group IBGP local-address 10.1.1.1 set protocols bgp group IBGP family inet-vpn unicast set protocols bgp group IBGP neighbor 20.1.1.1 set protocols bgp group IBGP neighbor 30.1.1.1 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface all set routing-instances VPN1 instance-type vrf set routing-instances VPN1 interface ge-0/0/2.0 set routing-instances VPN1 route-distinguisher 100:100 set routing-instances VPN1 vrf-target target:100:1 set routing-instances VPN1 vrf-table-label set routing-instances VPN1 routing-options forwarding-table ip-tunnel-rpf-check mode strict set routing-instances VPN1 protocols bgp group External type external set routing-instances VPN1 protocols bgp group External family inet unicast set routing-instances VPN1 protocols bgp group External peer-as 200 set routing-instances VPN1 protocols bgp group External neighbor 172.16.0.1
路由器 R1
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.2/24 set interfaces ge-0/0/1 vlan-tagging set interfaces ge-0/0/1 unit 0 vlan-id 2 set interfaces ge-0/0/1 unit 0 family inet address 172.18.0.1/16 set interfaces lo0 unit 0 family inet address 20.1.1.1/32 set routing-options router-id 20.1.1.1 set routing-options autonomous-system 100 set routing-options dynamic-tunnels gre next-hop-based-tunnel set routing-options dynamic-tunnels T1 source-address 192.0.2.2 set routing-options dynamic-tunnels T1 gre set routing-options dynamic-tunnels T1 destination-networks 192.0.2.0/24 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols bgp group IBGP type internal set protocols bgp group IBGP local-address 20.1.1.1 set protocols bgp group IBGP family inet-vpn unicast set protocols bgp group IBGP neighbor 30.1.1.1 set protocols bgp group IBGP neighbor 10.1.1.1 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface all set routing-instances VPN2 instance-type vrf set routing-instances VPN2 interface ge-0/0/1.0 set routing-instances VPN2 route-distinguisher 100:200 set routing-instances VPN2 vrf-target target:200:1 set routing-instances VPN2 vrf-table-label
R2
set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.2/24 set interfaces ge-0/0/2 vlan-tagging set interfaces ge-0/0/2 unit 0 vlan-id 3 set interfaces ge-0/0/2 unit 0 family inet address 172.17.0.1/16 set interfaces lo0 unit 0 family inet address 30.1.1.1/32 set routing-options router-id 30.1.1.1 set routing-options autonomous-system 100 set routing-options dynamic-tunnels gre next-hop-based-tunnel set routing-options dynamic-tunnels T2 source-address 198.51.100.2 set routing-options dynamic-tunnels T2 gre set routing-options dynamic-tunnels T2 destination-networks 198.51.100.0/24 set protocols rsvp interface all set protocols rsvp interface fxp0.0 disable set protocols bgp group IBGP type internal set protocols bgp group IBGP local-address 30.1.1.1 set protocols bgp group IBGP family inet-vpn unicast set protocols bgp group IBGP neighbor 20.1.1.1 set protocols bgp group IBGP neighbor 10.1.1.1 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface all set routing-instances VPN3 instance-type vrf set routing-instances VPN3 interface ge-0/0/2.0 set routing-instances VPN3 route-distinguisher 100:300 set routing-instances VPN3 vrf-target target:300:1 set routing-instances VPN3 vrf-table-label
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置路由器 R0:
配置路由器 R0 的接口,包括环路接口。
[edit interfaces] user@R0# set ge-0/0/0 unit 0 family inet address 192.0.2.1/24 user@R0# set ge-0/0/1 unit 0 family inet address 198.51.100.1/24 user@R0# set ge-0/0/2 vlan-tagging user@R0# set ge-0/0/2 unit 0 vlan-id 1 user@R0# set ge-0/0/2 unit 0 family inet address 172.16.0.1/16 user@R0# set lo0 unit 0 family inet address 10.1.1.1/32
为路由器 R0 分配路由器 ID 和自治系统编号。
[edit routing-options] user@R0# set router-id 10.1.1.1 user@R0# set autonomous-system 100
配置路由器之间的 IBGP 对等互连。
[edit protocols] user@R0# set bgp group IBGP type internal user@R0# set bgp group IBGP local-address 10.1.1.1 user@R0# set bgp group IBGP family inet-vpn unicast user@R0# set bgp group IBGP neighbor 20.1.1.1 user@R0# set bgp group IBGP neighbor 30.1.1.1
在路由器 R0 的所有接口上配置 OSPF,管理接口除外。
[edit protocols] user@R0# set ospf traffic-engineering user@R0# set ospf area 0.0.0.0 interface lo0.0 passive user@R0# set ospf area 0.0.0.0 interface all
在路由器 R0 的所有接口上配置 RSVP,管理接口除外。
[edit protocols] user@R0# set rsvp interface all user@R0# set rsvp interface fxp0.0 disable
在路由器 R0 上启用基于下一跃点的动态 GRE 隧道配置。
[edit routing-options] user@R0# set dynamic-tunnels gre next-hop-based-tunnel
配置从路由器 R0 到路由器 R1 的动态 GRE 隧道参数。
[edit routing-options] user@R0# set dynamic-tunnels T1 source-address 192.0.2.1 user@R0# set dynamic-tunnels T1 gre user@R0# set dynamic-tunnels T1 destination-networks 192.0.2.0/24
配置从路由器 R0 到路由器 R2 的动态 GRE 隧道参数。
[edit routing-options] user@R0# set dynamic-tunnels T2 source-address 198.51.100.1 user@R0# set dynamic-tunnels T2 gre user@R0# set dynamic-tunnels T2 destination-networks 198.51.100.0/24
在路由器 R0 上配置虚拟路由和转发 (VRF) 路由实例,并将连接到主机 1 的接口分配给 VRF 实例。
[edit routing-instances] user@R0# set VPN1 instance-type vrf user@R0# set VPN1 route-distinguisher 100:100 user@R0# set VPN1 vrf-target target:100:1 user@R0# set VPN1 vrf-table-label user@R0# set VPN1 interface ge-0/0/2.0
为 VRF 路由实例配置与主机 1 的外部 BGP 会话。
[edit routing-instances] user@R0# set VPN1 protocols bgp group External type external user@R0# set VPN1 protocols bgp group External family inet unicast user@R0# set VPN1 protocols bgp group External peer-as 200 user@R0# set VPN1 protocols bgp group External neighbor 172.16.0.1
为路由器 R0 上的 VRF 路由实例配置反欺骗保护。这将对路由器 0 上基于下一跃点的动态隧道 T1 和 T2 启用反向路径转发检查。
[edit routing-instances] user@R0# set VPN1 routing-options forwarding-table ip-tunnel-rpf-check mode strict
结果
在配置模式下,输入show interfaces、show routing-optionsshow protocols、和show routing-options命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@R0# show interfaces
ge-0/0/0 {
unit 0 {
family inet {
address 192.0.2.1/24;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 198.51.100.1/24;
}
}
}
ge-0/0/2 {
vlan-tagging;
unit 0 {
vlan-id 1;
family inet {
address 172.16.0.1/16;
}
}
}
lo0 {
unit 0 {
family inet {
address 10.1.1.1/32;
}
}
}
user@R0# show routing-options
router-id 10.1.1.1;
autonomous-system 100;
dynamic-tunnels {
gre next-hop-based-tunnel;
T1 {
source-address 192.0.2.1;
gre;
destination-networks {
192.0.2.0/24;
}
}
T2 {
source-address 198.51.100.1;
gre;
destination-networks {
198.51.100.0/24;
}
}
}
user@R0# show protocols
rsvp {
interface all;
interface fxp0.0 {
disable;
}
}
bgp {
group IBGP {
type internal;
local-address 10.1.1.1;
family inet-vpn {
unicast;
}
neighbor 20.1.1.1;
neighbor 30.1.1.1;
}
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface lo0.0 {
passive;
}
interface all;
}
}
user@R0# show routing-instances
VPN1 {
instance-type vrf;
interface ge-0/0/2.0;
route-distinguisher 100:100;
vrf-target target:100:1;
vrf-table-label;
routing-options {
forwarding-table {
ip-tunnel-rpf-check {
mode strict;
}
}
}
protocols {
bgp {
group External {
type external;
family inet {
unicast;
}
peer-as 200;
neighbor 172.16.0.1;
}
}
}
}
验证
确认配置工作正常。
验证基本配置
目的
验证路由器 R0 与路由器 R1 和 R2 之间的 OSPF 和 BGP 对等状态。
行动
在作模式下,运行 show ospf neighbor 和 show bgp summary命令。
user@R0> show ospf neighbor
Address Interface State ID Pri Dead
192.0.2.2 ge-0/0/0.0 Full 20.1.1.1 128 32
198.51.100.2 ge-0/0/1.0 Full 30.1.1.1 128 32
user@R0> show bgp summary
Groups: 2 Peers: 3 Down peers: 1
Table Tot Paths Act Paths Suppressed History Damp State Pending
bgp.l3vpn.0
0 0 0 0 0 0
Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
20.1.1.1 100 182 178 0 0 1:20:27 Establ
bgp.l3vpn.0: 0/0/0/0
30.1.1.1 100 230 225 0 0 1:41:51 Establ
bgp.l3vpn.0: 0/0/0/0
172.16.0.1 200 0 0 0 0 1:42:08 Establ
意义
OSPF 和 BGP 会话已在路由器 R0、R1 和 R2 之间启动并运行。
验证动态隧道配置
目的
验证路由器 R0 与路由器 R1 和 R2 之间基于下一跃点的动态 GRE 隧道的状态。
行动
在作模式下,运行 show route table inet.3和 show dynamic-tunnels database terse 命令。
user@R0> show route table inet.3
inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.0.2.0/24 *[Tunnel/300] 01:47:57
Tunnel
192.0.2.2/24 *[Tunnel/300] 01:47:57
Tunnel Composite
198.51.100.0/24 *[Tunnel/300] 01:47:57
Tunnel
198.51.100.2/24 *[Tunnel/300] 01:47:57
Tunnel Composite
user@R0> show dynamic-tunnels database terse Table: inet.3 Destination-network: 192.0.2.0/24 Destination Source Next-hop Type Status 192.0.2.2/24 192.0.2.1 0xb395e70 nhid 612 gre Up Destination-network: 198.51.100.0/24 Destination Source Next-hop Type Status 198.51.100.2 198.51.100.1 0xb395e70 nhid 612 gre Up
意义
两个基于下一跃点的动态 GRE 隧道(隧道 1 和隧道 2)已启动。
验证反欺骗保护配置
目的
验证是否已在路由器 R0 上的 VRF 路由实例上启用反向路径转发检查。
行动
在作模式下,运行 show krt table VPN1.inet.0 detail.
user@R0> show krt table VPN1.inet.0 detail
KRT tables:
VPN1.inet.0 : GF: 1 krt-index: 8 ID: 0 kernel-id: 8
flags: (null)
tunnel rpf config data : enable, strict, filter [0], 0x2
tunnel rpf tlv data : enable, strict, filter [0], 0x4
unicast reverse path: disabled
fast-reroute-priority: 0
Permanent NextHops
Multicast : 0 Broadcast : 0
Receive : 0 Discard : 0
Multicast Discard: 0 Reject : 0
Local : 0 Deny : 0
Table : 0
意义
配置的反向路径转发检查会在严格模式下的 VRF 路由实例上启用。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。