上传文件至 'Datacom-MD'

main
diandian 2 years ago
parent 251e1268d3
commit 882077b3bc

@ -0,0 +1,262 @@
![image-20220315174135837](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220315174135837.png)
- CE1、CE3属于vpna。
- CE2、CE4属于vpnb。
- vpna使用的VPN-target属性为111:1vpnb为222:2。
- 不同VPN用户之间不能互相访问。
PE1
```
#
sysname PE1
#
ip vpn-instance vpna //创建VPN实例vpna
ipv4-family
route-distinguisher 100:1
vpn-target 111:1 export-extcommunity
vpn-target 111:1 import-extcommunity
#
ip vpn-instance vpnb //创建VPN实例vpnb
ipv4-family
route-distinguisher 100:2
vpn-target 222:2 export-extcommunity
vpn-target 222:2 import-extcommunity
#
mpls lsr-id 1.1.1.9 //配置MPLS
mpls
#
mpls ldp //建立LDP
#
interface Ethernet1/0/0 //绑定VPN实例
ip binding vpn-instance vpna
ip address 10.1.1.2 255.255.255.0
#
interface Ethernet2/0/0
ip binding vpn-instance vpnb //绑定VPN实例
ip address 10.2.1.2 255.255.255.0
#
interface Ethernet2/0/1 //接口使能MPLS
ip address 172.1.1.1 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 1.1.1.9 255.255.255.255
#
bgp 100 //配置MP-IBGP对等体
peer 3.3.3.9 as-number 100
peer 3.3.3.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 3.3.3.9 enable
#
ipv4-family vpnv4 //使能对等体交换VPNv4路由信息的能力
policy vpn-target
peer 3.3.3.9 enable
#
ipv4-family vpn-instance vpna //配置PE与CE之间建立EBGP对等体关系引入VPN路由
peer 10.1.1.1 as-number 65410
import-route direct
#
ipv4-family vpn-instance vpnb //配置PE与CE之间建立EBGP对等体关系引入VPN路由
peer 10.2.1.1 as-number 65420
import-route direct
#
ospf 1 //配置公网路由
area 0.0.0.0
network 172.1.1.0 0.0.0.255
network 1.1.1.9 0.0.0.0
#
return
```
P:
```
#
sysname P
#
mpls lsr-id 2.2.2.9 //配置MPLS
mpls
#
mpls ldp
#
interface Ethernet1/0/0
ip address 172.1.1.2 255.255.255.0
mpls
mpls ldp
#
interface Ethernet2/0/0
ip address 172.2.1.1 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 2.2.2.9 255.255.255.255
#
ospf 1 //配置公网路由
area 0.0.0.0
network 172.1.1.0 0.0.0.255
network 172.2.1.0 0.0.0.255
network 2.2.2.9 0.0.0.0
#
return
```
PE2
```
#
sysname PE2
#
ip vpn-instance vpna //创建VPN实例vpna
ipv4-family
route-distinguisher 200:1
vpn-target 111:1 export-extcommunity
vpn-target 111:1 import-extcommunity
#
ip vpn-instance vpnb //创建VPN实例vpnb
ipv4-family
route-distinguisher 200:2
vpn-target 222:2 export-extcommunity
vpn-target 222:2 import-extcommunity
#
mpls lsr-id 3.3.3.9 //配置MPLS LSR
mpls
#
mpls ldp
#
interface Ethernet1/0/0 //绑定VPN实例
ip binding vpn-instance vpna
ip address 10.3.1.2 255.255.255.0
#
interface Ethernet2/0/0 //绑定VPN实例
ip binding vpn-instance vpnb
ip address 10.4.1.2 255.255.255.0
#
interface Ethernet2/0/1 //接口使能MPLS
ip address 172.2.1.2 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 3.3.3.9 255.255.255.255
#
bgp 100 //配置MP-IBGP对等体
peer 1.1.1.9 as-number 100
peer 1.1.1.9 connect-interface LoopBack1
#
ipv4-family unicast
undo synchronization
peer 1.1.1.9 enable
#
ipv4-family vpnv4 //使能对等体交换VPNv4路由信息的能力
policy vpn-target
peer 1.1.1.9 enable
#
ipv4-family vpn-instance vpna //配置PE与CE之间建立EBGP对等体关系引入VPN路由
peer 10.3.1.1 as-number 65430
import-route direct
#
ipv4-family vpn-instance vpnb //配置PE与CE之间建立EBGP对等体关系引入VPN路由
peer 10.4.1.1 as-number 65440
import-route direct
#
ospf 1 //配置公网路由
area 0.0.0.0
network 172.2.1.0 0.0.0.255
network 3.3.3.9 0.0.0.0
#
return
```
CE1
```
#
sysname CE1
#
interface Ethernet1/0/0
ip address 10.1.1.1 255.255.255.0
#
bgp 65410 //在PE与CE之间建立EBGP对等体关系
peer 10.1.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
import-route direct //引入直连路由
peer 10.1.1.2 enable
#
return
```
CE2
```
#
sysname CE2
#
interface Ethernet1/0/0
ip address 10.2.1.1 255.255.255.0
#
bgp 65420 //在PE与CE之间建立EBGP对等体关系
peer 10.2.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
import-route direct //引入直连路由
peer 10.2.1.2 enable
#
return
```
CE3
```
#
sysname CE3
#
interface Ethernet1/0/0
ip address 10.3.1.1 255.255.255.0
#
bgp 65430 //在PE与CE之间建立EBGP对等体关系
peer 10.3.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
import-route direct //引入直连路由
peer 10.3.1.2 enable
#
return
```
CE4
```
#
sysname CE4
#
interface Ethernet1/0/0
ip address 10.4.1.1 255.255.255.0
#
bgp 65440 //在PE与CE之间建立EBGP对等体关系
peer 10.4.1.2 as-number 100
#
ipv4-family unicast
undo synchronization
import-route direct //引入直连路由
peer 10.4.1.2 enable
#
return
```
PE之间必须使用32位掩码的Loopback接口地址来建立MP-IBGP对等体关系以便能够迭代到隧道

@ -0,0 +1,900 @@
<h1><center>MPLS VPN技术</center></h1>
> 作者:行癫
------
<h3>第一节MPLS VPN原理与配置</h3>
<h4>MPLS VPN概述</h4>
<h5>1.MPLS VPN定义</h5>
BGP/MPLS IP VPN网络一般由运营商搭建VPN用户购买VPN服务来实现用户网络之间的路由传递、数据互通等
MPLS VPN使用BGP在运营商骨干网上发布VPN路由使用MPLS在运营商骨干网上转发VPN报文BGP/MPLS IP VPN又被简称为MPLS VPN
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217194835189.png" alt="image-20220217194835189" style="zoom:80%;" />
<h5>2.MPLS VPN网络架构</h5>
MPLS VPN网络架构由三部分组成CECustomer Edge、PEProvider Edge和PProvider其中PE和P是运营商设备CE是MPLS VPN用户设备
站点site就是MPLS VPN的用户由CE和其他用户设备构成
![image-20220217210159362](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217210159362.png)
CE用户网络边缘设备有接口直接与运营商网络相连。CE可以是路由器或交换机也可以是一台主机。通常情况下CE“感知”不到VPN的存在也不需要支持MPLS
PE运营商边缘路由器是运营商网络的边缘设备与CE直接相连。在MPLS网络中对VPN的所有处理都发生在PE上对PE性能要求较高
P运营商网络中的骨干路由器不与CE直接相连。P设备只需要具备基本MPLS转发能力不维护VPN相关信息
**站点的含义可以从下述几个方面理解:**
站点是指相互之间具备IP连通性的一组IP系统并且这组IP系统的IP连通性不需通过运营商网络实现
站点的划分是根据设备的拓扑关系而不是地理位置。如图所示公司A的X省网络和公司A的Y省网络需要通过运营商的骨干网进行互联所以它们被划分为两个站点。若在当前X省网络和Y省网络的CE之间增加一条物理专线不需要通过运营商网络就可以互通那么这两张网络就是一个站点
**站点与VPN的关系**
对于多个连接到同一服务提供商网络的站点通过制定策略可以将它们划分为不同的集合只有属于相同集合的站点之间才能通过服务提供商网络互访这种集合就是VPN
一个Site中的设备可以属于多个VPN换言之一个Site可以属于多个VPN
<h5>3.MPLS VPN技术架构</h5>
MPLS VPN不是单一的一种VPN技术是多种技术结合的综合解决方案主要包含下列技术
MP-BGP负责在PE与PE之间传递站点内的路由信息
LDP负责PE与PE之间的隧道建立
VRF负责PE的VPN用户管理
静态路由、IGP、BGP负责PE与CE之间的路由信息交换
![image-20220217210606263](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217210606263.png)
<h5>4.为什么要选择MPLS VPN</h5>
**对VPN客户而言**
“感知”不到VPN的存在不需要部署和维护VPN降低企业运维难度和成本
一般部署在运营商的MPLS VPN专网上有一定的安全性保障
**对于运营商而言:**
MPLS在无连接的IP网络中增加了面向连接的控制平面为IP网络增添了管理和运营的手段
支持地址空间重叠、支持重叠VPN、组网方式灵活、可扩展性好
能够方便地支持MPLS TE合理调控现有网络资源最大限度的节省运营商成本
MPLS TEMPLS Traffic EngineeringMPLS流量工程基于一定约束条件LSP隧道并将流量引入到这些隧道中进行转发使网络流量按照指定的路径进行传输。可以在不进行硬件升级的情况下对现有网络资源进行合理调配和利用并对网络流量提供带宽和QoS保证最大限度的节省成本
<h5>5.MPLS VPN常见组网</h5>
根据VPN用户的需求不同可采用以下几种常见的组网方案
Intranet一个VPN中的所有用户形成闭合用户群同一VPN站点之间可以互访不同VPN站点间不能互访
Extranet适用于一个VPN用户希望提供部分本VPN的站点资源给其他VPN的用户访问的场景
Hub&Spoke如果希望在VPN中设置中心访问控制设备其它用户的互访都通过中心访问控制设备进行可采用Hub&Spoke组网方案
![image-20220217211611714](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217211611714.png)
<h4>MPLS VPN路由交互</h4>
<h5>1.MPLS VPN路由发布概述</h5>
若想实现同一个VPN的不同站点之间的通信首先需要完成不同站点之间的路由交互。在基本MPLS VPN组网中VPN路由信息的发布涉及CE和PEP路由器只维护骨干网的路由不需要了解任何VPN路由信息。VPN路由信息的发布过程包括三部分
本地CE到入口PE
入口PE到出口PE
出口PE到远端CE
![image-20220218102818324](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218102818324.png)
<h5>2.CE与PE之间的路由信息交换</h5>
如图客户X和客户Y属于不同的VPN分别拥有两个站点现需要实现站点间的路由信息交互
CE与PE之间可以使用静态路由、OSPF、IS-IS或BGP交换路由信息。无论使用哪种路由协议CE和PE之间交换的都是标准的IPv4路由
本地CE到入口PE和出口PE到远端CE的路由信息交换原理完全相同
![image-20220218103045001](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103045001.png)
<h5>3.入口PE到出口PE路由传递1</h5>
PE在接收到CE传递来的路由之后需要独立保存不同VPN的路由且需要解决不同的客户使用重叠IP地址空间的问题
![image-20220218103114637](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103114637.png)
VPN是一种私有网络不同的VPN独立管理自己的地址范围也称为地址空间address space。不同VPN的地址空间可能会在一定范围内重合例如图中用户X和用户Y都使用192.168.1.0/24网段地址这就发生了地址空间的重叠
**以下两种情况允许VPN使用重叠的地址空间**
两个VPN没有共同的站点
两个VPN有共同的站点但此共同站点中的设备不与两个VPN中使用重叠地址空间的设备互访
**VRF**
VRFVirtual Routing and Forwarding虚拟路由转发又称VPN实例是MPLS VPN架构中的关键技术每个VPN实例使用独立的路由转发表项实现VPN之间的逻辑隔离
![image-20220218103320279](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103320279.png)
**RD**
PE收到不同VPN的CE发来的IPv4地址前缀本地根据VPN实例配置去区分这些地址前缀。但是VPN实例只是一个本地的概念PE无法将VPN实例信息传递到对端PE故有了RDRoute Distinguisher路由标识符
RD长8字节用于区分使用相同地址空间的IPv4前缀
PE从CE接收到IPv4路由后在IPv4前缀前加上RD转换为全局唯一的VPN-IPv4路由
![image-20220218103426695](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103426695.png)
注意:
配置RD时只需要指定RD的Administrator子字段和Assigned Number子字段
RD的配置格式有四种常用的两种如下
16bits自治系统号:32bits用户自定义数字例如100:1
32bits IPv4地址:16bits用户自定义数字例如172.1.1.1:1
RD的结构使得每个运营商可以独立地分配RD但为了在某些应用场景下保证路由正常必须保证RD全局唯一
**VPN-IPv4地址**
VPN-IPv4地址又被称为VPNv4地址VPNv4地址共有12个字节包括8字节的路由标识符RDRoute Distinguisher和4字节的IPv4地址前缀
![image-20220218103818426](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103818426.png)
<h5>4.入口PE到出口PE路由传递2</h5>
PE之间建立BGP邻居关系并通过BGP进行路由传递。为什么采用BGP呢
BGP使用TCP作为其传输层协议提高了协议的可靠性。可以跨路由器的两个PE设备之间直接交换路由
BGP拓展性强为PE间传播VPN路由提供了便利
PE之间需要传送的路由条目可能较大BGP只发送更新的路由提高传递路由数量的同时不占用过多链路带宽
传统的BGP-4不支持处理VPNv4路由
![image-20220218103919029](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218103919029.png)
**MP-BGP**
为了正确处理VPN路由MPLS VPN使用RFC2858Multiprotocol Extensions for BGP-4中规定的MP-BGP即BGP-4的多协议扩展
MP-BGP采用地址族Address Family来区分不同的网络层协议既可以支持传统的IPv4地址族又可以支持其它地址族比如VPN-IPv4地址族、IPv6地址族等
**MP-BGP新增了两种路径属性**
MP_REACH_NLRIMultiprotocol Reachable NLRI多协议可达NLRI。用于发布可达路由及下一跳信息
MP_UNREACH_NLRIMultiprotocol Unreachable NLRI多协议不可达NLRI。用于撤销不可达路由
![image-20220218104058234](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104058234.png)
**注意:**
NLRINetwork Layer Reachability Information网络层可达信息
关于地址族的一些取值请参考RFC3232Assigned Numbers
MP_REACH_NLRI用于发布可达路由及下一跳信息。该属性由一个或多个三元组组成格式如下
地址族信息Address Family Information由2字节的地址族标识AFIAddress Family Identifier和1字节的子地址族标识SAFISubsequent Address Family Identifier组成
下一跳信息Next Hop Network Address Information由一字节的下一跳网络地址长度和可变长度的下一跳网络地址组成
网络层可达性信息NLRI由一个或多个三元组<长度、标签、前缀>组成
MP_UNREACH_NLRI用于通知对等体删除不可达的路由。该属性的格式如下
地址族标识AFI与MP_REACH_NLRI属性中的相同
子地址族标识SAFI与MP_REACH_NLRI属性中的相同表示NLRI的类型
撤销路由Withdrawn Routes不可达路由列表也是由一个或多个NLRI组成。BGP发言者可以通过在撤销路由域中携带与之前发布的可达路由中相同的NLRI来撤销路由
MP-BGP的报文类型、VPNv4路由发布策略仍与普通BGP相同
<h5>5.入口PE到出口PE路由传递 (3)</h5>
MP-BGP将VPNv4传递到远端PE之后远端PE需要将VPNv4路由导入正确的VPN实例
MPLS VPN使用BGP扩展团体属性VPN Target也称为Route Target来控制VPN路由信息的发布与接收
本地PE在发布VPNv4路由前附上RT属性对端PE在接到VPNv4路由后根据RT将路由导入对应的VPN实例
![image-20220218104407514](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104407514.png)
**RT**
在PE上每一个VPN实例都会与一个或多个VPN Target属性绑定有两类VPN Target属性
Export TargetERT本地PE从直接相连站点学到IPv4路由后转换为VPN IPv4路由并为这些路由添加Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布
Import TargetIRTPE收到其它PE发布的VPN-IPv4路由时检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时PE就把路由加入到该VPN实例的路由表
![image-20220218104458786](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104458786.png)
<h5>6.入口PE到出口PE路由传递 (4)</h5>
PE根据VPNv4路由所携带的RT将路由导入正确的VPN实例之后VPNv4路由的RD值剥除将IPv4路由通告给相应的客户的CE设备
站点B和站点D的CE设备就能学习到去往各自远端站点的路由。同理通过一系列的操作可以实现同一用户同一VPN不同站点之间的路由互通
![image-20220218104538484](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104538484.png)
<h5>7.数据转发时遇到的问题</h5>
![image-20220218104602974](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104602974.png)
<h5>8.入口PE到出口PE路由传递 (5)</h5>
PE和P设备之间运行LDP交换公网标签建立PE之间的LSP隧道公网隧道
入口PE在通过MP-BGP传递VPNv4路由时会携带私网标签用于区分不同VPN的数据
出口PE在接收到VPNv4路由后需要执行私网路由交叉和隧道迭代来选择路由
![image-20220218104806411](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218104806411.png)
**PE上分配私网标签的方法有如下两种**
基于路由的MPLS标签分配为VPN路由表的每一条路由分配一个标签one label per route。这种方式的缺点是当路由数量比较多时设备入标签映射表ILMIncoming Label Map需要维护的表项也会增多从而提高了对设备容量的要求
基于VPN实例的MPLS标签分配为整个VPN实例分配一个标签该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签
私网路由交叉VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后既不进行优选也不检查隧道是否存在直接将其与本地的VPN实例进行交叉
隧道迭代为了将私网流量通过公网传递到另一端需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后需要根据目的IPv4前缀进行路由迭代即该IPv4路由的下一跳有对应的LSP存在只有隧道迭代成功该路由才被放入对应的VPN实例路由表
<h5>9.MPLS VPN中的路由交互全过程</h5>
![image-20220218105341534](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218105341534.png)
IGP或者EBGP交换私网IPv4路由
客户私网路由被学习到VPN路由表中(VPN实例路由表)
IPv4路由引入到MP-BGP如果PE-CE之间运行的就是BGP则无需手工执行路由引入操作
RD被添加到IPv4路由上构成VPNv4路由
VPNv4路由被PE1通过MP-IBGP的Update消息通告给PE2。Update消息携带着MP_REACH_NLRI属性包含VPNv4路由前缀下一跳和标签等重要信息和RT属性。
PE2根据RT将路由导入特定的VRF同时将VPNv4路由的RD剥除将IPv4路由通告给相应的客户的CE设备
客户IPv4路由被通告给CE设备
<h4>MPLS VPN报文转发</h4>
<h5>1.报文转发过程 (1)</h5>
以图中用户X的站点B访问站点A的192.168.1.0/24网段为例报文转发过程如下
![image-20220218105632866](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218105632866.png)
<h5>2.报文转发过程 (2)</h5>
![image-20220218105659613](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218105659613.png)
PE2根据报文入接口找到VPN实例查找对应VPN的转发表
匹配目的IPv4前缀并打上对应的内层标签I-L
根据下一跳地址查找对应的Tunnel-ID
将报文从隧道发送出去即打上公网外层MPLS标签头O-L1
<h5>3.报文转发过程 (3)</h5>
![image-20220218110122698](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218110122698.png)
骨干网的所有P设备都对该报文进行外层标签交换直到到达PE1
<h5>4.报文转发过程 (4)</h5>
![image-20220218110350111](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218110350111.png)
PE1收到该携带两层标签的报文交给MPLS处理MPLS协议将去掉外层标签
PE1继续处理内层标签根据内层标签确定对应的下一跳并将内层标签剥离后以纯IPv4报文的形式发送给CE1
<h5>5.报文转发过程 (5)</h5>
![image-20220218110736336](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218110736336.png)
CE1收到该IPv4报文后进行常规的IPv4处理流程
<h4>MPLS VPN配置与实现</h4>
<h5>1.配置命令 - VPN实例配置</h5>
![image-20220218110921136](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218110921136.png)
![image-20220218110931125](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218110931125.png)
<h5>2.配置命令 - MP-BGP配置</h5>
![image-20220218111050198](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218111050198.png)
<h5>3.配置命令 - PE与CE间路由配置</h5>
![image-20220218111121675](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218111121675.png)
<h5>4.MPLS VPN配置示例 - 背景介绍</h5>
![image-20220218111157869](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218111157869.png)
客户X及Y各自有2个站点现需要通过MPLS VPN实现站点之间的互联分别对应VPNX和VPNY
互联接口、AS号及IP地址信息如图
客户X站点与PE之间采用OSPF交互路由信息客户Y站点与PE之间采用BGP交互路由信息
<h5>5.MPLS VPN配置示例 - 配置思路</h5>
**MPLS VPN骨干网配置**
IGP配置实现骨干网的IP连通性
MPLS与MPLS LDP配置建立MPLS LSP公网隧道传输VPN数据
MP-BGP配置建立后续传递VPNv4路由的MP-BGP对等体关系
**VPN用户接入配置**
创建VPN实例并配置参数RT、RD
将接口加入VPN实例
配置PE与CE之间的路由交换
<h5>6.MPLS VPN配置示例 - 数据规划</h5>
MPLS骨干网采用单区域OSPF实现路由互通所有PE和P互联接口均使能MPLS LDP功能
**PE上的VPN相关配置如表格**
![image-20220218111418110](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218111418110.png)
<h5>7.部署配置</h5>
**MPLS VPN骨干网配置**
在MPLS VPN骨干网络内部署OSPFMPLS VPN骨干网络内部署的OSPF用于实现骨干网络内部的路由互通
以PE1节点的OSPF配置为例
```shell
[PE1]ospf 100 router-id 1.1.1.1
[PE1-ospf-100]area 0
[PE1-ospf-100-area-0.0.0.0]network 10.0.12.1 0.0.0.0
[PE1-ospf-100-area-0.0.0.0]network 1.1.1.1 0.0.0.0
```
在PE1、P、PE2节点配置MPLS及LDP以PE1为例
```shell
[PE1]mpls lsr-id 1.1.1.1
[PE1]mpls
Info: Mpls starting, please wait... OK!
[PE1-mpls]mpls ldp
[PE1-mpls-ldp]Interface GigabitEthernet 0/0/0
[PE1-GigabitEthernet0/0/0]mpls
[PE1-GigabitEthernet0/0/0]mpls ldp
```
在PE1及PE2之间建立MP-BGP对等体关系以PE1为例
```shell
[PE1]bgp 123
[PE1-bgp]router-id 1.1.1.1
[PE1-bgp]peer 3.3.3.3 as-number 123
[PE1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
#进入BGP-VPNv4地址族视图并使能与对等体3.3.3.3的VPNv4地址族能力。
[PE1-bgp]ipv4-family vpnv4 unicast
[PE1-bgp-af-vpnv4]peer 3.3.3.3 enable
```
**MPLS VPN骨干网配置 - 配置验证**
查看公网隧道建立情况
```shell
[PE1]display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
3.3.3.3/32 NULL/1025 -/GE0/0/0
1.1.1.1/32 3/NULL -/-
```
```shell
[PE2]display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
3.3.3.3/32 3/NULL -/-
1.1.1.1/32 NULL/1024 -/GE0/0/0
```
查看MP-BGP邻居状态以PE1为例
```shell
[PE1]display bgp vpnv4 all peer
BGP local router ID : 1.1.1.1
Local AS number : 123
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv
3.3.3.3 4 123 16 18 0 00:14:20 Established 0
```
**VPN用户接入配置**
创建VPN实例并按照规划配置RD与RT参数以PE1为例
```shell
[PE1]ip vpn-instance VPNX
[PE1-vpn-instance-VPNX]route-distinguisher 100:1
[PE1-vpn-instance-VPNX-af-ipv4] vpn-target 100:321 import-extcommunity
IVT Assignment result:
Info: VPN-Target assignment is successful.
[PE1-vpn-instance-VPNX-af-ipv4]vpn-target 100:123 export-extcommunity
EVT Assignment result:
Info: VPN-Target assignment is successful.
[PE1-vpn-instance-VPNX-af-ipv4] quit
[PE1-vpn-instance-VPNX]quit
[PE1]ip vpn-instance VPNY
[PE1-vpn-instance-VPNY]route-distinguisher 200:1
[PE1-vpn-instance-VPNY-af-ipv4]vpn-target 200:234 import-extcommunity
[PE1-vpn-instance-VPNY-af-ipv4]vpn-target 200:432 export-extcommunity
[PE1-vpn-instance-VPNY-af-ipv4]quit
[PE1-vpn-instance-VPNY]quit
```
将接口绑定到VPN实例
```shell
[PE1]interface GigabitEthernet 0/0/1
[PE1-GigabitEthernet0/0/1]ip binding vpn-instance VPNX
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[PE1-GigabitEthernet0/0/1]ip address 192.168.100.2 24
[PE1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[PE1-GigabitEthernet0/0/2]ip binding vpn-instance VPNY
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[PE1-GigabitEthernet0/0/2]ip address 192.168.100.2 24
```
部署CE1-PE1、CE3-PE2间的路由信息交互以PE1为例
```shell
#创建与实例绑定的OSPF进程
[PE1]ospf 2 vpn-instance VPNX
[PE1-ospf-2]area 0
[PE1-ospf-2-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[PE1-ospf-2-area-0.0.0.0]quit
```
```shell
#配置OSPF进程与MP-BGP之间的路由双向引入
[PE1]ospf 2 vpn-instance VPNX
[PE1-ospf-2]import-route bgp
[PE1-ospf-2]quit
[PE1]bgp 123
[PE1-bgp]ipv4-family vpn-instance VPNX
[PE1-bgp-VPNX]import-route ospf 2
```
部署CE2-PE1、CE4-PE2间的路由信息交互以CE2和PE1为例
```shell
#配置CE2上的EBGP并引入直连路由192.168.1.0/24
[CE2]BGP 200
[CE2-bgp]peer 192.168.100.2 as-number 123
[CE2-bgp]network 192.168.1.0 24
[CE2-bgp]quit
```
```shell
#配置PE1上VPN实例的EBGP对等体
[PE1]bgp 123
[PE1-bgp]ipv4-family vpn-instance VPNY
[PE1-bgp-VPNY]peer 192.168.100.1 as-number 200
```
**配置验证**
查看VPNX用户的CE路由学习情况
```shell
[CE1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet0/0/1
192.168.2.0/24 OSPF 10 4 D 192.168.100.2 GigabitEthernet0/0/0
192.168.100.0/24 Direct 0 0 D 192.168.100.1 GigabitEthernet0/0/0
192.168.200.0/24 O_ASE 150 1 D 192.168.100.2 GigabitEthernet0/0/0
```
```shell
[CE3]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 OSPF 10 4 D 192.168.200.2 GigabitEthernet0/0/0
192.168.2.0/24 Direct 0 0 D 192.168.2.254 GigabitEthernet0/0/1
192.168.100.0/24 O_ASE 150 1 D 192.168.200.2 GigabitEthernet0/0/0
192.168.200.0/24 Direct 0 0 D 192.168.200.1 GigabitEthernet0/0/0
```
查看VPNY用户的CE路由学习情况
```shell
[CE2]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet0/0/1
192.168.2.0/24 EBGP 255 0 D 192.168.100.2 GigabitEthernet0/0/0
192.168.100.0/24 Direct 0 0 D 192.168.100.1 GigabitEthernet0/0/0
```
```shell
[CE4]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.2.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet0/0/1
192.168.1.0/24 EBGP 255 0 D 192.168.100.2 GigabitEthernet0/0/0
192.168.200.0/24 Direct 0 0 D 192.168.100.1 GigabitEthernet0/0/0
```
```shell
[PE2] display bgp vpnv4 vpn-instance VPNX routing-table 192.168.1.0 24
BGP local router ID : 3.3.3.3
Local AS number : 123
VPN-Instance VPNX, Router ID 3.3.3.3:
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 192.168.1.0/24:
Label information (Received/Applied): 1026/NULL
From: 1.1.1.1 (1.1.1.1)
Relay token: 0x1
Original nexthop: 1.1.1.1
```
```shell
[PE2]display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
1.1.1.1/32 NULL/1024 -/GE0/0/0
1.1.1.1/32 1024/1024 -/GE0/0/0
```
以192.168.2.0/24网段到192.168.1.0/24网段的数据为例外层标签为1024由MPLS LDP分配。内层标签为1026由MP-BGP分配
```
No. Time Source Destination Protocol Length Info
5 12.109000 192.168.2.254 192.168.1.254 ICMP 102 Echo (ping) request
Frame 5: 102 bytes on wire (816 bits), 102 bytes captured (816 bits) on interface 0
Ethernet II, Src: HuaweiTe_b1:15:3e (00:e0:fc:b1:15:3e), Dst: HuaweiTe_49:20:bb (00:e0:fc:49:20:bb)
MultiProtocol Label Switching Header, Label: 1024, Exp: 0, S: 0, TTL: 254
MultiProtocol Label Switching Header, Label: 1026, Exp: 0, S: 1, TTL: 254
Internet Protocol Version 4, Src: 192.168.2.254, Dst: 192.168.1.254
Internet Control Message Protocol
```
<h3>第二节MPLS VPN部署与应用</h3>
<h4>MPLS VPN应用与组网概述</h4>
<h5>1.MPLS VPN典型应用</h5>
目前MPLS VPN的主要应用包括企业互连和虚拟业务网络
企业互连应用可通过MPLS VPN将分布在各地的分支机构和合作伙伴的IP网络连接在一起
虚拟业务网络可在同一物理网络上运行多种业务如VoIP、IPTV等为每个业务建立一个VPN实现业务隔离
![image-20220218112540999](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218112540999.png)
**MPLS VPN的主要优点包括但不限于以下几项**
可以实现“一点接入,全网连通”,支持异种介质的互连。而不像传统专线那样在每一对用户设备间采用同样的介质连接,可方便地提供普遍服务
可以实现“弹性带宽”,采用流量监管技术,在保证用户基本带宽的同时,对突发流量尽力而为,同时基本带宽也可以“软扩容”,即根据用户的需求在一个范围内连续选择
在资源隔离或隧道绑定的MPLS VPN技术保证下充分保证每个VPN的专有带宽满足各类业务有不同的用户不同的流量模型不同的QoS要求
<h5>2.MPLS VPN基本组网 - Intranet</h5>
当采用Intranet组网方案时一个VPN中的所有用户形成闭合用户群相互之间能够进行流量转发VPN中的用户不能与任何本VPN以外的用户通信其站点通常是属于同一个组织
![image-20220218112633978](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218112633978.png)
PE需要为每个站点创建VPN实例并配置全网唯一的RD
PE通过配置Import RT和Export RT来控制不同VPN的站点做到无法互访
<h5>3.MPLS VPN基本组网 - Extranet</h5>
当采用Extranet组网方案时VPN用户可将部分站点中的网络资源给其他VPN用户进行访问
![image-20220218112719775](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218112719775.png)
**如图Site 2作为能被VPN1和VPN2访问的共享站点需要保证**
PE2能够接收PE1和PE3发布的VPNv4路由
PE2发布的VPNv4路由能够被PE1和PE3接收
PE2不把从PE1接收的VPNv4路由发布给PE3也不把从PE3接收的VPNv4路由发布给PE1
<h5>4.MPLS VPN基本组网 - Hub&Spoke</h5>
当采用Hub&Spoke方案时可以将多个站点中的一个站点设置为Hub站点其余站点为Spoke站点。站点间的互访必须通过Hub站点通过Hub站点集中管控站点间的数据传输
![image-20220218112820498](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218112820498.png)
Spoke站点需要把路由发布给Hub站点再通过Hub站点发布给其他Spoke站点。Spoke站点之间不直接交互路由信息
Spoke-PE需要设置Export Target为“Spoke”Import Target为“Hub”
Hub-PE上需要使用两个接口或子接口创建两个VPN实例一个用于接收Spoke-PE发来的路由其VPN实例的Import Target为“Spoke”另一个用于向Spoke-PE发布路由其VPN实例的Export Target为“Hub”
**从Site1到Site2的路由发布过程如下**
![image-20220218112917570](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218112917570.png)
Spoke-CE1发布路由给Spoke-PE1
Spoke-PE1通过IBGP将该路由发布给Hub-PE
Hub-PE通过VPN实例VPN_in的Import Target属性将该路由引入VPN_in路由表并发布给Hub-CE
Hub-CE学习到该路由并将该路由发布给Hub-PE的VPN实例VPN_out
Hub-PE通过VPN_out发布该路由给Spoke-PE2携带VPN_out的Export Target属性
Spoke-PE2该路由发布给Spoke-CE2
<h5>5.MCE组网</h5>
当一个私网需要根据业务或者网络划分VPN时不同VPN用户间的业务需要完全隔离。此时为每个VPN单独配置一台CE将增加用户的设备开支和维护成本
具有MCEMulti-VPN-InstanceCE多实例CE功能的CE设备可以在MPLS VPN组网应用中承担多个VPN实例的CE功能减少用户网络设备的投入
![image-20220218113034752](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113034752.png)
MCE将PE的部分功能扩展到CE设备通过将不同的接口与VPN绑定并为每个VPN创建和维护独立的路由转发表Multi-VRF
MCE与对应的PE之间可以通过物理接口、子接口或者逻辑接口进行互联PE上需要将这些接口绑定到对应的VPN实例
<h5>6.MPLS VPN跨域组网</h5>
随着MPLS VPN解决方案的广泛应用服务的终端用户的规格和范围也在增长在一个企业内部的站点数目越来越大某个地理位置与另外一个服务提供商相连的需求变得非常的普遍例如国内运营商的不同城域网之间或相互协作的运营商的骨干网之间都存在着跨越不同自治系统ASAutonomous System的情况
一般的MPLS VPN体系结构都是在一个AS内运行任何VPN的路由信息都是只能在一个AS内按需扩散。AS之间的MPLS VPN部署需要通过跨域Inter-AS MPLS VPN解决方案来实现
![image-20220218113137850](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113137850.png)
**RFC2547中提出了三种跨域VPN解决方案分别是**
跨域VPN-OptionAInter-Provider Backbones Option A方式需要跨域的VPN在ASBRAS Boundary Router间通过专用的接口管理自己的VPN路由也称为VRF-to-VRF
跨域VPN-OptionBInter-Provider Backbones Option B方式ASBR间通过MP-EBGP发布标签VPN-IPv4路由也称为EBGP redistribution of labeled VPN-IPv4 routes
跨域VPN-OptionCInter-Provider Backbones Option C方式PE间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由也称为Multihop EBGP redistribution of labeled VPN-IPv4 routes
<h4>MPLS VPN典型场景部署介绍</h4>
<h5>1.部署Intranet场景的MPLS VPN</h5>
如图所示客户X及Y各自有2个站点现需要通过MPLS VPN实现站点之间的互联分别对应VPNX和VPNY
互联接口、AS号及IP地址信息CE与PE通过如图的协议或方法交换路由信息
![image-20220218113307716](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113307716.png)
**部署思路**
MPLS VPN骨干网配置
IGP配置实现骨干网的IP连通性
MPLS与MPLS LDP配置建立MPLS LSP公网隧道传输VPN数据
MP-BGP配置建立后续传递VPNv4路由的MP-BGP对等体关系
VPN用户接入配置
创建VPN实例并配置参数RT、RD
将接口加入VPN实例
配置PE与CE之间的路由交换
**PE-CE之间部署OSPF **
![image-20220218113601464](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113601464.png)
```shell
[CE1] ospf 1
[CE1-ospf-1] area 0
[CE1-ospf-1-area-0.0.0.0] network 192.168.100.0 0.0.0.255
[CE1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
```
注意:
CE1的OSPF配置还是传统的OSPF配置CE1无需支持VRF
```shell
[PE1] ospf 1 vpn-instance VPNX
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 192.168.100.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] import bgp
```
注意:
PE1用于跟CE1对接的OSPF进程必须与对应的VPN实例绑定。将PE1的VPN实例VPNX的路由表中的BGP路由主要是PE1通过BGP获知的、到达站点B的客户路由引入OSPF以便将这些路由通过OSPF通告给CE1。
```shell
[PE1] bgp 123
[PE1-bgp] ipv4-family vpn-instance VPNX
[PE1-bgp] import-route ospf 1
```
注意:
将PE1的VPN实例VPNX的路由表中通过OSPF进程1学习到的OSPF路由引入BGP从而将到达站点A的客户路由转换成BGP的VPNv4路由以便通告给远端的PE2。
**PE-CE之间部署静态路由**
![image-20220218113803680](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113803680.png)
```shell
[CE2] ip route-static 192.168.1.0 24 192.168.200.2
[CE2] ip route-static 192.168.100.0 24 192.168.200.2
```
注意:
CE2需配置到达站点A内的各个网段的静态路由
```shell
[PE2] ip route-static vpn-instance VPNX 192.168.2.0 24 192.168.200.1
```
注意:
PE2需配置到达站点B内各个网段的静态路由
```shell
[PE2] bgp 123
[PE2-bgp] ipv4-family vpn-instance VPNX
[PE2-bgp] import-route static
```
注意:
将PE2的VPN实例VPNX的路由表中的静态路由引入BGP从而将客户路由转换成BGP的VPNv4路由以便通告给远端的PE1
**PE-CE之间部署EBGP**
![image-20220218113941502](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218113941502.png)
```shell
[CE3] bgp 100
[CE3-bgp] peer 192.168.100.2 as-number 123
[CE3-bgp] network 192.168.1.0 24
```
注意:
CE3只需要执行普通BGP配置且无需支持VRF。
```shell
[PE1] bgp 123
[PE1-bgp] ipv4-family vpn-instance VPNY
[PE1-bgp-VPNY] peer 192.168.100.1 as-number 100
```
注意:
当PE与CE之间使用BGP交互客户路由时无需在PE上手工执行路由重分发操作。在本例中PE1通过BGP从CE3学习到的客户路由后PE1会自动将这些路由转换成VPNv4路由并通告给PE2而PE1通过BGP从PE2获知到达站点D的路由后会自动将它们转换成IPv4路由并通告给CE3。
**特殊场景下的BGP配置 - AS号替换**
在MPLS VPN场景中若PE与CE之间运行EBGP交互路由信息则可能会出现两个站点的AS号相同的情况
![image-20220218114103361](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218114103361.png)
若CE1通过EBGP向PE1发送一条私网路由并经过PE2发送到CE2则CE2会由于AS号重复丢弃这条路由导致属于同一VPN的Site 1和Site 2之间无法连通
可以在PE上执行peer substitute-as命令使能AS号替换功能即PE用本地AS号替换收到的私网路由中CE所在VPN站点的AS号这样对端CE就不会因为AS号重复而丢弃路由了
```shell
[PE1] bgp 123
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 192.168.100.1 substitute-as
```
PE1在向CE1发送BGP路由时若发现AS_Path中包含65001则会用本地AS号也就是123去替换65001。所以若有一条路由从CE2传给PE2再由PE2传给PE1当PE1再传递给CE1此时BGP路由的AS_Path属性为{123,123}
**特殊场景下的BGP配置 - SoO**
在CE多归属场景若使能了BGP的AS号替换功能可能会引起路由环路需要SoOSite of Origin特性来避免环路
CE1与CE3处于同一个VPN站点1CE2位于站点Site2Site1和Site2站点所在的AS号都为65001。PE与CE之间运行的都是EBGP路由协议为了Site 1和Site 2之间的路由可以正常学习需要在PE1和PE2上配置AS号替换功能
CE1传递站点内的路由给PE1PE1传递该路由给CE3由于配置AS号替换CE3会接收该路由可能会导致产生路由环路
```shell
[PE1] bgp 123
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 192.168.100.1 soo 200:1
[PE1-bgp-vpn1] peer 192.168.200.1 soo 200:1
```
配置了BGP邻居的SoO后
接收到该邻居的BGP路由时会在路径属性中携带该SoO属性并通告给其他BGP邻居
向该邻居通告BGP路由时会检查路由中的SoO属性是否与配置的SoO值相同若相同则不通告避免引起环路
![image-20220218114307638](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218114307638.png)
**PE-CE之间部署IS-IS**
![image-20220218114328243](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218114328243.png)
```shell
[CE4] isis 1
[CE4-isis-1] network-entity 49.0001.0000.0000.1111.00
[CE4-isis-1] is-level level-2
[CE4-isis-1] quit
[CE4] interface GigabitEthernet 0/0/0
[CE4-GigabitEthernet0/0/0] isis enable 1
[CE4-GigabitEthernet0/0/0]quit
[CE4] interface GigabitEthernet 0/0/1
[CE4-GigabitEthernet0/0/1] isis enable 1
#GE0/0/1接口是192.168.2.0/24网段所在接口
```
```shell
[PE2] isis 1 vpn-instance VPNY
[PE2-isis-1] network-entity 49.0002.0000.0000.2222.00
[PE2-isis-1] is-level level-2
[PE2-isis-1] import-route bgp level-2
[PE2-isis-1] quit
[PE2] interface GigabitEthernet 0/0/2
[PE2-GigabitEthernet0/0/2] isis enable 1
[PE2] bgp 123
[PE2-bgp] ipv4-family vpn-instance VPNY
[PE2-bgp] import-route isis 1
```

File diff suppressed because it is too large Load Diff

@ -0,0 +1,431 @@
<h1><center>网络设备安全特性</center></h1>
> 作者:行癫
------
<h3>第一节:网络设备安全特性</h3>
<h4>一:常见设备安全加固策略</h4>
<h5>1.为什么需要网络设备安全</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218114918813.png" alt="image-20220218114918813" style="zoom:60%;" />
网络安全是一个系统工程,网络当中的每一样东西都有可能是被攻击的目标,网络设备本身当然也不例外
**网络设备受到的常见攻击如下:**
恶意登录网络设备执行非法操作,例如重启设备
伪造大量控制报文造成设备CPU利用率升高例如发送大量的ICMP报文
<h5>2.常见设备安全加固策略</h5>
**常见的设备安全加固策略主要可以从以下方面部署:**
关闭不使用的业务和协议端口
废弃不安全的访问通道
基于可信路径的访问控制
本机防攻击
**关闭不使用的业务和协议端口**
在分析业务需求的基础上,按照最小授权原则,关闭不使用的业务和协议端口
不使用的物理端口,应该默认配置为关闭,即使插上网线也不能通信
不使用的协议端口应该默认配置为关闭不对外提供访问。如常见的telnet、FTP、HTTP等端口
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218115747374.png" alt="image-20220218115747374" style="zoom:50%;" />
在SW1上关闭FTP功能同时关闭多个不使用的端口
```shell
<SW1> system-view
[SW1] undo ftp server
Warning: The operation will stop the FTP server. Do you want to continue? [Y/N]:y
Info: Succeeded in closing the FTP server.
[SW1]port-group protgroup1
[SW1-port-group-protgroup1]group-member GigabitEthernet 0/0/4 to GigabitEthernet0/0/48
[SW1-port-group-protgroup1]shutdown
```
**废弃不安全的访问通道**
在业务需求分析的基础上,优先满足业务的访问需求。在同一个访问需求有多种访问通道服务的情况下,废弃不安全的访问通道,而选择安全的访问通道
| **访问需求** | **不安全的通道** | **安全的通道** |
| ------------ | ---------------- | -------------- |
| 远程登录 | Telnet | SSH v2 |
| 文件传输 | FTPTFTP | SFTP |
| 网元管理 | SNMP v1/v2 | SNMP v3 |
| 网管登录 | HTTP | HTTPS |
通过命令行、WEB、网管等方式登录设备时建议采用安全加密的通道SSH、HTTPS、SNMPv3
设备之间以及设备和终端之间数据传输也建议采用加密的数据传输协议SFTP
**安全的数据访问通道**
设备数据传输安全常见场景及采用协议:
用户远程登录:
Telnet采用TCP协议进行明文传输
STelnet基于SSH协议提供安全的信息保障和强大的认证功能
设备文件操作:
FTP支持文件传输以及文件目录的操作具有授权和认证功能明文传输数据
TFTP只支持文件传输不支持授权和认证明文传输数据
SFTP支持文件传输及文件目录的操作数据进行了严格加密和完整性保护
**SSH概述**
SSH(Secure Shell安全外壳协议)在非安全网络上提供了安全的远程登录、安全文件传输以及TCP/IP安全隧道。不仅在登陆过程中对密码进行加密传送而且对登陆后执行的命令的数据也进行加密
合法用户通过客户端登录,完成用户名以及对应的密码验证后,客户端会尝试和服务端建立会话,每个会话是一个独立的逻辑通道,可以提供给不同的上层应用使用
STelnet和SFTP各自利用了其中的一个逻辑通道通过SSH对数据进行加密从而实现数据的安全传输
![image-20220218120243731](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218120243731.png)
**SSH协议结构**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218120303812.png" alt="image-20220218120303812" style="zoom:80%;" />
SSH协议框架中最主要的部分是三个协议传输层协议、用户认证协议和连接协议
传输层协议:提供版本协商,加密算法协商,密钥交换,服务端认证以及信息完整性支持
用户认证协议:为服务器提供客户端的身份鉴别
连接协议将加密的信息隧道复用为多个逻辑通道提供给高层的应用协议STelnet、SFTP使用各种高层应用协议可以相对地独立于SSH基本体系之外并依靠这个基本框架通过连接协议使用SSH的安全机制
SSH中用到的算法主要有几类
用于数据完整性保护的MAC算法如hmac-md5、hmac-md5-96等
用于数据信息加密的算法如3des-cbc、aes128-cbc、des-cbc等
用于产生会话密钥的密钥交换算法如diffle-hellman-group-exchange-sha1等
用于进行数字签名和认证的主机公钥算法如RSA、DSA等
公开密钥技术:
公钥加密算法也称非对称密钥算法,用两对密钥:一个公共密钥和一个专用密钥。用户要保障专用密钥的安全;公共密钥则可以发布出去。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。由于公钥算法不需要联机密钥服务器,密钥分配协议简单,所以极大简化了密钥管理。除加密功能外,公钥系统还可以提供数字签名
机密性:指信息在存储、传输、使用的过程中,不会被泄漏给非授权用户或实体
完整性:指信息在存储、传输、使用的过程中,不会被非授权用户篡改或防止授权用户对信息进行不恰当的篡改
可用性:指确保授权用户或实体对信息资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息资源
**基于可信路径的访问控制**
可以在设备上部署基于可信路径的访问控制策略,以提升网络的安全性
部署URPF可以判定某个报文的源地址是否合法如果该报文的路径与URPF学习的路径不符丢弃该报文用URPF可以有效防范IP地址欺骗
![image-20220218120602269](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218120602269.png)
IP网络的开放性决定了只要路由可达任何人都可以对目标主机进行访问或者攻击
对于某一个主机而言,访问它的客户端的报文历经的路径通常是固定的,尤其是在网络边缘,这种路径的固定特性表现得更加明显
URPF单播逆向路径转发分为严格模式和松散模式以及允许匹配缺省路由的方式。其原理是当设备转发IP报文时检查数据报文的源IP地址是否合法检查的原理是根据数据包的源IP地址查路由表
**本机防攻击**
在网络中存在着大量针对CPU的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文从而引发其他业务的断续甚至系统的中断大量正常的报文也会导致CPU占用率过高性能下降从而影响正常的业务
为了保护CPU保证CPU对正常业务的处理和响应设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文主要用于保护设备自身安全保证已有业务在发生攻击时的正常运转避免设备遭受攻击时各业务的相互影响
本机防攻击包括CPU防攻击和攻击溯源两部分
CPU防攻击针对上送CPU的报文进行限制和约束使单位时间内上送CPU报文的数量限制在一定的范围之内从而保护CPU的安全保证CPU对业务的正常处理
攻击溯源针对DoSDenial of Service拒绝服务攻击进行防御。设备通过对上送CPU的报文进行分析统计然后对统计的报文设置一定的阈值将超过阈值的报文判定为攻击报文再对这些攻击报文根据报文信息找出攻击源用户或者攻击源接口最后通过日志、告警等方式提醒管理员以便管理员采用一定的措施来保护设备或者直接丢弃攻击报文以对攻击源进行惩罚
**CPU防攻击**
多级安全机制,保证设备的安全,实现了对设备的分级保护。设备通过以下策略实现对设备的分级保护:
第一级通过黑名单来过滤上送CPU的非法报文
第二级CPCAR对上送CPU的报文按照协议类型进行速率限制保证每种协议上送CPU的报文不会过多
第三级对上送CPU的报文按照协议优先级进行调度保证优先级高的协议先得到处理
第四级对上送CPU的报文统一限速对超过统一限速值的报文随机丢弃保证整体上送CPU的报文不会过多保护CPU安全
动态链路保护功能的CPU报文限速是指当设备检测到SSH Session数据、Telnet Session数据、HTTP Session数据、FTP Session数据以及BGP Session数据建立时会启动对此Session的动态链路保护功能后续上送报文如匹配此Session特征信息此类数据将会享受高速率上送的权利由此保证了此Session相关业务的运行可靠性、稳定性
**攻击溯源原理 **
攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程
![image-20220218120959564](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218120959564.png)
通过图中所示的四个过程找出攻击源然后管理员通过ACL或配置黑名单的方式限制攻击源以保护设备CPU
<h4>二:网络设备安全加固部署示例</h4>
<h5>1.SSH基本配置 </h5>
![image-20220218154352764](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218154352764.png)
![image-20220218154403992](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218154403992.png)
<h5>2.SSH配置示例</h5>
用户希望安全的远程登录设备因此配置STelnet方式进行远程的安全登录
在R3上配置两个登录用户client001和client002R1使用client001通过password认证方式登录R3R2使用client002通过RSA认证方式登录R3。配置安全策略保证只有R1和R2才能登录设备
![image-20220218154446378](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218154446378.png)
**配置步骤:**
在R3生成本地密钥对实现在服务器端和客户端进行安全的数据交互
在R3配置SSH用户client001和**client002**
在R3开启STelnet服务功能
在R3配置SSH用户client001和client002的服务方式为STelnet
在R3配置SSH服务器的端口号有效防止攻击者对SSH服务标准端口的访问确保安全性
用户client001和client002分别以STelnet方式实现登录R3
**配置:**
```shell
[R3] rsa local-key-pair create
The key name will be: Host
RSA keys defined for Host already exist. Confirm to replace them? (y/n):y
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is less than 2048,
It will introduce potential security risks.
Input the bits in the modulus[default = 2048]:2048
Generating keys... ......................................................................................+++ ....+++ .......................................++++++++ ..............++++++++
```
```shell
[R3] user-interface vty 0 4
[R3-ui-vty0-4] authentication-mode aaa
[R3-ui-vty0-4] protocol inbound ssh
[R3-ui-vty0-4] quit
[R3] aaa
[R3-aaa] local-user client001 password irreversible-cipher Huawei@123
[R3-aaa] local-user client001 privilege level 3
[R3-aaa] local-user client002 password irreversible-cipher Huawei@123
[R3-aaa] local-user client002 privilege level 3
[R3-aaa] quit
[R3] ssh user client001 authentication-type password
[R3] ssh user client002 authentication-type rsa
```
```shell
[R3] aaa
[R3-aaa] local-user client001 service-type ssh
[R3-aaa] local-user client002 service-type ssh
[R3-aaa] quit
```
```shell
[R3] ssh server port 1025
```
```shell
# 在R2生成客户端的本地密钥对。
[R2] rsa local-key-pair create
The key name will be: Host
RSA keys defined for Host already exist.
Confirm to replace them? (y/n):y
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is less than 2048,
It will introduce potential security risks.
Input the bits in the modulus[default = 2048]:2048
Generating keys... ......................................................................................
+++ ....+++ .......................................++++++++ ..............++++++++
```
```shell
# 查看R2生成的RSA密钥对的公钥部分。
[R2] display rsa local-key-pair public
Key code: 30820109 02820100 CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B A3A48594 69517096 35626F55 E4FAF0EB FDA2B9E9 5E417B2B E09F38B0 D26FCA73 FE2E3FC4 DFBEC8CF 4ED0C909 E8D975E6 FFC73C81 D13FE71E 759DC805 B0F0E877 4FC9288E BE1E197C 2A7186B0 B56F5573 3A5EA588 29C63E3B 20D56233 8E63278D F941734F 6B359C69 BBAE5A52 EB842179 04B4204D 5DB31D72 97F0C085 DA771F66 0AAADC28 D264CEB9 5BADA92C CDE9F116 D6D99C48 CEBA3A1D 868B053A 32941D85 CCAA9796 A4B55760 0A8108ED DB45DA12 F61634C9 59431600 341FEDEF 5379D565 A8D1953D DEA018A2 72F99FFC 63DE04BF 2A6219BD DF13D705 27D63DEF 83D556BC 5B44D983 8D5EA126 C1EB71CB 0203 010001
=====================================================
Time of Key pair created: 2012-08-06 17:17:44+00:00 Key name: Server Key type: RSA encryption Key =====================================================
Key code: 3067 0260 DF8AFF3C 28213B94 2292852E E98657EE 11DE5AF4 8A176878 CDD4BD31 55E05735 3080F367 A83A9034 47D534CA 81250C1D 35401DC3 464E9E5F A50202CF A7AD09CD AC3F531C A763F0A0 4C8E51B9 18755400 76AF4A78 225C92C3 01FE0DFF 06908363 0203 010001
```
```shell
# 将R2上产生的RSA公钥配置到服务器端上页display命令显示信息中黑体部分即为客户端产生的RSA公钥将其拷贝粘贴至服务器端
[R3] rsa peer-public-key rsakey001
[R3-rsa-public-key] public-key-code begin
[R3-rsa-key-code] 30820109
[R3-rsa-key-code] 02820100
[R3-rsa-key-code] CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B
[R3-rsa-key-code] ......
[R3-rsa-key-code] 010001
[R3-rsa-key-code] public-key-code end
[R3-rsa-public-key] peer-public-key end
```
```shell
# 在R3上为SSH用户client002绑定STelnet客户端的RSA公钥。
[R3] ssh user client002 assign rsa-key rsakey001
```
**SSH配置验证**
```shell
[R1] ssh client first-time enable
[R1] stelnet 192.168.1.1 1025
Please input the username:client001
Trying 192.168.1.1 ...
Press CTRL+K to abort
Connected to 192.168.1.1 ...
The server is not authenticated. Continue to access it?(y/n)[n]:y
Save the server's public key?(y/n)[n]:y
The server's public key will be saved with the name 192.168.1.1. Please wait... Enter password:
<R3> # 显示登录成功
```
```shell
[R2] ssh client first-time enable
[R2] stelnet 192.168.1.1 1025
Please input the username:client002
Trying 192.168.1.1 ... Press CTRL+K to abort Connected to 192.168.1.1 ...
The server is not authenticated. Continue to access it?(y/n)[n]:y
Save the server's public key?(y/n)[n]:y
The server's public key will be saved with the name 192.168.1.1. Please wait...
<R3> # 显示登录成功
```
<h5>3.本机防攻击基本配置</h5>
![image-20220218155331824](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218155331824.png)
![image-20220218155340625](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218155340625.png)
<h5>4.本机防攻击配置示例</h5>
![image-20220218155435638](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220218155435638.png)
如图所示位于不同局域网的用户通过R1访问Internet。为分析R1受攻击情况需要配置攻击溯源检查功能记录攻击源信息
管理员发现存在以下现象:
通过攻击溯源检查功能分析可知Net1中的某个用户经常会发生攻击行为
R1收到大量的ARP Request报文影响CPU的正常工作
R1无法提供FTP服务
局域网用户通过DHCP方式动态获取IP地址但R1未优先处理上送CPU的DHCP报文
R1收到大量的Telnet报文
管理员希望通过在R1进行配置以便解决上述问题
**配置过程:**
配置黑名单将Net1网段中的攻击者0001-c0a8-0102列入黑名单阻止其接入网络
配置ARP Request报文上送CPU的速率限制使ARP Request报文限制在较小速率范围内减少对CPU处理业务的影响
配置FTP协议的动态链路保护功能保证R1正常提供FTP功能
配置协议优先级对DHCP Client报文设置较高的优先级保证R1优先处理上送CPU的DHCP Client报文
关闭R1的Telnet服务器功能使R1丢弃收到的Telnet报文
```shell
# 配置黑名单使用的ACL。
[R1] acl number 4001
[R1-acl-L2-4001] rule 5 permit source-mac 0001-c0a8-0102
[R1-acl-L2-4001] quit
```
```shell
# 创建防攻击策略。
[R1] cpu-defend policy devicesafety
```
```shell
# 配置攻击溯源检查功能。
[R1-cpu-defend-policy-devicesafety] auto-defend enable
[R1-cpu-defend-policy-devicesafety] auto-defend threshold 50
```
```shell
# 配置黑名单。
[R1-cpu-defend-policy-devicesafety] blacklist 1 acl 4001
```
```shell
# 配置黑名单。
[R1-cpu-defend-policy-devicesafety] blacklist 1 acl 4001
```
```shell
# 配置FTP协议动态链路保护功能的速率限制值。
[R1-cpu-defend-policy-devicesafety] application-apperceive packet-type ftp rate-limit 2000
# 使能FTP协议动态链路保护功能。
[R1] cpu-defend application-apperceive ftp enable
```
```shell
# 应用防攻击策略。
[R1-cpu-defend-policy-devicesafety] packet-type dhcp-client priority 3
[R1] cpu-defend-policy devicesafety
```
```shell
# 关闭telnet server功能。
[R1] undo telnet server enable
```
**本机防攻击配置验证**
```shell
# 查看上送到主控板的报文的统计信息丢弃的报文表明设备对arp-request进行了速率限制。
<R1> display cpu-defend statistics
Packet Type Pass Packets Drop Packets
8021X 0 0
arp-miss 5 0
arp-reply 8090 0
arp-request 1446576 127773
bfd 0 0
bgp 0 0
bgp4plus 0 0
dhcp-client 879 0
dhcp-server 0 0
```
```shell
# 查看配置的防攻击策略的信息。
[R1] display cpu-defend policy devicesafety
Related slot : <0>
……
Slot<0> : Success
Configuration :
Blacklist 1 ACL number : 4001
Packet-type arp-request rate-limit : 64(pps)
Packet-type dhcp-client priority : 3
Rate-limit all-packets : 2000(pps)(default)
Application-apperceive packet-type ftp : 2000(pps)
Application-apperceive packet-type tftp : 2000(pps)
```
Loading…
Cancel
Save