「DHCP」- 安全防护
消耗攻击(饿死攻击,Starvation Attack) 仿冒攻击(中间人攻击,MITM Attack)[……]
「DHCP」- 消耗攻击(饿死攻击,Starvation Attack)
问题描述
攻击者持续大量地向 DHCP Server 申请 IP 地址,直到耗尽 DHCP Server 地址池中的 IP 地址,导致 DHCP Server 不能给正常的用户进行分配;
原因分析
DHCP Server 向 DHCP Client 分配 IP 地址时,无法区分正常的申请者与恶意的申请者;
解决方案
防止通过变换 MAC 地址,来大量发送 DHCP 请求
通过 DHCP Snooping 的 MAC 地址限制功能,来防止饿死攻击
该功能通过限制交换机 Interface 上允许学习到的最多 MAC-ADDR 数目,这样攻击者便无法通过修改 MAC-ADDR 来发送大量 DHCP 请求;
通过 dhcp snooping max-user-number 命令
防止通过改变 CHADDR 值的 DoS 攻击
攻击原理:DHCP 是根据 CHADDR 进行地址分配的,所以攻击者能够通过修改 CHADDR 来发送饿死工具,而不需要修改 SRC-ADDR;
防护原理:为了避免受到攻击者改变 CHADDR 值的攻击,可以在设备上配置 DHCP Snooping 功能,检查 DHCP-Request.CHADDR 字段。如果该字段跟数据帧头部的 SRC-MAC 相匹配,转发报文;否则,丢弃报文。从而保证合法用户可以正常使用网络服务;
如果要在某端口下实施源 MAC 地址与 CHADDR 的一致性检查,可以使用:[Interface] dhcp snooping check dhcp-chaddr enable[……]
「DHCPv6」- 有状态自动配置(Statefull Address Configuration)
华为网络设备
注意事项,具体的配置方法参考设备文档。
第一步、配置 DHCPv6 服务
// 第 1 步、配置接口地址
[Huawei] ipv6
[Interface] ipv6 enable
[Interface] ipv6 address <prefix/length>
// 第 2 步、配置地址池
[Huawei] dhcp enable
[Huawei] dhcpv6 pool <pool-name>
[Pool] address prefix <prefix/length>
[Pool] dns-server 2008::8
// 第 3 步、开启 RA 发送
[Interface] undo ipv6 nd ra halt
[Interface] ipv6 nd autoconfig managed-address-flag # 指示 Client 以 DHCPv6 获取网络地址
[Interface] ipv6 nd autoconfig other-flag # 指示 Client 以 DHCPv6 获取其他参数
// 第 4 步、选择地址池
[Interface] dhcpv6 server <pool-name>
第二步、配置客户端获取地址
路由器通过 DHCPv6 获取地址:
interface GigabitEthernet0/0/2
ipv6 enable
ipv6 address auto link-local
ipv6 address auto dhcp
[AR1]display ipv6 interface GigabitEthernet 0/0/2
GigabitEthernet0/0/2 current state : UP
IPv6 protocol current state : UP
IPv6 is enabled, link-local address is FE80::2E0:FCFF:FEAC:2EC5
Global unicast address(es):
2001::3, subnet is 2001::3/128
Joined group address(es):
FF02::1:FF00:3
FF02::2
FF02::1
FF02::1:FFAC:2EC5
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit[……]
「IPv6 Transition」- IPv6 over IPv4 GRE 隧道
1)原理:IPv6 over IPv4 GRE 隧道使用标准的 GRE 隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址; 2)特征:隧道转发机制:与 IPv6 over IPv4 手动隧道相同,这是该技术由 GRE 提供实现;[……]
「Network」- 拓扑分发:直连路由、静态路由、动态路由
路由器根据路由表转发数据包,路由表项可通过手动配置和动态路由协议生成。
1)直连路由(Direct),设备自动生成指向本地直连网络的路由。静态路由,比动态路由使用更少的带宽,并且不占用CPU资源来计算和分析路由更新。当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。但是,当网络发生故障或者拓扑发生变化后,静态路由不会自动更新,必须手动重新配置。
2)静态路由(Static),网络管理员手工配置的路由
3)动态路由(Dynamic),路由器运行动态路由协议学习到的路由。动态路由,相比较于静态路由,具有更强的可扩展性,具备更强的应变能力。
直连路由,Direct Routing
由设备自动生成,并指向本地直连网络。
在华为网络设备中,当配置接口地址后,将被创建直连路由。
静态路由,Static Routing
Static Routing
动态路由,Dynamic Routing
问题:静态路由需要网络管理人员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约静态路由在大规模网络中的应用。
解决:动态学习路由,根据某种规则(路由协议)建立路由转发表的协议,并能够根据网络变化作出相应调整的协议。简单说,当设备运行动态路由协议后,设备会以组播的方式向外发送自己的路由表数据,以让其他设备能学习到这些路由。
动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议中,OSFP 是应用场景最广泛的协议。
流程概述
1)发送:向其他路由传递路由信息; 2)接收:接收其他路由器的的路由信息; 3)建表:根据收到的路由信息,计算到目的网络的最优路径,并生成路由表; 4)动态:对网络拓扑的变化及时反应,生成新的路由选择表;同时向其他路由器宣告拓扑变化;
协议分类
对于动态路由协议,根据工作范围: 1)IGP(Interior Gateway Protocol,内部网关协议):工作在 AS 内部; —- RIP(已淘汰)、OSPF、IS-IS、EIGRP(思科私有协议,后成为标准); 2)EGP(Exterior Gateway Protocol,外部网关协议):工作在 AS 之间; —- EGP(早已淘汰)、BGP;
IGP 需要发现、计算、传递等等动作;EGP 的主要任务是传递,并不包含发现功能。
对于动态路由协议,根据工作原理: 1)距离矢量路由协议,DVRP,Distance Vector Routing Protocols —- RIP、BGP(增强的距离矢量协议) 2)链路状态路由协议,LSRP,Link-State Routing Protocols —- OSPF、IS-I[……]
「IP Routing」- 静态路由
解决方案
静态路由是指由管理员手动配置和维护的路由条目。
Q:指向下一跳 IP 的静态路由在路由表中, A:管理距离为 1,度量值为 0
Q:当外发接口不可用时,路由表中的静态路由条目有何变化? A:该路由从路由表中删除
原理简述
WIP
特性特征
1)静态路由配置简单,被广泛应用于网络中。 2)另外,静态路由还可以实现负载均衡和路由备份。 3)轻量,适合小规模网络、节约宽带 4)安全,不会暴露网络拓扑
因此,学习并掌握好静态路由的应用与配置是非常必要的。
但是,静态路由也存在很多缺点: 1)当网络发生变化时,需要手动维护,成本高; 2)在故障时,需要及时处理,否则会引发问题;
应用场景
缺省路由:在企业网络中,我们需要手动配置默认网关(缺省路由,0.0.0.0/0),以访问外部网路; 负载分担:到达同一目的网路,由两条路由; 路由备份:到达同一目的网路,由两条路由,但是 Preference 不同; 汇总路由:[……]
「IP Routing」- 概念、术语
IPv6
IPv6 静态路由与 IPv4 静态路由类似,也需要管理员手工配置,适合于一些结构比较简单的 IPv6 网络。
IPv6静态路由与IPv4静态路由之间的主要区别是目的地址和下一跳地址有所不同,IPv6静态路由使用的是IPv6地址,而IPv4静态路由使用IPv4地址。 在创建 IPv6 静态路由时,可以同时指定出接口和下一跳,或者只指定出接口或只指定下一跳。 对于点到点接口:指定出接口。 对于广播类型接口:指定下一跳。
IPv6 静态路由负载分担和备份: 在创建相同目的地址的多条 IPv6 静态路由时,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。[……]
「Huawei VRP」- 静态路由配置
配置说明
IPv4 Routing
# 关联下一跳 IP 的方式
[Huawei] ip route-static <ip-address> <mask> <nexthop-address>
# 关联出接口的方式
[Huawei] ip route-static <ip-address> <mask> <interface-type> <interface-number> # 仅能用在 PPP 协议中
# 关联出接口和下一跳 IP 方式
[Huawei] ip route-static <ip-address> <mask> <interface-type> <interface-number> <nexthop-address>
在创建静态路由时,可以同时指定出接口和下一跳;
对于不同的出接口类型,由于路由递归特性,所以可以只指定出接口或只指定下一跳; 对于点到点接口(如串口),指定出接口; 对于广播接口(如以太网接口)和 VT(Virtual-Template)接口,必须指定下一跳;
在华为设备中,当配置静态路由时,如果未指定出接口,而是直接指定下一跳,则需要对端开启 ARP Proxy 特性,然后设备会直接 ARP 查询目标网络 MAC 地址;
IPv6 Routing
// 在公网上配置 IPv6 静态路由;
[Huawei] ipv6 route-static dest-ipv6-address prefix-length { interface-type interface-number [ nexthop-ipv6-address ] | nexthop-ipv6-address | vpn-instance vpn-destination-name nexthop-ipv6-address } [ preference preference][ permanent | inherit-cost ] [ description text ]
preference preference:指定路由优先级。整数形式,取值范围为 1~255。缺省值是 60;
permanent:指定 IPv6 静态路由永久发布;
inherit-cost:指定 IPv6 静态路由继承迭代路由的开销值;
description tex[……]
「BGP」- 部分工作原理
[……]
「MP-BGP」- Path Attribute / MP-REACH-NLRI
属性概述
类型
可选非过渡
作用
MP_REACH_NLRI 被携带于 BGP Update 报文中,有以下作用: 1)通告可达的 Route 给 BGP 邻居; 2)通告可达路的路由的 Next-Hop 给 BGP 邻居;
演示
通过配置,建立 IPv6 BGP 关系
[Huawei] ipv6
[Interface] ipv6 enable
[Interface] ipv6 address 2011::1 64
[bgp] peer 2011::2 as-number 200
[bgp] ipv6-family unicast
[bgp]-ipv6] peer 2011::2 enable
[bgp]-ipv6] network 2011::/64
然后,抓包观察:
Frame 1: 163 bytes on wire (1304 bits), 163 bytes captured (1304 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_2e:4a:35 (00:e0:fc:2e:4a:35), Dst: HuaweiTe_0b:50:b5 (00:e0:fc:0b:50:b5)
Internet Protocol Version 6, Src: 2011::1, Dst: 2011::2
Transmission Control Protocol, Src Port: 49152, Dst Port: 179, Seq: 1, Ack: 1, Len: 77
Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 77
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 54
Path attributes
Path Attribute – ORIGIN: IGP
Path Attribute – AS_PATH: 200
Path Attribute – MULTI_EXIT_DISC: 0
Path Attribute – MP_REACH_NLRI
Flags: 0x90, Optional, Extended-Length, Non-transitive, Complete
Type Code: MP_REACH_NL[……]
「BGP」- MP-UNREACH-NLRI
属性字段
类型
可选非过渡
作用
MP_UNREACH_NLRI 被携带于 BGP Update 报文中,用于撤销不可达的路由;
演示
通过 [Huawei-bgp-ipv6] undo network 撤销,能够捕获报文:
Frame 1107: 125 bytes on wire (1000 bits), 125 bytes captured (1000 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_2e:4a:35 (00:e0:fc:2e:4a:35), Dst: HuaweiTe_0b:50:b5 (00:e0:fc:0b:50:b5)
Internet Protocol Version 6, Src: 2011::1, Dst: 2011::2
Transmission Control Protocol, Src Port: 49152, Dst Port: 179, Seq: 1389, Ack: 1312, Len: 39
Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 39
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 16
Path attributes
Path Attribute – MP_UNREACH_NLRI
Flags: 0x90, Optional, Extended-Length, Non-transitive, Complete
Type Code: MP_UNREACH_NLRI (15)
Length: 12
Address family identifier (AFI): IPv6 (2)
Subsequent address family identifier (SAFI): Unicast (1)
Withdrawn routes (9 bytes)
2011::/64
MP Unreach NLRI prefix length: 64
MP Unreach NLRI IPv6 prefix: 2011::
报文格式
整体结构[……]
「BGP4+」- 概念术语
当传递 IPv6 路由时 AFI=2,SAFI=1(单播),SAFI=2(组播)。 下一跳地址长度字段,通常值为 16,表示下一跳地址为下一跳路由器的全球单播地址。 保留字段,恒等于 0。 NLRI 字段,可变长字段,表示路由前缀和掩码信息;
当撤销 IPv6 路由时 AFI=2 ,SAFI=1(单播),SAFI=2(组播)。 Withdrawn Routes 字段代表需要撤销的路由前缀及掩码;[……]
「OSPF」- 平滑重启(GR,Graceful Restart)
解决方案
GR(Graceful Restart,平滑重启)是种冗余容错技术,目前已经被广泛地使用在主备切换和系统升级方面,以保证关键业务的不间断转发。
补充说明:重启是指 OSPF 进程的重启,并非物理设备的重启。
原理简述
OSPF 通过新增 Grace-LSA(LSA-T9)来支持 GR 功能。这种 LSA 用于在开始 GR 和退出 GR 时向邻居通告 GR 的时间、原因、接口地址等内容。即,通过协议的方式告知邻居,以让邻居提前准备。
特性特征
通过 GR 技术,在设备重启过程中: 1)保证转发层面能够继续指导数据的转发, 2)同时控制层面邻居关系的重建、路由计算等动作不会影响转发层面的功能, 3)从而避免了路由振荡引发的业务中断,保证关键业务的数据转发,提高整网的可靠性;
在实际应用中,为了实现业务转发不受主板故障的影响,通常在双主板的硬件环境下配置 OSPF GR 才有意义。
概念术语
平滑重启的分类
完全 GR(Totally GR):指当有一个邻居不支持 GR 时,则整个路由器退出 GR 状态;
部分 GR(Partial GR):指当有一个邻居不支持 GR 时,则仅关联该邻居的接口退出 GR,路由器的其它接口正常进行 GR 过程;
有计划 GR(Planned GR):指手动通过命令使路由器执行重启或主备倒换。在进行重启或主备倒换前,Restarter 会先发送 Grace-LSA 进行 GR 协商;
非计划 GR(UnPlanned GR):与 Planned GR 的区别在于,路由器是由于故障等原因进行重启或主备倒换,并且在重启或主备倒换前不会事先发送 Grace-LSA,而是直接开始主备倒换,在备板正常 Up 后才进入 GR 过程,而后的步骤同 Planned GR;
角色及功能
GR Restarter: GR 重启路由器,指由管理员或故障触发而协议重启的设备,它需要具备 GR 能力。 可以通过配置支持 Totally-GR 或 Partial-GR;
GR Helper: 协助重启路由器,即 GR Restarter 的邻居,能协助重启的 GR Restarter 保持路由关系的稳定,它也需要具备 GR 能力; 可以通过配置支持 Planned-GR、UnPlanned-GR,或通过策略有选择支持 GR;
GR Session: GR 会话,是 GR Restarter 和 GR Helper 间的能力协商过程,包括协议重启通告,协议重启过程中的信息交互等。 通过该会话,GR Restarter 和 GR Helper 可以掌握彼此的 GR 能力。
GR 的持续时间: GR 持续时间最长不超过 1800 秒。 G[……]
「OSPF」- 常见问题处理
软件实现
在 Ubuntu 20.04.3 LTS 中,我们使用 quagga-ospfd 来部署服务。[……]
「Huaiwei VRP」- 配置 OSPF 协议
基础配置命令
运行 OSPF 协议(全局)
### 创建 OSPF 进程
[Huawei] ospf <process-id>
[Huawei] ospf router-id <router-id> # 我们通常手动指定 Router ID 参数,以简化维护(默认是自动选择,比较难记忆)
[Huaewi] ospf
[Huawei] ospf 1
[Huawei] ospf 1 router-id x.x.x.x
### 创建 OSPF 区域
[Huawei-ospf] area 0 # 划分区域
### 通告网络
[Huawei-ospf-1-area-0.0.0.0] network <network-prefix> <wildcard-mask> # 宣告网络,这里是反掩码,匹配多个网络
### 重置 OSPF 进程
<user-view> reset ospf [ process-id ]
process-id,用于标识 OSPF 进程(default=1),同个设备上能够运行多个不同的 OSPF 进程。 router-id,手工指定设备号,如果未指定,则 Router 会从设备接口的网络地址中选择某个地址。 area-id:区域 ID;以十进制或点分十进制表示;范围 0-232; network:定义运行 OSPF 协议的网段。参数 wildcard-mask 为通配额父(比如 0.0.0.255 格式)
当通过命令 network 进行网络宣告后,Router 才开始发送 OSPF Hello 报文,以开始建立邻居关系。而且当 OSPF 运行时,虽然是全局配置,但是其依旧实在接口上运行的,即如果接口地址未包含在 network 定义的范围内,该接口上依旧不会捕获到 OSPF Hello 报文。
运行 OSPF 协议(接口)
[Interface] ospf enable 1 area 0
其他设置
加快收敛速度:
// 设置选举DR时的优先级
[Huawei-GigabitEthernet1/0/0] ospf dr-priority priority # priority 越大,越优先,0-255
// 设置Hello报文发送的时间间隔
// 缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒,且同一接口上邻居失效时间是Hello间隔时间的4倍
[Huawei-GigabitEthernet1/0/0] ospf timer Hello interval
// 设置网络类型
// 缺省情况下,接口的网络类型根据物理接口而定。以太网接口的网络类型[……]
「OSPFv3」- OSPF version 3 (for IPv6)
问题描述
OSPF(Open Shortest Path First)是 IETF 组织开发的一个基于链路状态的 IGP;
针对 IPv6 网络,也提出相对的 OSPF 协议;
解决方案
目前针对 IPv4 协议使用的是 OSPF Version 2 协议,针对 IPv6 协议使用 OSPFv3(OSPF Version 3)协议;
OSPFv3 是运行于 IPv6 的 OSPF 路由协议(RFC2740),它在 OSPFv2 基础上进行了增强,是一个独立的路由协议;
原理简述
OSPFv3 的主要目的是开发一种独立于任何具体网络层的路由协议。为实现这一目的,OSPFv3 的内部路由器信息被重新进行了设计;
相同点
针对基本运行机制,OSPFv3 并未改变:
1)基本概念:区域划分及路由器类型;路由计算影响参数:优先级、度量值;支持的网络类型:Broadcast、NBMA、P2P、P2MP;报文类型:Hello、DD、LSR、LSU、LSAck;
2)工作原理:邻居关系的建立及邻居状态的转换(状态机、Hello Packet);LSDB 的同步;LSA 泛洪机制;DR 与 BDR 的选举;路由计算过程;
3)相同点还包括:对特殊区域、虚连接、多进程的支持等;
4)把自治系统划分成逻辑意义上的一个或多个区域,通过 LSA(Link State Advertisement)的形式发布路由; 5)在 OSPFv3 Area 内,依靠各设备间交互 OSPFv3 报文来达到路由信息的统一 6)报文封装在 IPv6 报文内,可以采用单播和组播的形式发送
差异点
OSPFv3 基于链路运行以及拓扑计算,而不再是网段。所以 OSPFv3 需要在接口中进行通告配置; OSPFv3 支持同个链路上多个实例,以此实现网络隔离; OSPFv3 报文和 LSA 中去掉了 IP-ADDR 的意义,且重构了报文格式和 LSA 格式; OSPFv3 报文和 Router LSA/Network LSA 中不包含 IP-ADDR; OSPFv3 的 LSA 中定义了 LSA 的泛洪范围; OSPFv3 中创建了新的 LSA 承载 IPv6 地址和前缀; OSPFv3 邻居不再由 IP-ADDR 标识,只由 Router ID 标识;
特性特征
对于 OSPFv3 协议: 1)OSPFv3 是运行于 IPv6 的 OSPF 路由协议(RFC5340,同 RFC2740); 2)OSPFv3 在 OSPFv2 基础上进行修改,是一个独立的路由协议;
两者并不兼容:OSPFv2 是运行在 IPv4 上的 IGP 路由协议;OSPFv3 是运行在 IPv6 上的 IGP 路由协议[……]
「OSPFv3」- 概念、术语
路由器类型
AS Boundary Router,AS 边界路由器,ASBR Area Border Router,区域边界路由器,ABR Backbone Router,骨干路由器,BR Internal Router,内部路由器,IR
Router ID
OSPFv2 在 Broadcast、NBMA、P2P 和 P2MP 网络中是通过 IPv4 接口地址来标识邻居,而在虚连接网络中是通过 Router ID 来标识邻居;
OSPFv3 通过 Router ID 来标识网络设备。Router ID 是一个 OSPFv3 设备在 AS 中的唯一标识; 如果用户没有指定 Router ID,则 OSPFv3 进程无法运行; 当设置 Router ID 时,必须保证在 AS 中任意两台设备的 Router ID 都不相同; Router ID 长度 32 bit,本地标识符,与 IPv6 地址无关,用点分十进制表示法来表示;
基于链路运行
在 OSPFv2 中,当路由协议时,邻居双方必须处于相同网段,否则无法建立邻居关系;
OSPFv3 是基于链路运行的,设备只要在同一链路,就可以建立邻居关系。即使互联接口不在同个网段,两台设备之间也能够建立邻居关系;
在 IPv6 中,重点强调链路的概念。在 IPv6 中,一个链路上可以分配多个 IP 子网,也就是 IPv6 前缀。和 IPv4 不同的是,同一个链路上的两个节点即使不具有相同的 IPv6 前缀,也可以直接通过这个链路通信。这一点极大地改变了 OSPF 的行为;
在 OSPFv3 中,我们更多的是使用“链路”和“前缀”这两个术语。但这两个概念是分离的,没有必然的对应关系,所以在讨论路由协议时,OSPFv2 的术语“网络”和“子网”在这里应该用“链路”替换掉;
链路支持多实例
一个 OSPFv3 物理接口可以和多个实例绑定,并用不同的实例标识(Instance ID)区分,即 OSPFv3 的单个链路支持运行多个 OSPFv3 实例;
这些运行在同一条物理链路上的多个 OSPFv3 实例,分别与链路对端设备建立邻居及发送报文,且互不干扰,这样可以充分共享同一链路资源;
多实例通过在 OSPFv3 报文头部增加一个 Instance ID 区别不同的实例来实现。一个分配给定 Instance ID 的实例,将会丢弃那些与该 Instance ID 不匹配的 OSPFv3 报文;
通过 Instance ID 可以实现 R2 和 R3 建立 OSPFv3 邻居关系,R1 和 R4 也建立 OSPFv3 邻居关系;
使用链路本地地址(Link Local)
IPv6 使用链路本地(Link-[……]
「OSPFv3」- 报文格式
协议编号
OSPFv3 与 OSPFv2 使用相同的协议号 89; 1)OSPFv2:IPv4 报文头部中的协议号(Protocol)为 89; 2)OSPFv3:IPv6 报文头部中的下一报头号(Next Header)为 89;
组播地址
OSPFv3 与 OSPFv2 类似,使用组播地址作为 OSPF 报文目的地址; 1)OSPFv2 使用 IPv4 组播地址: OSPF IGP Routers:224.0.0.5;OSPF IGP DR :224.0.0.6; 2)OSPFv3 使用 IPv6 组播地址:OSPF IGP Routers:FF02::5;OSPF IGP DR:FF02::6;
报文类别
OSPFv3 与 OSPFv2 有相同类型的报文: 1)Hello 报文:周期性发送,用来发现、建立和维持 OSPFv3 邻居关系; 2)DD 报文:描述了本地 LSDB 的摘要信息,用于两台设备进行数据库同步; 3)LSR 报文:用于向对方请求所需的 LSA。设备只有在 OSPFv3 邻居双方成功交换 DD 报文后,才会向对方发出 LSR 报文; 4)LSU 报文:向对方发送其所需的 LSA; 5)LSAck 报文:用来对收到的 LSA 进行确认;
变化点: 1)Instance ID:1 Byte,缺省值为 0。允许在一个链路上运行多个 OSPFv3 的实例。每个实例具有唯一的 Instance ID。Instance ID 只在本地链路上有意义; 2)OSPFv3 报文头部移除了所有的认证字段:OSPFv3 的认证可以使用 IPv6 的认证及安全处理,也可以通过 OSPFv3 自身机制来完成报文认证;
OSPFv3 Header
Version:1 Byte,版本,OSPF 的版本号。对于 OSPFv3 来说,其值为 3; Type:1 Byte,类型,OSPFv3 报文的类型。有下面几种类型: TYPE=1:Hello 报文 TYPE=2:DD 报文 TYPE=3:LSR 报文 TYPE=4:LSU 报文 TYPE=5:LSAck 报文 Packet length:2 Byte,OSPFv3 报文的总长度,包括报文头在内,单位为字节; Router ID:4 Byte,始发此报文的路由器的 Router ID; Area ID:4 Byte,发送该报文的所属区域; Checksum:2 Byte,使用 IPv6 标准 16 位校验和; 0:1 Byte,保留字段,必须填 0;
OSPFv3 Body : Hello
变化点: 与 OSPFv2 的 Hello 报文相比,OSPFv3 的 Hello 报文去掉了 Network Mask 字段,增加了 Interface I[……]
「Huawei VRP」- OSPFv3
示例配置
# 在接口配置地址后,再进行后续操作
# 配置 OSPFv3 协议:先全局,后接口
[Huawei] ipv6
[Huawei] ospfv3 1
[ospf] router-id 1.1.1.1
# [Huawei-GigabitEthernet0/0/1] ospfv3 process-id area area-id [ instance instance-id ]
[Interface] ipv6 enable
[Interface] ospfv3 1 area 0.0.0.0
# 查看邻居关系
[Huawei] display ospfv3 peer[……]
「RIP」- 路由信息协议、Routing Information Protocol(分类:距离矢量路由协议、动态路由协议)
RIP,最早的动态路由协议,距离矢量算法,路由信息协议,RoutingInformationProtocol,是种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。
RIP 协议特点: 1)配置简单 2)易于维护 3) RIP 主要应用于规模较小的网络中(受到跳数限制,最大 15 跳)。
原理简述
1)RTA,运行 RIP 后,会首先发送路由更新请求。 2)RTB,会发送自己的 RIP 路由进行响应; 3)RTA,收到响应之后,路由器会保存路由条目(最优写入路由表,次优写入数据库),路由表条目的老化为 180s 时间;
在网络稳定后,RT 会周期性(30s)发送路由更新信息,以为了防止路由条目老化(180s)。
RIP Metric
使用跳数作为度量,来衡量到达目的网络的距离。当收到“到达目的网络跳数不同的”路由信息时,将选择最小跳数的路由,并缓存另一条路由。
默认情况,直连网络的条数为零。当路由器发送路由更新时,会把度量值 +1,并且超过 15 跳则被视为网络不可达(并且不使用该路由)。
RIP Timer(计时器)
在更新和维护路由信息时,RIP 协议主要使用四个定时器: 1)更新定时器(Update Timer,30s):当此定时器超时时,立即发送更新报文; 2)老化定时器(Age Timer,180s):如果在老化时间内,RIP 设备没有收到邻居发来的路由更新报文,则认为该路由不可达;并进入垃圾回收状态; 3)垃圾收集定时器(Garbage-collect Timer,120s):如果在该时间内不可达路由未收到来自同一邻居的更新,则该路由将被从路由表中彻底删除; 4)抑制定时器(Suppress timer,0s):当 RIP 设备收到对端的路由更新,其 Cost=16 则对应路由进入抑制状态,并启动抑制定时器。为了防止路由震荡,在抑制定时器超时之前,即使再收到对端路由 Cost<16 的更新,也不接受。当抑制定时器超时后,就重新允许接受对端发送的路由更新报文; (华为抑制计时器为 0s 时间,不再使用。思科设备有时间的。通常 Suppress Timer 为 180s 时间,但是垃圾计数器 120s 结束时,条目被清理,应该接收新路由条目,但是受抑制定时器影响,却不再接收新条目,这有些不合理。)
协议版本:RIPv1 & RIPv2
RIPv1(缺点):
1)有类别路由协议,不支持 VLSM 与 CIDR(准确说,能配置,但是没有效果;该协议在传送时,不携带掩码信息,而是以有类的方式发送) 2)以广播方式发送报文,即目的地址为 255.255.255.255 地址,效率较低; 3)不支持认证,任[……]
「Huawei VRP」- 配置 RIP 协议
[Huawei] rip [Huawei-rip-1] network 10.0.0.0 # 宣告网络,对于 RIPv1 只能针对主类进行宣告(否则报错)
[Huawei-rip-1] version 2
修改 Metric 参数
interface GigabitEtherente 0/0/0 [Interface] rip metricin 2 # 修改收到的 Metric 参数,并累加该值 [Interface] rip metricout 2 # 修改发出的 Metric 参数,使用该值。对端收到的也为该值;
水平分割/毒性反转
[Interface] rip split-horizon [Interface] rip poision-reverse # 优先级更高
禁止发送 RIP 报文
[Interface] undo rip output # 不发送 [Interface] undo rip input # 不接收
抑制接口
[rip-a] silent-interface GigabitEthernet 0/0/1 # 该接口只接收 RIP 报文,但是不发送;优先级高于 Input/Output 特性;
验证 RIP 配置
display rip
关闭汇总(RIPv2)
undo summary
summary always # 针对华为设备的设置,而单纯的 summary 不会发生汇总
[Huawei] undo summary [Interface] rip summary-address 10.1.56.0 255255.0.0 # 手动进行汇总[……]
「Network」- 路由控制、路由策略、路由过滤
问题描述
在复杂的数据通信网络中,根据实际组网需求,往往需要实施对路由信息进行过滤、属性设置等操作。通过对路由的控制,进而影响数据流量转发。
解决方案
Route Policy(路由策略),能够实现对路由控制。例如 从路由表中去除某些路由条目、仅允许存在特定路由条目 等等;
原理简述
1)开始,通过工具(匹配规则)来抓取路由条目; 2)然后,针对抓取到的路由条目应用某些策略;
特性说明
Route Policy 并非单一的技术或网络协议,而是一个技术专题或方法论,里面包含多种工具及方法。
应用场景
路由策略应用灵活而广泛,有以下几种常见方式: 1)控制路由的发布:对发布的路由进行过滤,只发布满足条件的路由(network); 2)控制路由的接收:对接收的路由进行过滤,只接收满足条件的路由; 3)控制路由的引入:控制从其他路由协议引入的路由条目,只有满足条件的路由才会被引入(import);[……]
「Route Policy」- 概念、术语
概述协议
当实施路由策略时,需要完成两件工作:
1)路由匹配:通过编写规则,来捕获符合条件的路由条目;
ACL;IP Prefix;
2)实施策略:针对匹配的路由,来使用策略工具进行处理;
Filter Policy;Route Policy;[……]
「Route Policy」- IP Prefix
问题描述
ACL 仅能匹配路由条目的 Prefix(网络前缀)信息,无法用于匹配 Mask(前缀长度),鉴于此,通过 ACL 无法更好的进行路由匹配;
解决方案
IP-Prefix List(IP 前缀列表)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,能在各路由协议发布和接收路由时使用;
IP Prefix 是专门用于匹配路由条目的工具(但是不能用于过滤流量),在路由过滤时,通常建议使用 IP Prefix 工具;
语法格式
与 ACL 不同,IP-Prefix List 能够同时匹配 IP 地址前缀长度 以及 掩码长度,增强了匹配的精确度;
[Huawei] ip ip-prefix <ip-prefix-name> index <INDEX> <action> <prefix> <mask> greater-equal <start> less-equal <end>
[Huawei] ip ip-prefix test index 10 permit 192.168.1.0 22 greater-equal 24 less-equal 26
1)ip-prefix-name:地址前缀列表名称 2)INDEX:本匹配项在地址前缀列表中的序号,匹配时根据序号从小到大进行顺序匹配 3)action:permit/deny,地址前缀列表的匹配模式为允许 / 拒绝,表示匹配 / 不匹配 4)prefix/mask:匹配路由的网络地址,并限定网络地址的前多少位需严格匹配 5)start/end:匹配路由前缀长度,掩码长度的匹配范围 mask-length<=greater-equal-value<=less-equal-value<=32
匹配机制
默认规则
针对某条路由,若无与其匹配的规则,则默认拒绝;
简单示例
1.1.1.1/32、1.1.1.0/27、1.1.1.0/26、1.1.1.0/25、1.1.1.0/24
||
vv
ip ip-prefix myList index 10 permit 1.1.1.0 24 greater-equal 24 less-equal 27
||
VV
1.1.1.0/27、1.1.1.0/26、1.1.1.0/25、1.1.1.0/24
所有掩码长度在 8 到 32 的路由都被 Permit:
ip ip-prefix aa index 10 permit 10.0.0.0 8 less-equal 32
屏蔽某几条,并允许其他所有:[……]
「Route Policy」- 过滤策略,Filter Policy(路由、过滤)
问题描述
我们需要对路由信息过滤,能够对接收、发布、引入的路由进行过滤。
解决方案
Filter-Policy(过滤-策略)是个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于 IS-IS、OSPF、BGP 等协议。
如图所示,R1、R2、R3 间运行BGP路由协议,路由在各个设备间传递。当需要根据实际需求过滤某些路由信息时,能够使用 Filter-Policy 实现。
在距离矢量路由协议中
在距离矢量路由协议中,设备间传递的是路由信息,如果需要对这种路由信息进行某种过滤,可以使用 Filter-Policy 实现
注意,出方向和入方向的生效位置:
距离矢量协议是基于路由表生成路由的,因此过滤器会影响从邻居接收的路由和向邻居发布的路由。
如果要过滤掉上游设备到下游设备的路由,只需要在上游设备配置filter-policy export或者在下游设备上配置filter-policy import。
在链路状态路由协议中
在链路状态路由协议中,各路由设备间传递的是 LSA 信息,然后设备根据 LSA 汇总成的 LSDB 信息计算出路由表。
但是 Filter-Policy 仅过滤路由信息,而无法过滤 LSA:
Import: 1)操作对象:学习到的路由条目(实际上是对 OSPF 计算出来的路由进行过滤,不是对发布和接收的 LSA 进行过滤); 2)OSPF 把网络中所泛洪的LSA存储到自己的 LSDB 中,并且运行 SPF 算法,计算出一棵以自己为根且无环的最短路径树,Filter-Policy对 OSPF 计算出来的路由(加载到路由表之前)进行过滤,而不会对 LSA 进行过滤(否则会影响拓扑计算);
Export: 1)操作对象:通过命令 import-route 引入外部路由; 2)对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为 Type5 LSA 发布出去;
配置命令(Huawei)
OSPF(链路状态)
// 按照过滤策略,控制下发到 IP Routing Table 中的路由条目,但不会影响通告;
[Huawei-ospf-100] filter-policy { acl | ip-prefix | route-policy route-policy-name [ secondary ] } import
// 按照过滤策略,设置对引入路由在向外发布时进行过滤。
[Huawei-ospf-100] filter-policy { acl | ip-prefix | route-policy route-pol[……]
「Route Policy」- Route Policy(路由、过滤、设置属性)
解决方案
Route-Policy 也是个策略工具,用于过滤路由信息。与 Filter Policy 不同,Route Polocy 能为过滤后(允许通过)的路由信息设置路由属性。
Route-Policy 主要用于路由条目过滤,辅以设置路由属性。
语法格式
格式概览:
配置示例:
route-policy test permit node 10
if-match x1
if-match x2
apply y1
route-policy test permit node 20
if-match x3 x4
apply y2
……
route-policy test permit node N
if-match xn
apply yn
permit / deny
指定 Route-Policy Node 的匹配模式为允许或拒绝,决定路由条目是否通过;
permit:指定 Route-Policy 节点的匹配模式为允许。如果路由与节点所有的 if-match 子句匹配成功,则执行此节点 apply 子句;否则,进行下一节点。
deny:指定 Route-Policy 节点的匹配模式为拒绝。如果路由与节点所有的 if-match 子句匹配成功,则该路由将被拒绝通过;否则进行下一节点。
node
指定 Route-Policy 的节点号。整数形式,取值范围是 0~65535;
Route-Policy 由单个或多个 Node(节点)构成,按照编号从小到大的顺序排列。Node 间的关系为“或”,Route Policy 根据 Node 编号,大小从小到大顺序执行,当某个 Node 匹配时,将不会继续向下匹配。
if-match / apply
每个 Node 由条件语句(匹配条件,if-match)及执行语句(执行动作,apply)组成。每个 Node 可包含多个 if-match,在 Node 内的多个 if-match 间的关系为“与”,即匹配所有条件语句才会执行本节点内的动作。
if-match 子句:定义该节点的匹配条件。通常是对 ACL、IP Prefix 的引用;
apply 子句:定义针对被匹配路由执行的操作。Permit 时,才使用 apply 子句,否则 apply 是无意义的。apply 用来为路由策略指定动作,用来设置匹配成功的路由的属性。在 Node 中,如果没有配置apply子句,则该节点仅起过滤路由的作用。如果配置一个或多个apply子句,则通过节点匹配的路由将执行所有apply子句。[……]
「路由策略」- 3.Problem Solving (how-to)
控制引入路由(Huawei)
[ACL]
[IP Prefix]
[OSPF-1] filter-policy <acl/ip-prefix>
[OSPF-1] import-route <type> route-policy <name>
通过 Route Policy 技术,来修改 BGP Route 属性:
# 这里我们使用 ACL 来抓取路由,仅测试目的
[ACL-2000] rule permit source 10.1.1.1 0.0.0.0
route-policy set-as_path permit node 1000
if-match acl 2000
apply as-path 100 additive
route-policy set-as_path permit node 2000 # 当无匹配规则时,Route Policy 默认为拒绝,
# 该条目用于匹配其他所有路由条目,以允许通过;[……]
「Network」- 路由引入
问题描述
场景一:假设 A公司 和 B公司 各有自己的网络,这两个网络被独立管理及运维,A公司 网络使用的路由协议为 OSPF 协议,B公司 网络使用的路由协议为 IS-IS 协议。现在两家公司合并成一家公司,导致原有的两张网络不得不进行整合,为了使合并后的新公司业务流量能够正常在整合后的网络上交互,最重要的就是实现路由互通。
场景二:在大型企业网络中,网络规模十分庞大,选用单一的路由协议无法满足网络的需求,因此多种路由协议共存的情况十分常见。或者出于业务逻辑或行政管理的考虑,会在不同的网络结构中设计和部署不同的路由协议,使路由的层次结构更加清晰可控。在这样的网络环境下,也需要实现全网路由互通。
解决方案
若要实现路由互通,可以通过以下方法: 1)重新规划及整改全网路由协议 —- 该方案部署复杂。在大型环境中,重构并不是问题的解决方案; 2)在 OSPF 和 IS-IS 路由域的边界设备上进行操作,使得路由信息在两个动态路由协议之间传递。 — 该方案不需要改变原有拓扑架构,部署较为简单,但可能有环路风险。
原理简述
路由引入,指将路由信息从某种路由协议发布到另种路由协议的操作。 通过路由引入,能够实现路由信息在不同路由协议间传递。 当执行路由引入时,还能够部署路由控制,从而实现对业务流量的灵活把控。
协议特性
优点:当网络规模较大且使用多种路由协议时,路由协议间通过路由引入的方式,来实现路由的相互通告。
缺点:由于路由引入可能会引入大量路由,并导致低性能设备无法承受,因此在路由引入时,需要进行路由控制来实现路由的按需分发。
应用场景
多种路由协议互通
将汇聚层交换机的 Vlanif 引入 OSPF 协议,而不是通过 network 宣告。通过路由引入,以使 OSPF 不会向该 VLAN 内发送报文。否则,如何通过 network 方式,则会向该网络宣告 OSPF 信息。
概念术语
来源
在执行路由引入时,引入的路由信息来自全局路由表,而非协议路由表。
比如 import-route direct 是引入 display ip routing-table 显示的 Type=Direct 类型的路由条目。
方向
路由引入是具有方向性的: 1)将路由信息从路由协议 A 引入到路由协议 B(A-to-B),则路由协议 B 能获知 A 中的路由信息。 2)但是此时,A 还并不知晓 B 路由协议中的路由信息,除非配置 B-to-A 的路由引入。
在路由引入时,需要注意以下几点: 1)路由优先级:比如 OSPF 外部优先级 150;OSPF 内部优先级 10;IS-IS 仅有单个优先级 15 ; 2)路由回灌:单点双向引入还好,但是双点双向引入[……]
「Network」- 路由引入,双点双向路由重分发,Dual-Point Bidirectional Route Redistribution
问题描述
在边界路由器上把两个路由域的路由相互引入,称之为双向路由重发布。两个路由域存在两个边界路由器,并且都执行双向路由重分发,此时称为双点双向路由重发布。
双点双向路由重发布是种经典的路由模型,因单点的双向路由重发布缺乏冗余性,一旦单点的边界路由器故障,那么两个路由域之间的通信可能就会出现问题。因此在大型网络部署中,一般采用双点双向路由重发布。
双点双向重路由发布,虽然增强网络的可靠性,但是容易引发 次优路径、路由环路 问题。
路径次优
问题描述
1)R1 ⇒ R2 ⇒ R4 ⇒ R3,此时 R3 学习到 10.1.1.0/24 路由,协议优先级为 15; 2)R1 ⇒ R3,此时 R3 学习到 10.1.1.0/24 路由,协议优先级为 150(该直连路由通过 OSPF 引入,属于 OSPF ASE 路由); 3)根据路由匹配规则(若网络地址相同,则比较协议优先级),则 R3 访问 10.1.1.0/24 路径为:R3 ⇒ R4 ⇒ R2 ⇒ R1; 4)这是次优路径,而最佳路径是通过 R3 ⇒ R1 直接访问;
原因分析
在路由引入及发布过程中,路由优先级(这里是路由协议的优先级)发生变化
Q:是否会出现双向次优路由?即 R2 R3 都进行路由引入,导致 R2 R3 去往 10.1.1.0/24 都为次优路径? A:次优路径是单向的。因为 R2 引入之后 R3 通过 ISIS 学习 10.1.1.0/24 路由,并加入路由表。此时执行 Import Route 是从路由表中引入 OSPF 路由,而 10.1.1.0/24 是 ISIS 学习到的,因此不会引入该路由,也就是说 R2 不会通过 ISIS 学习到 10.1.1.0/24 路由。(这里需要强调的是,路由引入是从全局路由表引入的,而非协议路由表。先入为主,导致 R3 全局路由表的 10.1.1.0/24 路由是通过 ISIS 学习到的,而 Import Route OSPF 不会引入该路由,因此 R3 无法通过 ISIS 学习到)
解决方案
方案一、过滤路由:在 R3 的 IS-IS 进程内,通过 Filter-Policy 禁止来自 R4 的 10.1.1.0/24 路由加入本地路由表:
[R3] acl 2001
[R3-acl-basic-2001] rule 5 deny source 10.1.1.0 0
[R3-acl-basic-2001] rule 10 permit
[R3] isis
[R3-isis-1] filter-policy 2001 import
[R2] …
……
Q:既然不会出现双向次优路由,为什么 R2 与 R3 都要进行路[……]
「Network」- IP Multicast,组播
问题描述
点到多点业务可以由单播,组播,广播进行承载,现网中也有各种各样的实现方式。
但使用单播或广播承载点到多点业务时存在一些固有的问题:
解决方案
组播(Multicast)技术,在一台 源主机 和 多台接收主机 间进行,中间的网络设备根据接收者的需要,有选择性地对数据进行复制和转发。组播技术能够较好的解决单播或广播在承载点到多点业务时存在的问题。
原理简述
在组播方式下,单一的信息流沿网络被同时发送给多个用户,相同的组播数据流在每一条链路上最多仅有一份。
特性说明
组播技术有效地满足单点发送、多点接收的需求,实现 IP Network 中点到多点业务数据的高效传送,能够大量节约网络带宽、降低网络负载。
相比单播和广播,使用组播的好处如下: 1)相比单播:增加用户,不会导致信息源的负载加重,不会导致网络资源消耗的显著增加; 2)相比广播:不会造成网络资源的浪费,并能提高信息传输的安全性,而且组播可以实现跨网段的传输;
应用场景
IPTV、视频会议[……]