Etherent VLAN MPLS LDP Info

以太网/VLAN/MPLS

Topic:以太网

1.  以太网帧格式

1008124-20160815104208031-1576658803.png1008124-20160815104208656-1607160925.jpg

以太网帧格式可分为Ethernet IIIEEE802.3,主要区别在于源MAC地址后俩字节的的长度,所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。

 

一、前序字段(前导码/帧间隙:Preamble/SFD(SFD: Start of Frame Delimiter)
序字段由8个(Ethernet II)或7个(IEEE802.3)字节的交替出现的10组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步,另外,该字 段本身(在Ethernet II中)或与帧起始定界符一起(在IEEE802.3中)能保证各帧之间用于错误检测和恢复操作的时间间隔不小于9.6毫秒。

二、帧起始定界符字段(SFD: Start of Frame Delimiter)
字段仅在IEEE802.3标准中有效,它可以被看作前序字段的延续。实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比 特位置由交替出现的10构成。该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。
当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除。类似地当控制器发送帧时,它将这两个字段(如果传输的是IEEE802.3帧)或一个前序字段(如果传输的是真正的以太网帧)作为前缀加入帧中。

三、目的地址字段
的地址字段确定帧的接收者。两个字节的源地址和目的地址可用于IEEE802.3网络,而6个字节的源地址和目的地址字段既可用于Ethernet II网络又可用于IEEE802.3网络。用户可以选择两字节或六字节的目的地址字段,但对IEEE802.3设备来说,局域网中的所有工作站必须使用同 样的地址结构。目前,几乎所有的802.3网络使用6字节寻址,帧结构中包含两字节字段选项主要是用于使用16比特地址字段的早期的局域网。

四、源地址字段
地址字段标识发送帧的工作站。和目前地址字段类似,源地址字段的长度可以是两个或六个字节。只有IEEE802.3标准支持两字节源地址并要求使用的目的 地址。Ethernet IIIEEE802.3标准均支持六个字节的源地址字段。当使用六个字节的源地址字段时,前三个字节表示由IEEE分配给厂商的地址,将烧录在每一块网 络接口卡的ROM中。而制造商通常为其每一网络接口卡分配后字节。

五、类型字段
两字节的类型字段仅用于 Ethernet II帧。该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。在以太网中,多种协议可以在局域网中同时共存,例如: 类型字段取值为十六进制0800的帧将被识别为IP协议帧,而类型字段取值为十六进制8137的帧将被识别为IPXSPX传输协议帧。因此,在 Ethernet II的类型字段中设置相应的十六进制值提供了在局域网中支持多协议传输的机制。
IEEE802.3标准中类型字段被替换为长度字段,因而Ethernet II帧和IEEE802.3帧之间不能兼容。

六、长度字段
IEEE802.3的两字节长度字段定义了数据字段包含的字节数。不论是在Ethernet II还是IEEE 802.3标准中,从前序到FCS字段的帧长度最小必须是64字节(从MACCRC包含CRC4字节长度)。最小帧长度保证有足够的传输时间用于以太网网络接口卡精确地检测冲 突,这一最小时间是根据网络的最大电缆长度和帧沿电缆长度传播所要求的时间确定的。基于最小帧长为64字节和使用六字节地址字段的要求,意味着每个数据字 段的最小长度为46字节。唯一的例外是吉比特以太网。在1000Mbit/s的工作速率下,原来的802.3标准不可能提供足够的帧持续时间使电缆长度达 100米。这是因为在1000Mbit/s的数据率下,一个工作站在发现网段另一端出现的任何冲突之前已经处在帧传输过程中的可能性很高。为解决这一问 题,设计了将以太网最小帧长扩展为512字节的负载扩展方法。
对除了吉比特以太网之外的所有以太网版本,如果传输数据少于46个字节,应将数据字 段填充至46字节。不过,填充字符的个数不包括在长度字段值中。同时支持以太网和IEEE802.3帧格式的网络接口卡通过这一字段的值区分这两种帧。也 就是说,因为数据字段的最大长度为1500字节,所以超过十六进制数05DC1500的值说明它不是长度字段(IEEE802.3).而是类型字段 Ethernet II)。

七、数据字段
如前所述,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。

八、校验序列字段
既可用于Ethernet II又可用于IEE802.3标准的帧校验序列字段提供了一种错误检测机制,每一个发送器均计算一个包括了地址字段、类型/长度字段和数据字段的循环冗余校验(CRC)码。发送器于是将计算出的CRC填入四字节的FCS字段。
虽然IEEE802.3标准必然要取代Ethernet II,但由于二者的相似以及Ethernet II作为IEEE802.3的基础这一事实,我们将这两者均看作以太网。

 

2.以太网帧判定

1008124-20160815104209640-1967372924.jpg

 

Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame 
如果帧头跟随source mac地址的2 bytes的值大于15000x0600=1536,则此FrameEthernetII格式的 

接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether类型的Frame,
如果为0xAAAA则为Ethernet SNAP格式的Frame

如果都不是则为Ethernet 802.3/802.2格式的帧

 

3.以太网速率

一,线速:帧间隙(7字节)+前导码(1字节)+帧间隔(12字节)+(64~1518字节)

二,total data bit rate:设备payload速率,帧(64~1518字节

EXPIXIA发送64字节,1000M速率,设备收到的速率为64*1000/(64+8+12)=761M

4.以太网实现使用的技术

以太网,是一种共享介质的局域网技术,采用了随机访问控制协议中的CSMA/CDCarrier Sense Multiple Access with Collision Detection,带有冲突检测的载波侦听多址访问)方法作为多路访问控制协议。

===================================================================================================================

TopicVLAN

1.为什么要用VLAN(虚拟局域网:Virtual Local Area Network

传统的二层交换机能够有效的隔离冲突域(俩台PC连接到集线器上,这俩PC属于同一个冲突域:collision domain,冲突域是连接同一根导线上所有工作站的集合),但是不能有效的划分广播域,不能有效的抑制广播风暴,导致耗费大量的网络带宽,基于这些情况,二层交换机出现了VLAN技术。

2.支持VLAN的二层交换机

VLAN,遵循IEEE802.1Q标准,在原来的以太网源MAC字段后加入4字节的VLAN TAG

1008124-20160815104210046-1458228773.png

IEEE 802.1Q标准报文结构:

Type:取固定值0x8100,用于标记后续内容是802.1Q的报文。(2Bytes

User Priority:用户优先级,用于流量区分。(ECIcos,流量控制)。(3bits8个档位)

Flag(CFI):该bit位在以太网中取值0。(ECI:黄包绿包,区分流量)(1bits2个档位)

VLAN-ID0~4095,用于标记不同的VLAN12bits2**12VLAN网络)

SVLShared VLAN Learning)方式的二层交换机:学习MAC地址并建立MAC地址表的过程中并不附加VLAN ID,或者说它的MAC地址表是为所有VLAN共享使用的。

地址表里只有 端口-MAC地址 ,在实际应用中,SVL方式的二层交换机已经比较少见了。

IVLIndependent VLAN Learning)方式的二层交换机:在学习MAC地址并建立MAC地址表的过程中同时附加VLAN ID,同一个MAC地址可以出现在不同的VLAN中,这样的方式也可以理解为每个VLAN都有自己独立的MAC地址表。

地址表里是 VLAN-ID-MAC地址-端口IVL方式的二层交换机转发流程更加清晰,VLAN之间不会互相影响,目前实际应用中的二层交换机大多采用这种方式。(ECI Fvib

3.VLAN的二层交换机的端口类型以及转发规则

Tx/Rx

帧格式

是否等于PVID

Access

Trunk

Hybrid

Rx

untaged

无法比较

入,打上vid,值为pvid

tagged

frame_vid=pvid

入,frame不做处理

frame_vid in list

,Access 没有list

入,frame不做处理

frame_vid not list

Tx

tagged

frame_vid=pvid

出,去掉vid

出,去掉vid

端口属性tag,直接转发,端口属性为untag,去掉vid,转发?

frame_vid in list

,Access 没有list

出,frame不做处理

端口属性tag,直接转发,端口属性为untag,去掉vid,转发

frame_vid not list

红色:丢弃;青:纯转发;黄:转发并改变帧结构;

Access:只能接收utaged或者vid==pvid的帧,转发带上pvid

        只有发送vid==pvid的帧,并去掉vid

Trunk:只能接收untaged或者vid==pvid和在允许listvid,其中untagedvid==pvid的帧带pvid转发,允许list中的带vid转发。

       只能发送vid==pvid或者允许list中的帧,且vid==pvid,去掉vid,允许list的,带vid转发。

Hybrid:只能接收untaged或者vid==pvid和在允许listvid,其中untagedvid==pvid的帧带pvid转发,允许list中的带vid转发。

        只能发送vid==pvid或者允许list中的帧,按照端口属性tag,决定是tag/untaged转发。

ECI实现:


===================================================================================================================

Topic: QinQ

1.  QinQ技术〔也称Stacked VLAN Double VLAN〕。标准出自IEEE 802.1ad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网)。在公网中报文只根据外层VLAN Tag(即公网VLAN Tag)传播,用户的私网VLAN Tag被屏蔽。

2.  QinQ技术作用,VPN以及扩展VLAN TAG,从4096扩展到4096*4096VLAN TAG,或者更多4096*4096…….

3.  QinQ技术遵循IEEE802.1ad标准,重新定义了TPID的值,把原来的CFI位修改为DEI(丢弃标记:drop Eligible Identify)。

1008124-20160815104212000-773821100.png

IEEE802.1ad报文结构

C-VLAN的结构遵循IEEE802.1Q的标准

S-VLAN的结构默认是IEEE802.1Q的标准,IEEE802.1ad标准默认是88a8,但是由于有些公司的TPID0x91000x92000x88a8,所以一般这个TPID设置为可调,以便实现互通。ECI默认为88a8HW默认为8100

==============================================================================================================================================================================================

Topic:MPLS

1008124-20160815104212890-265149505.jpg

1ECI MOE Frame

1008124-20160815104213531-1201441210.png

2:标准MPLS帧格式

Label:标签值,长度为20bit,标签值是标签转发表的关键索引(0~1048575(ECI:16~1048575)

Exp: 用于QoS,长度为3bit

S   栈底标识,长度为1bit,如果有多个Label时,在栈底的LabelS位置1,其它为0。只有一个LabelS位置1

TTL 存活时间,8bit,与IP报文中的TTL值相似,这个值从IP报文头的TTL域拷贝过来,每进行一次Label交换时,外层LabelTTL值就减1。(可以测试下内层标签是否也是-1,个人觉得不减到,VClabel,测试下?

栈顶Label:靠近二层头(0x8847,0x8848)的LabelS值为0.

栈底Label:靠近IP或者其他数据包的LabelS值为1.

---

LSR: Label Switching Router, 标签交换路由,LSR MPLS网络的核心交换机,提供标签交换(SWAP),标签分发(LDP协议功能)。

LER: Label Edge Router, 标记边缘路由,处于MPLS网络的边缘,提供进入MPLS网络第一跳Ingress的报文插入LabelPUSH),出MPLS网络最后一条Egress去掉LabelPOP)。

FEC: Forwarding Equivalence Class LER/LSR认为具有相同转发处理方式的报文,使用同一个标签来标记这些报文。如:匹配相同目的IP前缀的多个IP报文可属于一个FEC,由于这些报文在做IP转发时是相同的转发处理方式及路径,所以标记这些报文的时候用同一个标签。

---

PUSH: 加标签,在第一跳Ingress LER上在报文的二层头和三层头之间插入Label,或者中间LSRMPLS报文的标签栈顶增加新的Label

POP: 弹出标签,在最后一跳Egress LER上将报文中的Label全部去掉,还原成IP报文,或者中间LSR去掉栈顶标签减少标签栈层次。

SWAP: 交换标签,LSR在转发的过程中根据标签转发表中的LSP替换报文中栈顶Label的过程。

LSP: Label Switched Path, 标记转发路径,也就是转发MPLS报文的路径。

 

MPLS转发方式

MPLS技术综合了第二层交换和第三层路由的功能,将第二层的快速交换和第三层的路由有机地结合起来。MPLS网络边缘的LER主要完成以下工作:三层路由、分析IP包头用于决定对应的FEC和标签交换路径(LSP),进而标记报文。而在MPLS网络核心的LSR采用基于标签的第二层交换,工作相对较简单。从这里就可以看出MPLS的好处,虽然处在MPLS网络边缘的LER工作较复杂,但处在核心的LSR只需要像FRATM交换机那样执行二层交换就可以了,根本不需要最长匹配和多次查找。

典型的MPLS转发过程如下:

Step 1 所有LSR启用传统路由协议(OSPFIS-IS等),在LSR中建立IP路由表

Step 2 LDP结合IP路由表来建立LSP

Step 3 Ingress LER接收IP包,分析IP包头并对应到FEC,然后给IP包加上标记,根据标签转发表中的LSP将已标记的报文送到相应的出接口。

Step 4LSR收到带有标记的报文,将只分析标记头,不关注标记头之上的部分,根据Label头查找LSP,替换Label,送到相应的出接口

……………..(中途转发过程与Step 4类似)

Step n-1:倒数第二跳LSR收到带有标记的报文,查找标记转发表,发现对应的出口标签为隐式空标签或显式空标签,弹出标签,发送IP报文到最后一跳LSR(标签为3

Step n:在最后一跳Egress LER上执行三层路由功能,根据报文的目的IP地址转发

 

MPLS保留标签详解

标签0-15都是被保留的标签。以下是一些有特定作用的保留标签:

·标签0显式空标签(IPV4

·标签2显式空标签(IPV6

·标签3隐式空标签

·标签1路由器报警标签

·标签14OAM报警标签

其他0-15之间的被保留标签的功能目前暂时没有定义。因此我们的可用标签是161048575220次方-1

 

1.隐式空标签implicit-null

 

PHP中,我们已经了解了隐式空标签的作用,当然,隐式空标签不局限在PHP中。它还可以运用在标签栈中有23个或者更多的标签的报文中。在出站LSR上使用隐式空标签(在LDP中,值为3)将会通知倒数第二跳路由器移除顶层标签,而向出站LSR传递的带标签报文其标签数量就会少一个,这样的话,出站LSR就不需要执行两个标签的查找了。注意,使用隐式空标签并不是必须将标签栈中的所有标签都弹出,而是弹出顶层标签

尽管隐式空标签也使用了一个标签值为3的标签,但是标签3永远不会出现在MPLS报文的标签栈中,这也正是其叫隐式空标签的原因。

【MPLS】LDP保留的标签

2.显式空标签explicit-null

 

  IPv4中,显示空标签为0ipv6中为2

上面的隐式空标签已经介绍过了,它确实可以增加效率,但是也有一个问题,因为如果我收到一个下游邻居发送过来的关于某个特定前缀捆绑的隐式空标签,那么我在转发标签数据给该邻居之前,我会先将顶层标签弹出,那么这个弹出的动作,实际上是将整个顶层标签头都弹出了,也就是连带着标签字段、EXP等字段都弹出了,而EXP我们知道,用于做QoS的,它也被弹出了,意味着这里就丢失了用于QoS的部分信息。

因此我们又定义了显式空标签,用于应对上面描述的场景。

 

【MPLS】LDP保留的标签

 我们看上图,C针对30.0/24的前缀捆绑了标签0,也就是显式空标签,然后将标签映射发给BB也产生自己的标签映射然后发给A。那么这时候,如果B收到来自A的一个标签包,顶层标签的值为20,那么B查找自己的LFIB,发现要标签要转换成0。于是,B将顶层标签替换成0,然后转发给C,那么这个时候对于C来说,它就收到了一个标签值为0的标签包,C不能通过在LFIB中查找标签值0来转发这样的报文,因为这个标签值可以分配给多个FECC只是仅仅弹出0标签也就是显式空标签,之后不得不进行另外一种查找,虽然这里不得不进行两次查找,但是C就可以通过查看标签头的EXP位来获得该报文的QoS信息了。

 

3.路由器报警标签

 

  标签值为1,这个标签可以出现在标签栈的任何位置,除了栈底位外。

当路由器报警标签位于栈顶时,它向LSR发出警告说该报文需特别注意。这样一来该报文就不会通过硬件传输,而是通过软件进程传输。一旦这个报文开始被转发,标签1首先被移除,接下来LSRLFIB中对标签栈中的下一个标签进行查找然后执行相应的标签操作(添加、移除、交换),标签1又会被添加到标签栈的顶部,最后才被转发出去。 

 

4.OAM报警标签

 

  OAM基本上用于错误检测、定位和监控实施。该标签将普通报文和OAM报文区分开来。CISCO IOS不使用标签14,它会执行MPLS OAM但不是通过标签14来实现。

 

LDP报文结构

 

LDP PDU头部

http://www.h3c.com.cn/res/201212/28/20121228_1507786_image003_769848_97665_0.png

Version:16bits,0x0001,目前LDP只有一个版本,此处为1

PDU Length16bits,值为除去LDP PDU头部以后数据部分的长度,不包含LDP PDU

LDP ID48bits,32bitsLSR ID(ip地址1.1.1.1),后16bitsLabel Space,标签空间,全局空间为“0”,局部接口空间为“1”。如:收到的LDP PDU中的LDP-ID192.168.1.2:0,表示对方的LSR-ID192.168.1.2,标签空间为全局空间。

LDP Message

http://www.h3c.com.cn/res/201212/28/20121228_1507787_image004_769848_97665_0.png

U:这一位总是为“0”,代表可识别的消息,为“1”代表不可识别的消息;1bit

类型域:协议根据这个域识别不同的消息;15bitshello message0x100Initiation message0x200,Label Mapping Message0x400Keepalive Message 0x201

长度域:指消息ID:用来唯一地标识这个消息,如果消息为Notification,则ID与导致产生Notification的消息ID相关联。示出长度域之后的数据部分的长度;16bits

消息ID:用来唯一地标识这个消息,如果消息为Notification,则ID与导致产生Notification的消息ID相关联。32bits

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





转载于:https://www.cnblogs.com/lshconfigure/p/5772075.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值