HCIP-Route&Switch

ACL

ACL = 从上到下
命中即停
剩余流量继续匹配
最后隐式 deny

策略路由

PBR ( Poliy Based Routing )
- 路由策略 : 华为的
- 可以通过修改路由条目(即对接受和发布的路由进行过滤)来控制流量可达性,这种方式称为路由策略
- 策略路由 : 通用
- 看直接通过依据用户指定的策略(例如: 基于源地址)进行转发, 该策略优于路由表转发,这种方式称为策略路由
- 在路由表中看不到
- 策略路由的查找优先级比路由表高,不改变路由表中的任何内容

路由策略和策略路由的区别

| 路由策略 | 策略路由 |
| :-----: | :----: |
| 基于控制平面,会影响路由表表项 | 基于转发平面,不会影响路由表表项,且设备收到报文后,会先查找策略路由进行匹配转发,若匹配失败,则再查找路由表进行转发 |
| 只能基于目的地址进行策略制定 | 可基于源地址,目的地址,协议类型,报文大小等进行策略制定 |
| 与路由协议结合使用 | 需手工逐跳配置,以保证报文按策略进行转发 |
| 常用:route-policy``filter-policycost优先级等 | 常用:
Traffic-filter
traffic-policy
policy-based-route等 |

区别和联系:

  • 两者都是为了改变网络流量的转发路径,目的一样,但是实现方式不一样
  • 路由策略时通过更改某些路由表的路由条目来影响报文的转发
  • 策略路由是通过管理员在路由器上面配置策略强制数据包按照策略转发,策略路由优先于路由表

路由策略

模拟时有两条路相同的情况下可以在接口用ospf cost *来实现选路
route-policyfilter-policy在ospf中实现选路并不是特别好用,主要是bgp使用

ospf举例:

acl 2000
rule 5 deny source 7.7.7.0 0.0.0.255 (1 matches)
rule 10 permit (8 matches)

ospf 1 router-id 1.1.1.1
filter-policy 2000 import
# filter-policy实现过滤掉7.7.7.0/24的路由
area 0.0.0.0
network 1.1.1.0 0.0.0.255
network 12.1.1.0 0.0.0.255
network 13.1.1.0 0.0.0.255

# -------------------------------------------
route-policy aa permit node 10
if-match tag 22
if-match ip-prefix ee

route-policy aa permit node 20
if-match ip-prefix cc

ospf 1
import-route rip 1 route-policy [name]

# 在使用路由策略中,
# 同名字不同node是 或
# 同node中的if-match是 与

# 与 或 非 = and or not

关于route-policyfilter-policy的更多内容在后期的bgp中会详细解释

策略路由

分类:
1. 本地策略路由
- 不常用 只能控制自己的流量,下方交换机等传入转发的数据无法策略
- 对本设备发送的报文实现策略路由,比如本机自己发送的ICMP,BGP报文等
- 需要实现不同源地址的报文或者不同长度的报文通过不同的方式进行发送时,可以配置本地策略路由
- 常用 Policy-Based-Route 工具实现
- 调试方式举例: ] ip local policy-based-route [policy name]
2. 接口策略路由
- 最常用
- 对流经本设备的转发流量生效,对本设备自己主动发送的报文不生效
- 当用户需要将收到的某些报文通过特定的下一跳地址进行转发时,需要配置接口策略路由
- 匹配的报文通过特定的下一跳出口进行转发,不匹配的则根据路由表转发
- 接口策略路由多应用于负载分担和安全监控
- 常用Traffic-Policy工具实现
- 调用方式举例: int gx/x/x] traffic-policy [policy name] inbound 对于进入接口的流量调用策略路由
3. 智能策略路由
- 不常用
- 基于链路质量信息为业务数据流选择最佳链路, HCIP 和 IE 都不教

本地策略路由

只能对由本机主动发送的流量生效,对流经自己(转发的流量)的报文不生效

示例:

]acl number 3000
rule 5 permit ip destination 4.4.4.4 0
# 判断如果目标是4.4.4.4

]policy-based-route test permit node 10
if-match acl 3000
apply ip-address next-hop 13.1.1.3
# 如果匹配到acl 3000所匹配的数据包就强制此数据包的下一跳转发的地址

]ip local policy-based-route test
# 调用本地策略路由

路由表:
4.4.4.0/24 OSPF 10 3 D 12.1.1.2 GigabitEthernet 0/0/0

# 路由器路由追踪实际所走:
]tracert 4.4.4.4
traceroute to 4.4.4.4(4.4.4.4), max hops: 30 ,packet length: 40,press CTRL_C to break
1 13.1.1.3 30 ms 20 ms 20 ms
2 34.1.1.4 10 ms 20 ms 20 ms
3 * 4.4.4.4 20 ms 20 ms

# PC路由追踪依然走ospf路由
PC>tracert 4.4.4.4
traceroute to 4.4.4.4, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.1.1.1 31 ms 47 ms 47 ms
2 12.1.1.2 31 ms 47 ms 47 ms
3 24.1.1.4 62 ms 63 ms 47 ms
4 4.4.4.4 62 ms 63 ms 62 ms

# 查看本地策略路由
]dis policy-based-route
policy-based-route : test
Node 10 permit :
if-match acl 3000
apply ip-address next-hop 13.1.1.3

接口策略路由

注意:如果是华为eNSP模拟器路由器只能使用ar3260才可以生效

1. 分类
# acl匹配流量
]acl 2001
rule permit source 1.1.1.2 0

]acl 2002
rule permit source 1.1.1.3 0

# 调用acl对类的流量进行匹配
]traffic classifier EngineerD
EngineerD]if-match acl 2001

]traffic classifier FinanceD
FinanceD]if-match acl 2002

# 查看分类
]dis traffic classifier user-defined
2. 动作
]traffic behavior EngineerD
EngineerD]redirect ip-nexthop 12.1.1.2

]traffic behavior FinanceD
FinanceD]redirect ip-nexthop 13.1.1.3

# 查看动作
]dis traffic behavior user-defined

3. 将动作和分类关联到策略
]traffic policy test
trafficpolicy-test]classifier EngineerD behavior EngineerD
trafficpolicy-test]classifier FinanceD behavior FinanceD

# 查看策略
]dis traffic policy user-defined
4. 将策略分配到接口
# 注意,目前基于接口的策略路由只针对入方向生效
G*/*/*]traffic-policy test inbound

# 查看分配到接口的策略
]dis traffic-policy applied-record
5. 结果
1.1.1.2 PC
traceroute to 4.4.4.4, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.1.1.1 31 ms 47 ms 47 ms
2 12.1.1.2 31 ms 47 ms 47 ms
3 24.1.1.4 31 ms 47 ms 62 ms
4 *4.4.4.4 47 ms 63 ms

1.1.1.3 PC
traceroute to 4.4.4.4, 8 hops max
(ICMP), press Ctrl+C to stop
1 1.1.1.1 31 ms 47 ms 47 ms
2 13.1.1.3 47 ms 62 ms 32 ms
3 34.1.1.4 47 ms 62 ms 47 ms
4 4.4.4.4 47 ms 47 ms 31 ms

BFD技术

Bidirectional Forwarding Detection

双向转发检测

华为目前使用版本V1 使用端口 UDP 3784

QOS报文优先级7 最高

毫秒级链路故障检测,通常结合三层协议(如静态路由,vrrp,ospf,BGP等)实现链路故障快速检查和切换

作用:
- 检测二层非直连故障
- 加快三层协议收敛

静态路由联动BFD

静态BFD

配置:
]bfd
bfd]quit
]bfd 1 bind peer-ip 12.1.1.2 source-ip 12.1.1.1
]discriminator local 1
]discriminator remote 2
]commit

绑定:
]ip route-static 2.2.2.0 255.255.255.0 12.1.1.2 preference 50 track bfd-session 1

另一台设备相同配置
]discriminator local 2
]discriminator remote 1
但是要互为对称

补充:
查看路由表中的静态路由协议
]dis ip routing-table protocol static

查看BFD连接情况
dis bfd session all [verbose] #详细信息

动态BFD

]bfd
bfd]quit
]bfd [name] bind peer-ip 12.1.1.2 source-ip 12.1.1.1 auto
bfd]commit

]ip route-static 2.2.2.0 255.255.255.0 12.1.1.2 preference 50 track bfd-sessio [name]

动态路由联动BFD

ospf 联动

全部接口启用
]bfd
bfd]quit
]ospf 1 route-id 1.1.1.1
ospf-1]bfd all-interfaces enable
ospf-1]network ......

单接口指定
g0/0/1]ospf bfd enable

BFD 单臂回声

one arm echo

此功能三层上必须直连才行 中间可以有交换机

]bfd
bfd]quit
]bfd test bind peer-ip 12.1.1.2 interface Ethernet0/0/0 source-ip 21.1.1.1 one-arm-echo
test] discriminator local 100
test] commit

source 21.1.1.1 是BFD的源地址
interface E0/0/0 12.1.1.1 作为出接口
peer-ip 12.1.1.2 作为对端地址,BFD需要依靠高地址探测对方的MAC地址同时作为建立BFD会话使用

意思是说,对端是12.1.1.2 要用接口E0/0/0口发送并且作为目的地址
E0/0/0的ip为12.1.1.1
source-ip要同路由器的不同ip来作为源地址发送,不能自己给自己发
然后指定下这是单臂回声的命令

DHCP进阶

全局DHCP配置

]dhcp enable
]ip pool [name]
pool] gateway-list 192.168.1.1
pool] network 192.168.1.0 mask 255.255.255.0
pool] dns-list 8.8.8.8 114.114.114.114
pool] excluded-ip-address 192.168.1.2 [192.168.1.10] # 写第二个就是2-10
pool] lease day 3 hour 0 minute 0

G0/0/0] ip add 192.168.1.1 24
G0/0/0] dhcp select global

基于接口的DHCP配置

接口地址池优先于全局地址池分配地址,即若接口上存在接口地址池,即使全局地址池也存在,客户端也会优先从接口地址池中获取地址。

]dhcp enable
G0/0/0] ip add 192.168.1.1 24
G0/0/0] dhcp select interface
G0/0/0] dhcp server dns-list 8.8.8.8 114.114.114
G0/0/0] excluded-ip-address 192.168.1.2 [192.168.1.10]
G0/0/0] lease day 3 hour 0 minute 0

查看详细信息
dis ip pool interface e0/0/0 used

DHCP 冲突检测

此命令应用于DHCP服务端,为防止ip地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先执行 dhcp server ping 命令发送ping报文探测地址的使用情况

S3700/5700/6700系列交换机从V100R006C00版本开始在接收到客户端的Discover报文时就开始ping准备分给客户端的地址

DHCP中继

由于DHCP服务器和用户不在同一个vlan(即不在一个广播域),因此,dhcp广播报文无法发送到dhcp服务器,此时在核心交换机上面配置dhcp中继,将dhcp广播请求变为单薄发送到dhcp服务器,源地址由0.0.0.0变成相应vlanif接口的ip地址,目标地址由255.255.255.255变成dhcp服务器的单播地址,广播包变成单播包被中继到dhcp服务器,完成地址分配

服务器配置:
ip pool vlan_9
gateway-list 192.168.9.1
network 192.168.9.0 mask 255.255.255.0
dns-list 8.8.8.8

interface Ethernet0/0/0
ip address 12.1.1.2 24
dhcp select global

中继交换机配置:
interface Vlanif9
ip address 192.168.9.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 12.1.1.2

DHCP Snooping

防止非法的DHCP服务器

设置snooping后默认所有的端口都是非信任口,要在接口添加trusted

] dhcp enable
] dhcp snooping enable
vlan*] dhcp snooping enable
# 注意事vlan* 不是vlanif
int G*] dhcp snooping trusted
# 因为默认全部都是非信任口,所以要自己定义那个口是可以信任的

安全防护

防止DHCP饿死攻击

# 对DHCP Request报文的源地址跟Chaddr进行一致性检查,不一致直接丢弃报文

# 在所有用户连接交换机的接口
] port-group group-member G* to G*
port-group] dhcp snooping check dhcp-chaddr enable

防止DHCP中间人攻击

# 查看snooping绑定表
# 这个表是交换机窥探dhcp报文得来的 是存在缓存里的,重启会消失
] dis dhcp snooping user-bind all

# 设置一个表的自动备份,防止私接傻瓜交换机 文件名一定是.tbl
] dhcp snooping user-bind autosave flash:/[name].tbl

# 手动添加snooping绑定表,适合特殊情况下手动配置ip的用户
] user-bind static ip-address 192.168.1.1 mac-address 5489-986F-1DAA interface G0/0/4 vlan 8

# 一些老版本的交换机查看手动绑定的命令不同
] dis user-bind all

# 开启放中间人攻击
] arp dhcp-snooping-detect enable

防止DHCP仿冒攻击

snooping 与 IPSG ( IP Source Guard )技术联动

针对于源ip进行欺骗的攻击行为
例如攻击者仿冒合法用户的ip地址来向服务器发送ip报文

交换机开启IPSG功能后,会对进入交换机端口的报文进行合法性检查,并对报文进行过滤(合法转发,不合法丢弃)

报文检查项可以是源ip,源mac,vlan和物理端口号的若干种组合
例如交换机端口视图下:
IP+MAC
IP+Vlan
IP+MAC+Vlan
...等组合
交换机vlan视图下:
IP+MAC
IP+物理端口
IP+MAC+物理端口
...等组合

# 默认MAC IP等全部开启合法性检查
interface / vlan* ] ip source check user-bind enable

# 单独的
interface / vlan* ] ip source check user-bind check-item ?
ip-address IP address
mac-address MAC address
vlan Virtual LAN

MSTP + VRRP

MSTP

Multiple Spanning Tree Protocol

华为交换机出厂默认开启MSTP技术

默认情况下所有的vlan都属于组0 (instance 0 )

默认的mstp域名是交换机的桥MAC地址

默认的Revision level是0

默认出厂配置︰
[sw2]dis stp region-configuration
Oper configuration
Format selector : 0
Region name : 4c1fcc002299
Revision level : 0

instance VLANs Mapped
0 1 to 4094

一般设计可靠型企业网分为两种
- 第一种 VRRP+MSTP (传统, 公有, 造价小, 技术复杂, 管理难度大, 旧网改造, 老旧设备)
- 第二种 堆叠 (推荐, 现代, 造价高, 技术简单,管理简单, 私有技术, 新建网络)

MST域

(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及他们之间的网段所构成,同一个MST域的设备具有以下特点
- 都启动了MSTP
- 具有相同的域名
- 具有相同的VLAN到生成树实例映射配置
- 具有相同的MSTP修订级别配置

MST域内可以生成多棵生成树,每棵生成树都被称为一个MSTI(Multiple Spanning tree Instance)

MSTI之间彼此独立,且每个MSTI的计算过程基本与RSTP的计算过程相同

  • 注意1 : VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系,MSTI可以与一个或多个VLAN对应,但一个VLAN只能与一个MSTI对应。

  • 注意2∶MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的各个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

  • 注意3:每个MSTI ( MST Instance )都有一个标识( MSTID ) ,MSTID是一个两字节的整数。VRP平台支持16个MST Instance ,MSTID取值范围是0~步~15(软件升级之后取值范围0-48 ),默认所有VLAN映射到MST Instance 0。

调试命令:
]dis stp region-configuration
# 查看mst域

dis stp instance 2
# 查看组2

dis stp brief
# 看mstid对应的接口状态

配置命令:
] stp region-configuration
mst-region] region-name [name]
# 区域所有交换机区域名字名字要相同
mst-region] revision-level 1
mst-region] instance 1 vlan 2 to 3
mst-region] instance 2 vlan 4 to 5
mst-region] active region-configuration
# 一定要敲 active region-configuration 不然配置全部不生效
# 所有的汇聚和核心交换机都要做(本质就是两条线连到主备的提前做好vlan trunk的交换机),配置是一样的,可以直接复制粘贴

配置优先级命令:
] stp instance 1 priority [number]
or
主] stp instance 1 root primary // 主交换机配置
主] stp instance 2 root secondary

备] stp instance 2 root primary //备份交换机配置
备] stp instance 1 root secondary

注意1 :VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系,MSTI可以与一个或多个VLAN对应,但一个VLAN只能与一个MSTI对应。

注意2∶MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的各个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

注意3 :每个MSTI(MST Instance)都有一个标识(MSTID),MSTID是一个两字节的整数。VRP平台支持16个MST Instance ,MSTID取值范围是0~15(软件升级之后取值范围0-48 ),默认所有VLAN映射到MST Instance 0。

生成树的缺点:
链路被阻塞后将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费;导致部分VLAN路径不通;造成次优路径。

VRRP

虚拟网关冗余协议(Virtual Router Redundancy Protocol),也叫三层网关冗余协议

VRRP能够在不改变组网的情况下,将多台路由器(或者三层交换机)虚拟成一个虚拟路由器,通过配置虚拟路由器的ip地址为默认网关,实现网关的备份

协议版本:
- VRRPv2(常用) 仅适用于ipv4
- VRRPv3 适用于ipv4和ipv6

VRRP协议报文:

Advertisement报文(心跳报文), 目的ip地址是组播:224.0.0.18,目的MAC地址是: 0100:5e00:0012, 协议号为: 112

  • 注意1 : Priority:设备在备份组中的优先级,取值范围是0~255。可配置范围1~254, 0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时(undo ip add会触发);255则保留给IP地址拥有者,无法手工配置,只要工作正常就是Master路由器;设备缺省优先级值是100

  • 注意2 : IP地址拥有者(IP Address Owner) : 如果一个VRRP设备将真实的接口IP地址配置为虚拟路由器IP地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,则它将一直成为Master,优先级自动配置为255,无法手工配置

  • 注意3 : 虚拟MAC地址( Virtual MAC Address) : 虚拟路由器根据vrid生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{vrid}

  • 注意4 : 一个接口下可以起多个VRRP组,但是虚拟IP地址必须和接口IP地址在同一个网段,不然会报错:Error: The virtual IP address is not within a subnet on this interface. 或者使用sub子地址形式解决

选举规则

比较优先级的大小,优先级高者当选为Master设备。当两台设备优先级相晁时,如果已经存在Master,则其保持Master身份,无需继续选举;如果不存在Master,则继续比较接口IP地址大小,接口IP地址较大的设备当选为Master设备。

当设备状态变为master后,会立刻发送免费ARP来刷新下游设备的MAC表项,从而把用户的流量引到此台设备上来。

VRRP+主备+BFD

查看命令:
dis vrrp [brief]

修改抢占时延时间:
G0/0/0] vrrp vrid 1 preempt-mode timer delay 50

主设备
G0/0/0] ip address 192.168.10.254 255.255.255.0
G0/0/0] vrrp vrid 1 virtual-ip 192.168.10.1
# 配置虚拟网关地址
G0/0/0] vrrp vrid 1 priority 105
# 默认优先级是100,越大优先级越高,同优先级比ip,越大越优先
G0/0/0] vrrp vrid 1 track interface gi 0/0/1 [reduced [Number]]
# 联动上联接口,检测到g0/0/1口down后会-10优先级
# [reduced [Number]] 自定义检测down后减多少优先级,默认-10
# 此命令只在主设备(Master)中配置即可

# VRRP联动BFD
]bfd
bfd]quit
]bfd [name] bind peer-ip 12.1.1.2 source-ip 12.1.1.1 auto
session-name]commit
# bfd两边都要配置,对端地址和源地址调换,对端设备不支持bfd使用bfd单臂回声
G0/0/0] vrrp vrid 1 track bfd-session [name] [reduced [Number]]
# 接口vrrp绑定bfd , 同样配置在主设备(Master)中

备份设备:
G0/0/0] ip address 192.168.10.253 255.255.255.0
G0/0/0] vrrp vrid 1 virtual-ip 192.168.10.1
# 两边的vrid要保持一致

VRRP负载均衡

用两个子网的方式进行负载均衡

路由器(不常用)

第一台设备:
G0/0/0] ip address 192.168.10.254 255.255.255.0
G0/0/0] ip address 192.168.20.254 255.255.255.0 sub
G0/0/0] vrrp vrid 1 virtual-ip 192.168.10.1
G0/0/0] vrrp vrid 1 priority 105 # 在这里用优先级控制两台设备的双向备份
G0/0/0] vrrp vrid 2 virtual-ip 192.168.20.1

第二台设备
G0/0/0] ip address 192.168.10.253 255.255.255.0
G0/0/0] ip address 192.168.20.253 255.255.255.0 sub
G0/0/0] vrrp vrid 1 virtual-ip 192.168.10.1
G0/0/0] vrrp vrid 2 virtual-ip 192.168.20.1
G0/0/0] vrrp vrid 2 priority 105 # 在这里用优先级控制两台设备的双向备份

交换机(常用)

一个vlan一个vrrp组
sw2
vrrp 2 vlan 2 优先级 105
vrrp 3 vlan 3 优先级 105

sw3
vrrp 4 vlan 4 优先级 105
vrrp 5 vlan 5 优先级 105


[sw2-Vlanif2] ip add 192.168.2.254 24 [sw2-Vlanif2] vrrp vrid 2 virtual-ip 192.168.2.1 [sw2-Vlanif2] vrrp vrid 2 priority 105 [sw2-Vlanif3] ip add 192.168.3.254 24 [sw2-Vlanif3] vrrp vrid 3 virtual-ip 192.168.3.1 [sw2-Vlanif2] vrrp vrid 3 priority 105 [sw2-Vlanif4] ip add 192.168.4.254 24 [sw2-Vlanif4] vrrp vrid 4 virtual-ip 192.168.4.1 [sw2-Vlanif5] ip add 192.168.5.254 24 [sw2-Vlanif5] vrrp vrid 5 virtual-ip 192.168.5.1 sw3直接粘贴到命令中的方式: int vlanif 2 ip add 192.168.2.253 24 vrrp vrid 2 virtual-ip 192.168.2.1 int vlanif 3 ip add 192.168.3.253 24 vrrp vrid 3 virtual-ip 192.168.3.1 int vlanif 4 ip add 192.168.4.253 24 vrrp vrid 4 virtual-ip 192.168.4.1 vrrp vrid 4 priority 105 int vlanif 5 ip add 192.168.5.253 24 vrrp vrid 5 virtual-ip 192.168.5.1 vrrp vrid 5 priority 105

MSTP+VRRP配置


# MSTP ]stp region-configuration region]region-name mstp region]revision-level 1 region]instance 1 vlan 2 3 region]instance 2 vlan 4 5 region]active region-configuration # 所有交换机都要配置 且相同 [Hexin_1]stp instance 1 root primary [Hexin_1]stp instance 2 root secondary [Hexin_2]stp instance 1 root secondary [Hexin_2]stp instance 2 root primary # VRRP [Hexin_1-Vlanif2] ip add 192.168.2.254 24 [Hexin_1-Vlanif2] vrrp vrid 2 virtual-ip 192.168.2.1 [Hexin_1-Vlanif2] vrrp vrid 2 priority 105 [Hexin_1-Vlanif2] vrrp vrid 2 track interface gi 0/0/1 [Hexin_1-Vlanif2] vrrp vrid 2 track interface gi 0/0/6 [Hexin_1-Vlanif3] ip add 192.168.3.254 24 [Hexin_1-Vlanif3] vrrp vrid 3 virtual-ip 192.168.3.1 [Hexin_1-Vlanif2] vrrp vrid 3 priority 105 [Hexin_1-Vlanif2] vrrp vrid 3 track interface gi 0/0/1 [Hexin_1-Vlanif2] vrrp vrid 3 track interface gi 0/0/6 [Hexin_1-Vlanif4] ip add 192.168.4.254 24 [Hexin_1-Vlanif4] vrrp vrid 4 virtual-ip 192.168.4.1 [Hexin_1-Vlanif5] ip add 192.168.5.254 24 [Hexin_1-Vlanif5] vrrp vrid 5 virtual-ip 192.168.5.1 Hexin_2直接粘贴到命令中的方式: int vlanif 2 ip add 192.168.2.253 24 vrrp vrid 2 virtual-ip 192.168.2.1 int vlanif 3 ip add 192.168.3.253 24 vrrp vrid 3 virtual-ip 192.168.3.1 int vlanif 4 ip add 192.168.4.253 24 vrrp vrid 4 virtual-ip 192.168.4.1 vrrp vrid 4 priority 105 vrrp vrid 4 track interface gi 0/0/4 vrrp vrid 4 track interface gi 0/0/6 int vlanif 5 ip add 192.168.5.253 24 vrrp vrid 5 virtual-ip 192.168.5.1 vrrp vrid 5 priority 105 vrrp vrid 5 track interface gi 0/0/4 vrrp vrid 5 track interface gi 0/0/6 # 眼熟吧,就是俩加一块 # OSPF # Hexin_1 ospf 1 area 0 net 192.168.2.0 0.0.0.255 net 192.168.3.0 0.0.0.255 net 192.168.4.0 0.0.0.255 net 192.168.5.0 0.0.0.255 net 12.1.1.0 0.0.0.255 # Hexin_2 ospf 1 area 0 net 192.168.2.0 0.0.0.255 net 192.168.3.0 0.0.0.255 net 192.168.4.0 0.0.0.255 net 192.168.5.0 0.0.0.255 net 23.1.1.0 0.0.0.255 # Router ospf 1 area 0 net 12.1.1.0 0.0.0.255 net 23.1.1.0 0.0.0.255 [Router-ospf-1]default-route-advertise always # 动态的向底下两个核心设备下发一条动态的缺省路由 # 目前暂不用 先使用静态路由 # 核心配置静态路由并且互为备份 [Hexin_1]ip route-static 0.0.0.0 0 12.1.1.1 [Hexin_1]ip route-static 0.0.0.0 0 23.1.1.1 preference 65 [Hexin_2]ip route-static 0.0.0.0 0 23.1.1.1 [Hexin_2]ip route-static 0.0.0.0 0 12.1.1.1 preference 65 # 对于防火墙来说,来回路径要一致 # 通过修改ospf的开销值来保证来回路径一致 [Hexin_1]int vlanif 4 [Hexin_1-Vlanif4]ospf cost 4 [Hexin_1]int vlanif 5 [Hexin_1-Vlanif5]ospf cost 4 [Hexin_2]int vlanif 2 [Hexin_2-Vlanif2]ospf cost 4 [Hexin_2]int vlanif 3 [Hexin_2-Vlanif3]ospf cost 4

OSPF

OSPF 基础回顾

OSPF (Open Shortest Path First)

开放式最短路径优先

基于链路状态的内部网关协议

OSPF两层结构 (层次化结构)
- 骨干区域 (area 0)
- 常规区域

OSPF路由优先级 : 10

回顾 RIP 介绍
- 是一种基于距离矢量算法的路由协议,应用在大型网络中存在收敛速度慢, 度量值不科学, 可扩展性差等问题
- 逐跳收敛 收敛慢,故障恢复时间长
- 分布式路由计算 缺少对全局网络拓扑的了解
- 以"跳数"为度量 存在选择次优路径的风险

查看ospf邻居表 : dis ospf peer brief

OSPF
- 路由信息传递与路由计算分离
- 基于SPF(Shortest Path First)算法
- 以"累计链路开销"作为选路参考 计算链路累计带宽

注意: 所谓的Link State (链路状态)指的就是路由器的接口状态.在ospf中路由器的接口的链路状态包含:
- 该接口的IP地址及掩码
- 该接口带宽
- 该接口所连接的邻居
- 该接口的链路类型
- 等等
链路状态就是ospf中用于计算路由的SPF算法的原材料,可以简单理解为原始路由信息的综合体

定时更新与触发更新
- 定时更新: 每1800s更新一次,3600s失效
- 触发更新: 当链路状态发生变化后,立即发送链路状态更新

OSPF报文类型
- Type 1 : Hello 发现和维护邻居关系
- Type 2 : Database Description 交互链路状态数据库摘要
- Type 3 : Link State Request 请求特定的链路状态信息
- Type 4 : Link State Update 发送详细的链路状态信息
- Type 5 : Link State Ack 发送确认报文

OSPF工作工程
- 邻居建立
- 同步链路状态数据库
- 计算最优路由

发现并建立邻居 - Hello报文 :
- 邻居发现 : 自动发现邻居路由器
- 邻居建立 : 完成Hello报文中的参数协商, 建立邻居关系
- 邻居保持 : 通过Keepalive机制,检测邻居运行状态

OSPF 多区域

  • OSPF引入区域(Area)的概念,酱一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网
  • OSPF多区域的设计减小了LSA(链路状态通告 Link State Advertisement)泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的
  • 在区域边界可以做路由汇总,减小了路由表规模
  • 多区域提高了网络扩展性,有利于组建大规模网络

路由器所有接口都在一个区域叫区域内路由器 (IR : Internal Router)

路由器接口连接在不同区域中叫区域边界路由器 (ABR : Area Border Router)

区域内路由器 (IR : Internal Router)

区域边界路由器 (ABR : Area Border Router) 一定要连着一个骨干区域

骨干路由器 (BR : Backbone ROuter)

自治系统边界路由器(ASBR : Autonomous System Boundary Router) 比如一个RIP区域和OSPF区域链接的路由器

OSPF 开销计算

思科叫度量值 Metric

Cost = 沿途累加( 100M / 链路带宽) 100M 属于默认参考带宽

串行链路的带宽:2.048Mbps 开销就等于100/2.048≈48

所以越小越好, 50M带宽100/50=2 开销越小带宽越大

ospf-1]bandwidth-reference [1-2147483648]

单位 Mbits/s 如果要配置请在全部机器中配置相同的默认参考带宽

G0/0/1] ospf cost [1-65535] (接口必须是路由进入方向)

直接在接口中可以修改cost值, 由此可以自定义路由选路

OSPF 虚链路

reset ospf process 重启ospf进程
dis ospf error

旧网改造用,迫不得已才用,属于骨干区域的延申

R2 route-id 2.2.2.2 :
ospf 1
area 2
vlink-peer 3.3.3.3 (3.3.3.3 是对方的route-id)

R3 route-id 3.3.3.3 :
ospf 1
area 2
vlink-peer 2.2.2.2

dis ospf vlink
# 查看虚链路建立状态

OSPF 邻居建立过程

LSA (链路状态通告 Link State Advertisement)

实际上没有LSA这个报文,是封装在LSU 里面 U = Update

LSU (链路状态更新 Link State Update)

一条LSU里面可以包含多条LSA

LSDB (链路状态数据库 Link State DataBase)

dis ospf lsdb

互相发送hello报文 -> 邻居 -> 泛洪LSA(相互传递链路信息) -> LSDB -> 运行SPF算法 -> 生成最优路径 -> 路由表

OSPF 的五种数据包

Hello : 发送自身的router-id, 自报家门
DBD : Data Base Description 数据库描述摘要 (目录)
LSR : Link State Request 链路状态请求, 请求某链路的详细路由信息
LSU : Link State Update 链路状态更新,对请求的回应 **只有这里面有路由信息**
LSAck : Link State Acknowledge 链路状态确认

邻居建立 -> 同步链路状态数据库 -> 计算最优路由

邻接 : 链路状态数据同步 Full

邻居 : 进展到 two-way

邻居(Neighbor)和邻接(Adjacency)是两个不同的概念,OSPF路由器之间建立邻居关系后,进行LSDB同步,最终形成邻接关系

在广播型网络及NBMA网络上,DRother之间只能建立邻居关系,不能建立邻接关系,DRother与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系

邻接建立:
- down : 这是邻居的初始状态,表示没有从邻居收到任何信息
- init : 初始化状态 准备建立邻居,在此状态下,路由器已经从邻居收到了hello报文,但是自己的router-id不在所受到的hello报文的邻居列表中,表示尚未与邻居建立双向通信关系
- two-way : 相互得知对方的Router-id 等信息(相互认识)在此状态下,路由器发现自己的router-id存在于收到的hello报文中的邻居列表中,已确认可以双向通信
- exstart : 准备开始交互链路信息 (选举DR BDR)在此状态下,路由器开始向邻居发送DBD报文,DR/BDR或者说Master/Slave关系是在此状态下形成的,初始DBD序列号也是在此状态下确认的,在此状态下发送的DBD报文不包含链路状态描述
- exchange : 正式交付链路信息 (ospf隐藏确认机制,确定主从关系) 此状态下,路由器与邻居之间发送包含链路状态信息摘要的DBD报文
- loading : 确认链路信息交互 此状态下,路由器与邻居之间互相发送LSR,LSU,LSAck报文
- full : 完全同步,此状态下,LSDB同步过程完成,路由器与邻居之间形成了完全的邻接关系

邻居建立条件:
- 直连通信
- network宣告网段
- 认证通过
- area id一致
- hello dead 时间一致
- 查看命令dis ospf int g0/0/0 or dis ospf peer [router-id]
- 修改命令g0/0/0]ospf timer [hello,dead ...] [1-65535] 需要对端也修改,一般不动
- option ebit位,N bit位一致 (stub nssa 特殊区域)
- STUB区域: E bit位= 0 N bit位=0
- NSSA区域: E bit位= 0 N bit位=1
- 掩码一致 (针对多路访问网络 以太网,NBMA(帧中继)) 如果是串口点对点的情况下可以不一致
- 静默端口
- MTU 最大传输单元 默认1500字节 包含在BDB报文中 (思科检查, 华为默认不检查,也可以配置g0/0/0]ospf mtu-enable)
- 版本一致 IPV4 V2版本 IPV6 V3版本
- router-id 不能冲突

OSPF DR和BDR选举

DR : designate router 指定路由器 (班长)

BDR : backup designate router 备份指定路由器 (副班长)

目的 : 减少重复LSA报文的发送,减少邻接关系的建立,提升ospf协议报文的传输效率,减低网路资源的消耗

注意 : DR和BRD的选举仅在多路访问环境才会选举,在点到点的化境不选举DR和BDR

网络类型 :
- Point-to-point (点对点) : 邻接
- PPP 链路
- LAPB 链路 (少见)
- HDLC 链路 (少见)
- Broadcast (广播) : DR与BDR,DRother建立邻接关系,BDR与DR,DRother建立邻接关系,DRother之间只建立邻居关系
- 以太网链路
- NBMA (Non-broadcast multiple access network 非广播多路访问网络):
- 帧中继链路 (少见)
- ATM链路 (少见)
- P2MP (Point to multiple point) 早期帧中继用

NBMA 网络中的问题:
- N*(n-1)/2个邻接关系,管理复杂

DR与BDR的作用:
- 减少邻接关系
- 降低OSPF协议流量

DR 复杂而在MA(Multiple access)网络建立和维护邻接关系并负责LSA的同步

DR 与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息,这样就大大减少了MA网络中的邻接关系数量及交换链路状态信息消耗的资源

DR 一旦出现故障,其与其他路由器之间的邻接关系将全部失效,链路状态数据库也无法同步,此时就需要重新选举DR再与非DR路由器建立邻接关系,完成LSA的同步,为了规避单点故障风险,通过选举备份指定路由器BRD,在DR失效时快速接管DR的工作

选举规则:
- 优先级 + router-id,越大越优先.默认ospf接口优先级都是1 接口的优先级相等时,router-id越大越优先
- 优先级为0 表示不参与DR和BDR的选举
- 遵循不抢占原则 (新加路由器或者重启之后优先级更高也不会更改原来的DR和BDR)

修改优先级:

int g0/0/0
ospf dr-priority 10

dis ospf peer
# 查看ospf邻居

dis ospf int g 0/0/2
# 查看接口的ospf状态

注意:
- 在Broadcast型网络里面默认所有路由器发送hello报文的目标地址都是224.0.0.5
- DRother发送(LSU和LSAck)目标地址是224.0.0.6
- DR, BDR发送(LSU和LSAck)目标地址是224.0.0.5
- OSPF 二层广播地址为0100:5e00:0005

OSPF 路由引入

需要在ASBR中配置

ospf 1
import-route rip [默认就是1]
# 将Rip 1 的路由引入OSPF区域
import-route static
# 将静态路由引入OSPF区域

rip 1
import-route ospf 1
# 将OSPF 1 区域的路由引入Rip

# O_ASE OSPF_Autonomous system external ospf自治系统外部路由

dis ospf routing 9.9.9.0
cost : 1 type : type 2
# 查看类型

ospf 1
import-route rip type 1
# 将外部路由引入的类型改为1

ospf 1
default-route-advertise always
# 使用OSPF动态下发默认路由

OSPF路由种类
- ospf : ospf普通路由
- O_ASE : OSPF_Autonomous system external ospf自治系统外部路由
- type 1 : cost 沿途累加
- type 2 : 默认种类 cost值始终1 不累加, 一般情况下只有一个ASBR, 有多个出口的时候才有必要选路
- O_NSSA : ospf特殊区域路由

OSPF LSA

LSA : Link state advertise 链路状态宣告 封装在LSU里面

有三张表
- 邻居表 dis ospf peer brief
- 拓扑表( 链路状态数据库 ) dis ospf lsdb
- 路由表 dis ip routing-table

LSA共有11个类型,但是6 9 10 11 目前几乎无用

LSA是路由器之间链路状态信息的载体,LSA是LSDB的最小组成单位,也就是说LSDB由一条条LSA构成的

所有的LSA都拥有相同的头部,关键字段如下
- LS age : 此字段表示LSA已经生存的时间,单位是秒
- LS type : 此字段标识了LSA的格式和功能,常见的LSA类型有五种
- Link State ID : 此字段是该LSA所表述的那部分链路的表示,例如Router ID等
- Advertising Router : 此字段是产生此LSA的路由器的Router ID
- LS sequence number : 此字段用于检测旧的和重复的LSA

LS type , Link State ID和Advertising Router的组合共同标识一条LSA

1型LSA : Router-LSA
- 每个路由器都可以发出
- 仅在自己的area区域发送
- 通告自身信息(自报家门) 描述了设备的链路状态和开销
- 调试:
- dis ospf lsdb 查看表
- dis ospf lsdb router 查看router-lsa类型的条目

LSA链路类型(非网络类型)

Link Type Link ID Link Data
P2p 邻居的RID 自己的IP
Stub 网络号 掩码
Transit DR的接口地址 自己的IP
Vritual Link 邻居的RID 自己的IP

注意 : 只有在1型LSA里面才有 链路类型 !! 1型LSA最复杂,其他类型LSA没有链路类型

Type : 连接类型(并非OSPF定义的四种网络类型) Router LSA描述的链接类型主要有:
- p2p : 描述一个从本路由器到邻居路由器之间的点到点链接,属于拓扑信息
- TransNet : 描述一个从本路由器到一个Transit网段(例如MA网段或者NBMA网段)的链接,属于拓扑信息
- StubNet : 描述一个从本路由器到一个Stub网段(例如Loopback环回接口)的链接,属于路由信息

2型LSA : Network LSA
- 只有DR可以发出
- 仅在自己的area区域发送
- 通告DR的位置和身份,以及本广播域的所有成员及链路信息
- 调试
- dis ospf lsdb
- dis ospf lsdb network

注意 : 2型LSA Link State ID 代表DR的接口IP地址

在1型和2型的LSA中,包括了拓扑信息和路由信息

OSPF将依据SPF算法和各类LSA进行最短路径树的计算:
- Phase 1 : 依据1型LSA中的p2p,TransNet以及2型LSA,构建SPF树
- Phase 2 : 依据1型LSA中的Stub以及2型LSA计算最优路由

3型LSA : Network Summary LSA
- 只能由ABR发送
- 可以穿越整个OSPF自治系统(中间需要各个ABR中转)
- 将不同区域的ospf链路信息相互传递
- dis ospf lsdb summary
- Metric : ABR 到达目的网段的开销值

注意 : 3型LSA Link State ID 代表网段路由信息
- 一条 3 型 LSA 只能描述一条路由信息
- 3 型 LSA 只能传递路由信息, 并未传递原始且复杂的链路状态信息

4型LSA : ASBR Summary LSA
- 只能由各ABR发送
- 发送范围整个OSPF自治系统
- 通告ASBR的身份和位置信息
- dis ospf lsdb asbr

注意 : 4型LSA Link State ID 代表 ASBR的Router ID

5型LSA : External LSA
- ASBR 发出
- 可以穿越整个OSPF自治系统(中间需要各个ABR中转)
- 引入其他自治系统的路由信息
- `dis ospf lsdb ase

注意 : 5型LSA Link State ID 代表其他自治系统的路由信息

7型LSA : NSSA LSA
- 由位于NSSA区域的ASBR产生
- 发送范围仅仅是NSSA区域(传至ABR时会转换成5型继续传递)
- 作用是将NSSA区域后的其他自治系统外部路由引入OSPF

ospf路由种类
- ospf : 1 2 3 型 LSA
- O_ASE : 4 5 型 LSA
- O_NSSA : 7 型 LSA

LSA类型 通告路由器 LSA内容 传播范围
1-Router LSA OSPF Router 拓扑信息+路由信息 本区域内
2-Network LSA DR 拓扑信息+路由信息 本区域内
3-Network Summary LSA ABR 域间路由信息 非(Totally)Stub区域
4-ASBR Summary LSA ABR ASBR's Router ID 非(Totally)Stub区域
5-AS External LSA ASBR 路由进程域外部路由 (非Stub区域)OSPF进程域
7-NSSA LSA ASBR NSSA域外部路由信息 (Totally)NSSA区域

避免区域内路由环路
- SPF算法

避免区域间路由环路
- 骨干区域与非骨干区域
- 所有的非骨干区域均直接和骨干区域相连,且骨干区域只有一个,非骨干区域之间的通信都要通过骨干区域中转,骨干区域ID固定为0
- 三类LSA的传递规则
- 从骨干区域传来的三类LSA不在传回骨干区域
- 对于ABR,OSPF要去ABR至少有一个接口属于骨干区域

OSPF 路由汇总

在大规模部署OSPF网络时,可能会出现由于OSPF路由表规模过大而降低路由查找速度,可以使用路由汇总减小小路由表规模

路由汇总是将多条连续的IP前缀汇总成一条路由前缀,如果被汇总的IP地址范围内的某条链路频繁UP和DOWN,改变化并不会通告给被汇总的IP地址范围外的设备,因此可以避免网络中的路由震荡,一定程度上提高了网络的稳定性

路由汇总只能汇总路由信息,不能汇总链路拓扑信息,所以ABR是可以执行路由汇总的位置之一

ospf 区域间的汇总 : 只能在ABR上面配置
- ABR向其他区域发送路由信息时,已网段为单位生成3 型LSA(Network Summary LSA),如果该区域中存在一些连续的网段,可以使用命令汇总成一个网段,ABR只需发送一条汇总后的3 型LSA

自治系统间的汇总 : 只能在ASBR上面配置

ospf 1
asbr-summary 9.9.0.0 255.255.240.0

# 汇总巧记 相同保留 不同置零 ; 前缀长度 = 相同的位数

OSPF 特殊区域

作用:
- 减少末节区域LSDB规模以及路由表大小,降低边缘路由器资源开销
- 减少其他自治系统或者区域网咯变化对末节区域的影响,减少路由震荡提升网络稳定性

特殊区域
- stub : 末节区域, 不接收4, 5 型的LSA
- 配置末节区域后会自动生成一条默认路由,要做都得做
- totally stub : 完全末节区域 配置追加关键字no-summary 不接收 3, 4, 5型LSA
- nssa : not so stub area 不完全末节区域 不接收4, 5型LSA 但是同时可以产生7型LSA
- totally nssa : 追加关键字 no-summary 可以过滤掉3, 4, 5型的LSA

ospf 1
area 1
stub
# 配置为stub区域
stub no-summary
# 配置为totally stub区域
nssa
# 配置为nssa区域
nssa no-summary
# 配置为 totally nssa区域

配置stub需要注意下列几点:
- 骨干区域不能被配置stub区域
- 如果要将一个区域配置为stub区域,该区域的所有路由器必须都要配置成stub路由器
- stub区域内不能存在asbr,自治系统外部路由不能再本区域传播
- 虚连接不能穿越stub区域建立,虚链路属于骨干区域的延伸,虚链路所在的区域不能配置为stub区域

NSSA区域hi在原始的OSPF协议标准中新增的一类特殊区域类型

NSSA区域和stub区域有许多相似的地方,两者的差别在于,nssa区域能够将自治域外部路由引入饼传播到整个ospf自治域中,同时又不会学习来自ospf网络其他区域的外部路由

NSSA LSA:
- 7型LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述NSSA区域引入的外部路有信息
- 7型LSAA由NSSA区域的ASBR产生,其扩散范围仅限于ASBR所在的NSSA区域
- 缺省路由也可以通过7型LSA来产生,用于指导流量流向其他自治域

7型LSA转换成5型LSA:
- NSSA区域的ABR收到七类LSA时,会有选择的将其转换为5型LSA,以便将外部路由信息通告到OSPF网络的其他区域
- NSSA区域有多个ABR时,进行7型LSA与5型LSA转换的时Router ID最大的ABR

配置了NSSA区域的ABR缠上一条7型LSA缺省路由

配置了Totally NSSA区域的ABR会自动产生一条3型LSA缺省路由

OSPF 静默接口

ospf 1
silent-interface gi 0/0/2
# 配置静默接口

OSPF 认证

两种认证方式
- 区域认证
- 接口认证

支持的认证模式为:
- null 不认证
- simple 明文
- MD5
- HMAC-MD5

当两种认证方式都存在时,优先使用接口认证方式

int g0/0/1
ospf autentication-mode md5 1 cipher abc123
# 接口认证, 两边接口都要配置并且,认证类型和密码必须相同

ospf 1
area 2
authentication-mode md5 1 cipher abc123
# 区域认证 , 会将所有位于area2 区域的接口都配置认证
# 可以一端配置区域认证,另一端配置接口认证

OSPF 前缀过滤

# ospf 过滤
acl 2000
rule deny source 2.2.2.2 0.0.0.0
rule permit source any
# 禁止2.2.2.2/32的路由进入路由表
# 允许其他的路由条目

ospf 1
filter-policy 2000 import
# 注意 : 由于OSPF传递的是链路信息,因此filter-policy import 指令只能阻止链路信息进入路由表
# 所以2.2.2.2的LSA还是能收到的, 只是在本地路由表中禁止, 在LSDB中还是能看到的,且LSA能继续传递给其他路由

# 路由引入过滤
acl 2005
rule deny source 9.9.8.0 0.0.0.255
rule permit
# 省略写法
route-policy [name] permit node 10
if-match acl 2005

ospf 1
import-route rip 1 route-policy [name]
# 在ASBR引入的时候加路由策略来过滤掉 9.9.8.0/24
# 这种方法LSA也会被过滤

IP-Prefix-List 前缀列表

ACL 可以用反掩码rule deny source 1.1.1.0 0.0.0.127匹配 IP 地址范围(1.1.1.0-1.1.1.127)
但无法判断 路由的掩码长度(/24 还是 /25)
因此像 “只允许 /24,不允许 /25” 这种要求必须使用 ip-prefix list

ACL 既能用于IP报文的过滤(包过滤),也能用于路由信息的匹配,但用于匹配路由时仅能匹配路由前缀无法匹配掩码

IP Prefix List 能够同时匹配IP地址前缀以及掩码长度,不能用于IP报文的过滤(包过滤),只能用于路由信息的过滤

ip ip-prefix [name] permit 1.1.1.0 24 greater-equal 25 less-equal 25

ip ip-prefix [name] permit 9.9.7.0 24 greater-equal 24 less-equal 24

ip ip-prefix [name] permit 9.9.9.0 24 greater-equal 24 less-equal 24

route-policy [name] permit node 10
if-match ip-prefix [name]

ospf 1
import-route rip 1 route-policy [name]

OSPF 多进程

OSPF多进程:
- 进程号本地有效
- 两台路由器,进程号不同但区域号相同可以建立邻接并传递路由
- 同一台路由器,不同的ospf进程默认不能互串,多个进程独立运行,互不干扰
- 比如 进程1 学到了1.1.1.1 进程2学到了2.2.2.2 这两个是独立的, 进程1中没有2.2.2.2路由
- 想让进程1学2.2.2.2需要做路由引入,引入时就可以做策略了
- 默认的ospf 进程是1

OSPF 高级扩展

OSPF快速收敛

OSPF快速收敛 是为了提高路由的收敛速度而做的扩展特性,包括: PRC ( Partial Route Calculation, 部分路由计算)和智能定时器

同时,OSPF支持故障恢复快速收敛, 例如通过OSPF IP FRR ( Fast reroute 快速重路由) 实现备份链路的快速切换

PRC

PRC原理: 当网络上路由发生变化的时候,只对发生变化的路由进行重新计算

PRC不计算节点路径,而是根据SPF算法算出来的最短路径树来更新路由,即最短路径树不变,只在节点中新增路由

在华为的设备中 OSPF 的 PRC 功能默认开启

智能定时器

在进行SPF计算和产生LSA的时候用到的一种定时器

既可以对少量的外界突发事件进行快速响应,又避免过度占用CPU

控制LSA的生成与接收

OSPF通过两个规定来避免网络连接或者路由频繁动荡引起的过多占用设备资源的情况
- 同一条LSA在1秒内不能再次生成, LSA的更新时间间隔5秒
- LSA被接收的时间间隔1秒

在网络相对稳定,对路由收敛时间要求较高的组网环境,可以用智能定时器指定LSA的更新时间间隔为0 来取消LSA的更新时间间隔,使得拓扑或路由的变化可以立即通过LSA发布到网络中,或者被感知到,从而加快网络中路由的收敛速度

控制路由计算

当网络发生变化时,OSPF的LSDB会发生改变,需要重新计算最短路径,如果网络频繁变化,由于不断计算最短路径,会占用大量系统资源,影响设备的效率

通过配置智能定时器,设置合理的SPF计算的时间间隔,可以避免占用过多的路由器内存和带宽资源

查看当前时间间隔:dis default-parameter ospf

设置OSPF LSA更新的时间间隔:
- ospf-1] lsa-originate-interval { 0 | { intelligent-timer max-interval start-interval hold-interval | other-type interval } * }

使用智能定时器后:
1. 初次更新LSA的间隔时间由start-interval参数指定。
2. 第n(n≥2)次更新LSA的间隔时间为hold-interval×$2^{(n-2)}$。
3. 当hold-interval×$2^{(n-2)}$达到指定的最长间隔时间max-interval时,OSPF连续三次更新LSA的时间间隔都是最长间隔时间,之后,再次返回步骤1,按照初始间隔时间start-interval更新LSA。

OSPF IP FRR

Fast reroute 快速重路由是动态IP FRR, 利用LFA ( Loop-Free Alternates )算法预先计算出备份路径,保存在转发表中,以备在故障时将流量快速切换到备份链路上,保证流量不中断,从而达到流量保护的目的,可将故障恢复时间降低到50ms以内

LFA 计算备份链路的基本思路:
- 以可提供备份链路的邻居为根节点,利用SPF算法计算出到目的节点的最短距离,然后,按照不等式计算出开销最小且无环的备份链路

# 需要按照拓扑修改各链路开销
ospf 1
frr
loop-free-alternate

FIB

路由器FIB(转发信息库)表中的Flag标记用于快速指示路由条目的状态和类型,实现高效的数据包转发。常见的Flag包括:U(有效/Up)、G(网关/Gateway)、H(主机/Host)、D(动态安装/Dynamic)、M(修改/Modified)、!(拒绝/Reject)等。

FIB表中常见Flag详解:
- U (Up): 路由处于活动状态,该路由是可用的。
- G (Gateway): 路由指向一个网关(即下一跳是路由器),若无此标记,则表示目的地址在直连网段。
- H (Host): 目标是一个独立的主机,非网段。
- D (Dynamic): 此路由是由路由协议(如OSPF, BGP)动态生成的。
- M (Modified): 此路由是由路由后台程序修改的。
-! (Reject/Broken): 拒绝路由,匹配此项的数据包将被丢弃。

其他潜在标志:
- S (Static): 静态路由。
- C (Connected): 直连路由。
- R (Recovered): 恢复动态路由产生的表项。
FIB是RIB(路由信息库)的子集,FIB的Flag主要关注如何转发数据,而不仅仅是路由选择。

上一篇 BGP-Huawei
ZYX

ZYX管理员

无论你遇见谁他都是你生命中该出现的 绝非偶然

本月创作热力图

2026年3月
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
加载中...
文章列表
1 ASP.NET-MVC动态网站知识点
ASP.NET-MVC动态网站知识点
2
HCIP-Route&Switch
HCIP-Route&Switch
3
阿里云Python学习实例
阿里云Python学习实例
4
云编译OpenWrt与WR1200JS安装OpenWrt
云编译OpenWrt与WR1200JS安装OpenWrt
5
2019-12-GPU-and-CPU天梯图
2019-12-GPU-and-CPU天梯图