Network VLan与Trunk

VLan

1、Vlan 的出现帮忙解决了广播域过大的问题

2、在不同的vlan内报文传输相互隔离,vlan 标签(Tag)是什么时候打上的?做了Vlan的划分后是怎么抑制广播报文的?

3、PC 无法处理带标签的报文,正常的报文发送到以太网称为以太网帧,也叫UnTagged帧,是谁给UnTagged帧贴上标签的?打上(去掉)标签是由直连的交换机操作的,加了vlan 标签的帧称为802.1Q帧。0x8100

4、VLAN ID 是12位的0~4095 可用的Vlan 是1~4094 .

5、没有Vlan Tag时 数据帧根据MAC 地址转发,打上Vlan Tag后会根据Tag 转发。

6、 Vlan 划分 :基于主机的MAC、基于交换机端口、基于子网、基于协议、基于策略

7、PVID 也就是默认没有划分VLAN 时交换机的接口ID也叫做缺省的VLAN ID ;大多厂商出厂设置为1 的PVID .每个端口只能有一个Pvid (缺省VLAN ID)

8、以太网交换机二层接口类型:Access 、Trunk、Hybrid Hybird口是access 口和Trunk的结合,可以选择Access,也可以是Trunk .

Access 口会将收到的数据做一个判断 ,如果和Access 接口的VlanID 相同则接受,不同则丢弃,发送同理。

9、Hybrid 混合接口通过 Untagged 列表与 Tag列表决定是否要不要脱标签。

10、Vlan 1 通常是不使用的,默认作为管理VLAN

Trunk

解决了相同VLAN 跨交换机访问的问题

不同的VLAN 经过Trunk时,会被打上VLAN tag用于区分不同的VLAN

路由器、防火墙物理接口、终端(PC,Server)的网卡不识别带VLAN TAG的数据帧,所以要求交换机上连接这些设备的接口必须配置成Access链路;而交换机与交换机之间互联,交换机与路由器子接口、防火墙子接口之间的互联链路要设置Trunk 链路。

vlan 间的通信一般使用三层交换

Trunk \ Vlan端口划分查看

dis port vlan

Trunk的配置

port link-type trunk

port trunk allow vlan 11 to 19

Network BGP故障诊断

BGP协议的故障诊断命令及命令意思如下所示: 


display bgp peer                                 
显示公网IPv4邻居的摘要信息 

display bgp vpnv4 all peer 显示vpnv4 bgp 对等体


display bgp peer ipv4-address  verbose             
显示指定邻居的详细信息 


display bgp peer ipv4-address log-info              
显示指定邻居的信息记录(该命令对邻居意外中断问题定位非常重要) 


display bgp group group-name                     
显示公网IPv4邻居组信息 


display bgp routing-table statistics                 
显示BGP公网IPv4单播路由统计 


display bgp routing-table                         
显示BGP公网IPv4单播路由摘要信息 


display bgp routing-table peer ip-address advertised-routes   
显示给指定邻居发布的路由 


display bgp routing-table peer ip-address received-routes   
显示从指定邻居收到的路由 


display bgp network                             
显示通过Network命令引入到BGP的路由 


display bgp path                                
显示BGP公网Ipv4单播路由的路经属性信息 


display bgp ipv6                               
显示BGP公网IPv6的相应信息,与对应Ipv4命令用法相同 


display bgp multicast               
显示BGP公网IPv4多播的相应信息,与对应IPv4单播命令用法相同 


display ip  routing-table statistics    
显示系统公网IPv4路由统计 


display ip routing-table protocol bgp   
显示系统公网IPv4路由表中BGP Active路由的摘要信息 


display ip routing-table protocol bgp verbose   
显示系统公网IPv4路由表中BGP Active路由的摘要信息 


display ip routing-table protocol bgp inactive    
显示系统公网IPv4路由表中BGP Inactive路由的摘要信息 

BGP是唯一能够运行在AS之间的路由协议,在Internet上,他有不可替代的地位。同时BGP是“传递路由信息”的协议,并不是“发现路由信息”的协议,协议的工作过程可以分为如下两个过程:

  • 设备之间正常的建立起BGP邻居;
  • 邻居之间传递、同步路由信息;

当然,由于BGP协议十分灵活,而且路由属性众多,可以通过多种路由策略完成特定的需求,我们在此只考虑最简单的情况。

与其他路由协议的定位方式一样,我们首先需要保证设备配置的正确性。与其他路由协议相比,BGP的基础配置是比较简单的,我们只需要在BGP协议配置模式下指定邻居的IP地址和AS number就可以完成(目前几乎所有的BGP应用都是“非同步”模式,所以这里没有考虑“同步类型”配置)。为了保证BGP邻居之间的可靠性,一般我们还会通过“peer peer-ip-add connect-interface interface-type interface-num”命令指定建立BGP邻居的“源地址”。为了保证邻居配置可靠、没有歧义,我们建议邻居之间的“源地址”与“目的地址”能够完全对应(本端指定的“源地址”与对端配置的“邻居地址”相同)。

一般情况下,至此BGP邻居已经可以正常建立了。我们可以通过“display bgp peer”命令来查看,如果到达到“establish”状态,则表示邻居正常建立。如果不进行其他特殊配置,BGP只向邻居传递BGP路由,而网络中默认是没有任何BGP路由的。我们可以通过“import-route”和“network”命令使其他类型的路由信息转变为BGP路由。

BGP协议本身维护自己的一张路由表,主要用来路由信息选优。BGP只把本机路由表中“有效”并且“最优”的路由信息传递给邻居。所谓“有效”是指路由表项的“下一跳”可达;“最优”是指在目的网段相同(包括目的网段前缀和掩码都相同)的情况下,路由优先级最高在本设备系统路由表中存在的也是“最优路由”,所以判断一条路由条目是否可以在路由表中以“BGP路由”的形式存在,首先要确保在BGP路由表中,该路由条目是“有效”并且“最优”的。在华为数据通信设备中,BGP路由在默认情况下是优先级最低的,所以如果本机有其他路由协议、相同目的网络的路由,BGP路由不会被优选,自然也不会被传递给邻居。

BGP MPLS IP VPN 配置基础实验

实验拓扑

实验目标

1、实现CE1 和 CE2 通过部署BGP MPLS IP VPN 联通。

配置步骤

  1. P、PE之间配置OSPF,实现骨干网的IP连通性。
  2. PE、P上配置MPLS基本能力和MPLS LDP,建立MPLS LSP公网隧道,传输VPN数据。
  3. PE1和PE2上配置VPN实例,其中PE1,vpnA使用的VPN-target属性为export 64538:1,import 64539:2 以实现相同VPN间互通,同时,与CE相连的接口和相应的VPN实例绑定,以接入VPN用户。
  4. PE1和PE2之间配置MP-IBGP,交换VPN路由信息。
  5. CE1与PE1之间配置EBGP,交换VPN路由信息。CE2与PE2 配置ospf 交换VPN 路由信息。

PE1关键配置

接口配置

dis current-configuration interface
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip binding vpn-instance A // 将vpn 实例绑定到接口
ip address 172.16.0.1 255.255.255.252
#
interface GigabitEthernet0/0/1
ip address 10.0.23.2 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
return

在接口视图下,使ip binding vpn-instance 命令,可以将该接口分配给指定的 VRF 。在以上配置中,设备的 GEO/O/0 接口被分配给了 VRF customer 。需注意的是,如果接口原来已经存在 IP地址等配置,则将其分配给 VRF 后,这些配置将会被清空,此时需重新为接口配置 IP地址。

VRF 的配置

vpn-target export-extcommunity 和 vpn-target import-extcommunity 命令则分别用于配置该 VRF Export与RT ImportRT 值。

dis current-configuration configuration vpn-instance
[V200R003C00]
#
ip vpn-instance A
ipv4-family
route-distinguisher 64538:100
vpn-target 64538:1 export-extcommunity
vpn-target 64539:2 import-extcommunity
#
return

华为数通产品上 、VRF 的名称是大小写敏感的,因此 VRFA VRFa 是两个不同的 VRF。另外,一旦 VRF 指定了 RD 值,那么该 VRF RD 将不能再被修改,如需在 VRF 中修改 RD ,则需先在系统视图下执行 undo ip vpn-instance 命令将指定的 VRF删除,然后重新创建 VRF 并为其指定新的 RD

路由配置( PE1-CE1)通过BGP 交互路由

PE1

dis current-configuration configuration bgp
[V200R003C00]
#
bgp 2345
router-id 2.2.2.2
undo default ipv4-unicast
peer 5.5.5.5 as-number 2345
peer 5.5.5.5 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
undo peer 5.5.5.5 enable
#
ipv4-family vpnv4
policy vpn-target
peer 5.5.5.5 enable
#
ipv4-family vpn-instance A // PE 和CE 通过Ebgp交互VPNv4路由。
router-id 172.16.0.1
peer 172.16.0.2 as-number 64538

#
return

路由配置

如果客户站点的网络规模较小,在 PE-CE 之间部署静态路由的确可行,但是一旦客户站点网络规模变大,静态路由的可扩展性就将受到挑战,网络管理员的工作量也将相应增加:再者,当站点网络发生变更时(例如增加或删除网段), PE 设备是无法动态感知的,因此在多数场景下,在 PE-CE 间部署动态路由协议要显得更加实际。

在CE1 上配置BGP

dis current-configuration configuration bgp
[V200R003C00]
#
bgp 64538
router-id 172.16.0.2
peer 172.16.0.1 as-number 2345
#
ipv4-family unicast
undo synchronization
network 172.16.1.0 255.255.255.0 // 发布路由
peer 172.16.0.1 enable
#
return

CE2和PE2 通过 ospf 交互路由

查看PE2的VRF

dis current-configuration configuration vpn-instance
[V200R003C00]
#
ip vpn-instance A
ipv4-family
route-distinguisher 64539:200
vpn-target 64539:2 export-extcommunity
vpn-target 64538:1 import-extcommunity
#
return

查看PE2 OSPF 配置

PE2>dis current-configuration configuration ospf
[V200R003C00]
#
ospf 1 vpn-instance A // 创建了ospf 为1 的进程绑定了vpn-instance A
import-route bgp

area 0.0.0.0
network 172.16.0.4 0.0.0.3
#
ospf 100 router-id 5.5.5.5
area 0.0.0.0
network 5.5.5.5 0.0.0.0
network 10.0.45.0 0.0.0.255

在华为路由器上可以创建多个 OSPF 进程,每个 OSPF 进程使用Process-ID 进行标识。同 台网络设备上的不同 OSPF 进程之间相互独立,互不影响。设备会分别为这些 OSPF 进程维护不同的 LSDB ,从一个进程学习到的 LSA 仅仅存储在该进程的 LSDB 中。

如果没有在 ospf 命令中使用 vpn-instance 关键字,那么被创建的 OSPF 进程是部署在设备的根实例中的,设备通过该进程所获悉的 OSPF 路由会被加载到其全局路由表中。

ospf 命令中指定了vpnn-instance 关键字,这意味着该命令所创建的 OSPF 进程被绑定到了某个 VRF ,而不再属于根实例。

查看PE2 OSPF 对等体

dis ospf peer

 OSPF Process 1 with Router ID 172.16.0.5
     Neighbors 

Area 0.0.0.0 interface 172.16.0.5(GigabitEthernet0/0/0)’s neighbors
Router ID: 6.6.6.6 Address: 172.16.0.6
State: Full Mode:Nbr is Slave Priority: 1
DR: 172.16.0.5 BDR: 172.16.0.6 MTU: 0
Dead timer due in 37 sec
Retrans timer interval: 5
Neighbor is up for 00:35:34
Authentication Sequence: [ 0 ]

 OSPF Process 100 with Router ID 5.5.5.5
     Neighbors 

Area 0.0.0.0 interface 10.0.45.5(GigabitEthernet0/0/1)’s neighbors
Router ID: 4.4.4.4 Address: 10.0.45.4
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.0.45.5 BDR: 10.0.45.4 MTU: 0
Dead timer due in 36 sec
Retrans timer interval: 5
Neighbor is up for 00:35:33
Authentication Sequence: [ 0 ]

查看路由实例表

dis ip routing-table vpn-instance A

在PE2上导入从OSPF 学习的客户路由

dis current-configuration configuration bgp
[V200R003C00]
#
bgp 2345
router-id 5.5.5.5
undo default ipv4-unicast
peer 2.2.2.2 as-number 2345
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
#
ipv4-family vpnv4
policy vpn-target
peer 2.2.2.2 enable
#
ipv4-family vpn-instance A //在BGP 视图中执行ipv4-family vpn-instance A 进入地址族视图
import-route ospf 1

#
return

为了达到上述目的,直接在 BGP 配置视图下执行 import-route 命令是不行的,因为这个操作只会将 PE2 的全局路由表中的 OSPF 由引入 BGP ,这显然与需求不符。要将 PEl2学习到的客户 CE2的路由引入 MP-BGP ,就必须在 BGP 配置视图 中,先执行 ipv4-family vpn-instance A 命令进入相应的地址族视图,然后再执行import-route ospf 命令将 PE2 VRF 路由表中通过 OSPF 进程 学习到的OSPF 路由引 BGP

在PE1-CE1 之间部署BGP与PE2-CE2 之间部署OSPF路由引入的差异

由于 PE 设备采用不同的 VRF 对接不同的客户,因此 PE 备与客户的 CE 设备建立
BGP 对等体关系时,必须在 VRF IPv 4地址族中指定对等体。另外,与使用 OSPF
等动态路由协议交互路由的场景不同,当 PE-CE 之间使用 BGP 交互客户路由时,无需
手工执行路由引入操作
。 PE 设备通过 BGP 从其直连 CE 设备所学习到的 BGP 路由,可
直接转换成 VPNv4 路由,然后通告给远端 PE 设备: 而其从远端 PE 设备学习到的 VPNv4
路由,也无需手工执行引入操作,可 接转换成 IPv4 路由,然后通过 PE-CE 间的 BGP对等体关系,通行给相应的PE 设备。

PE1 BGP 配置

dis current-configuration configuration bgp
[V200R003C00]
#
bgp 2345
router-id 2.2.2.2
undo default ipv4-unicast
peer 5.5.5.5 as-number 2345
peer 5.5.5.5 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
undo peer 5.5.5.5 enable
#
ipv4-family vpnv4
policy vpn-target
peer 5.5.5.5 enable
#
ipv4-family vpn-instance A
router-id 172.16.0.1
peer 172.16.0.2 as-number 64538

#
return

在上述配置中, PEl 指定了对等体 5.5.5 .5 (PE2) 及其所处的 AS 号,并且在 VPNv4 单播
地址族中激活了该对等体。由于 PEl PE2 之间仅需交互 VPNv4 路由,尤需交互IPv 4路由,
因此使用 undo default ipv4-unicast 命令配置 BGP 缺省不在IPv 4单播胁地址族中激活对等体

查看PE1 VPNv4的对等体

Network MPLS VPN 基础概述

路由的交互与数据的交互

1、CE 需要将自己的路由交付给MPLSVpn服务提供商,由服务提供商负责站点间的路由传递。当然交互路由的目的是实现站点间数据的交互。

CE与PE 的路由交换方式

2、客户端CE与PE路由的交互可以是IGP(ospf、is-is) 或者静态路由、BGP;无论是通过哪种方式,必须让PE设备知晓其直连客户的客户路由。PE与CE的路由交换方式是灵活的,当然,同一个客户的不同站点也可选用不同的”PE-CE 间的路由交互方式”,例如客户 A站点1的CE 设备采用 OSPF 与直连的 PE备交互路由,而客户 A站点2的 CE 设备则采用 BGP 与主连的 PE 设备交互路由。

客户端地址空间重叠

3、问题 :不同客户使用相同的路由子网,PE 怎样进行区分并隔离?即不同客户地址空间重叠;例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。在华为路由器上,VRF也被称为VPN实例,这样2个VRF 就是两台独立的虚拟设备,它们拥有独立的路由表、FIB表、动态路由协议进程以及接口等等。因此即使分别从两个不同的客户那里学习到目的网络地址及网络掩码相同的路由也不用担心出现冲突。

客户路由传递的协议

即如何将客户路由从一个站点传递到客户的另一个站点、也就是从一台PE设备传递到另一台PE的设备。在典型的 MPLSVPN 架构中, BGP 是在 MPLS VPN 骨干网络中用于实现客户路由传递的不二选择。 BGP 可承载大批量的路由前缀,被广泛应用于各种大型的网络。

RD 路由区分码、VPNv4路由

当不同的客户端使用了相同的IP地址空间、

时如何保证路由不发生冲突? MPLS VPN 引入了 RD (Route Distinguisher ,路由区分码)用于解决该问题。要解决路由冲突的问题,就必须对 IPv4 路由前缀做扩展。 MPLS VPN 采用 RD IPv4 路由前缀进行扩展,简单地说,就是在 32bit IPv4 路由前缀的基础之上增加一个 64bit RD从而形成 96bit VPN-IPv4 路由前缀(我们也将该路由前缀简称为 VPNv4 路由前缀)。

BGP 与MP-BGP

传统的 BGP 无法运载 VPNv4 路由,因此 MP-BGP (Multi-Protocol BGP ,多协议
BGP) 便被派上了用场 MP-BGP 也被称为基于 BGPv4 的多协议扩展,传统的 BGP只
能运载 IPv4 路由前缀,而 MP-BGP 则可以支持包括 VPN-IPv4 、IPv6 等在内的多种路由
前缀。于是,此时在 PE1及 PE2 之间所建立的 BGP 会话便不再是传统的 BGP 会话,而
是激活了 VPNv4 路由运载能力的 BGP 会话。基于该 BGP 会话所传递的 BGP 路由前缀
不是 IPv4 单播路由前缀,而是 VPNv4 路由前缀。

RT 路由目标

PE 之间收到路由后,如何决定将哪些路由注入本地的哪一个VRF呢?

MPLS VPN 使用 一种特殊的数值来控制客户路由的发布及接收,它就是 RT RouteT: get ,路由目标), RT 也被称为 VPNTarget 一个 RT 的长度为 32bit,一条 VPNv4 路由可以包含一个或多个 RT 。 RT 与VPNv4 路由一起被传递给远端 PE ,它承载在 BGP 扩展 Community 属性中。

MPLS VPN 路由和数据层面

需要考虑MPLS VPN 骨干网络中P设备并不维护客户的路由,MPLSVPN 骨干网络需要考虑如何将报文顺利地从一台 PE 设备转发到另一台PE 设备,而且需在沿途的 P设备并不维护关于目的 IP 地址的路由的情况下实现这个需求。利用 MPLS 技术,采用标签来转发这些报文是一个绝佳的解决方案

MPLS VPN 两层标签

PEl 收到了这个标签报文,接下来它的操作自然是将报文的标签头部弹出,然后将报文路由到目的地。这里还有一个问题: PEl 该把报文转发给 CEl 还是 CE3?无法判断该报文究竟是发往哪一个客户的(报文归属哪一个 VRF)。

在典型的 MPLSVPN 架构中,报文在 MPLSVPN 网络内转发时采用两层标签。

PE2 转发到达客户 站点 10. 1.1. 0/24 段的报文时,将报文压入两层标签,其中外层标签 (或者说顶层标签)被称为公网标签,公网标签由 LDP 分发,用于将报文转发到 PEl 。

内层标签(或者说底层标签〉被称为私网标签,私网标签则由MP-BGP 分发,用于将报文在 PEl 上对应到具体的 VRF ,或者某一个直连的 CE 设备。为了实现私网标签的分发, PE1通过 MP-BGP VPNv4 路由通告给 PE2 时,除了携带该路由的 RT,还会将其为该路由所分配的私网标签一并携带

PE2 将带有两层标签的报文转发到 MPLSVPN 骨干网络后,网络中的 P设备根据报文的公网标签(外层标签)将其转发到 PE 1.在报文的转发过程中,公网标签被逐跳修改,但是私网标签则不会发生改变。 PEl 收到报文后,先将公网标签弹出,然后根据内层的私网标签将该报文对应到本地的 VRF (由于该私网标签由 PEl 所分配,因此它知道这个标签值所对应的 VRF) ,最后将私网标签弹出,把里面所封装的 IP 报文转发给 CEl.

MPLS 与 LDP

概括的讲MPLS 负责标签的push、pop、swap等操作,MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。LDP可以是静态手工分发也可以由动态协议。标签发布协议是MPLS的控制协议(也可称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。

mpls 的体系结构

它由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。

  • 控制平面:负责产生和维护路由信息以及标签信息。
    • 路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。
    • 标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
    • 标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。
  • 转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
    • 转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
    • 标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发。

MPLS VPN网络实现概述

  • 在PE 设备上,使用 VRF 来区分不同的客户、维护不同客户的路由。
  • 在PE 设备上,使用基于 VRF 的路由协议 (PE-CE 间的路由协议)与其直连的CE 设备交互客户路由。
  • MPLSVPN 骨干网络内的设备上(PE 设备及P 设备),需要运行一个 IGP 协议,通过该协议实现骨干网内的路由互通。
  • PE 设备之间,根据需要建立 MP-BGP 会话, PE 设备将自己从 CE 设备学习到的路由引入 MP-BG 形成 VPNv4 路由并通告给远端 PE 设备,并且将其从远端 PE 设备所学习到VPNv4 路由注入本地相应的 VRF 中,从而通过 PE-CE 间的路由协议将客户路由通告给本地直连的 CE 设备。
  • 为了让客户的数据能够穿越 MPLS VPN 骨干网络需要骨干网络的 PE 设备及设备都激活MPLS 及标签分发协议(通常是 LDP)