02-HDLC配置
本章节下载: 02-HDLC配置 (247.07 KB)
目 录
HDLC(High-level Data Link Control,高级数据链路控制)是一种面向比特的链路层协议,其最大特点是对任何一种比特流,均可以实现透明的传输。
· HDLC协议只支持点到点链路,不支持点到多点。
· HDLC不支持IP地址协商,不支持认证。协议内部通过Keepalive报文来检测链路状态。
· HDLC协议只能封装在同步链路上。目前应用的接口为:POS接口。
HDLC有信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)3种不同类型的帧。
· 信息帧用于传送有效信息或数据,通常简称为I帧。
· 监控帧用于差错控制和流量控制,通常称为S帧。
· 无编号帧用于提供对链路的建立、拆除以及多种控制功能,简称U帧。
HDLC帧由标志、地址、控制、信息和帧校验序列等字段组成。
· 标志字段为01111110,标志一个HDLC帧的开始和结束;
· 地址字段是8比特,用于标识接收或发送HDLC帧的地址;
· 控制字段是8比特,用来实现HDLC协议的各种控制信息,并标识是否是数据;
· 信息字段可以是任意的二进制比特串,长度未作限定,其上限由FCS(帧校验序列)字段或通讯节点的缓冲容量来决定。目前国际上用得较多的是1000-2000比特,而下限可以是0,即无信息字段。但是监控帧中不可有信息字段。
· 帧检验序列字段可以使用16位CRC(循环冗余校验),对两个标志字段之间的整个帧的内容进行校验。
表1-1 配置接口封装HDLC协议
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入相应的接口视图 |
interface interface-type interface-number |
- |
在接口上封装HDLC协议 |
link-protocol hdlc |
必选 缺省情况下,接口封装的链路协议是PPP协议 |
表1-2 配置接口IP地址
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
- |
|
配置接口IP地址 |
配置接口的IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
二者必选其一 缺省情况下,没有为接口配置IP地址也不借用其它接口的IP地址 |
配置本接口借用指定接口的IP地址 |
ip address unnumbered interface interface-type interface-number |
如果对封装HDLC的接口配置IP地址借用,借用地址的一端必须能够学到对端的网络路由,否则将无法达到对端。
在配置IP地址借用时,可以使用路由协议或静态路由来学习到对端的路由,并注意以下原则:
· 如果使用路由协议,由于路由查找采用最长匹配原则,应确保学到路由的掩码长度大于被借用方IP地址的掩码长度;
· 如果使用静态路由,且被借用方的IP地址使用32位掩码,静态路由的掩码长度应小于被借用方IP地址的掩码长度;
· 如果使用静态路由,且被借用方的IP地址掩码小于32位,静态路由的掩码长度应大于被借用方IP地址的掩码长度。
关于配置接口IP地址的详细介绍请参见“三层技术-IP业务配置指导”中的“IP地址”。
HDLC协议使用定时器来确认链路状态是否正常。在配置轮询时间的间隔时,建议链路两端的设置保持一致。如果将两端的轮询时间间隔都设为0,则禁止链路状态检测功能。
表1-3 配置轮询时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置状态轮询定时器的轮询时间间隔 |
timer hold seconds |
可选 缺省情况下,接口的状态轮询时间间隔为10秒 |
轮询时间可使用缺省配置,也可根据网络实际情况进行调整。如果网络的延迟比较大,或拥塞程度较高,可以适当加大轮询时间的间隔,以减少网络震荡的发生。
· Switch A和Switch B通过POS接口相连,要求运行HDLC。
· Switch A的POS3/1/1接口借用本端Loopback接口的IP地址,Loopback接口使用32位掩码。
· Switch A通过静态路由学习对端路由信息,可以到达12.1.2.0/24这个网段。
图1-1 配置IP地址借用HDLC
配置Switch A
<SwitchA> system-view
[SwitchA] interface LoopBack 1
[SwitchA-LoopBack1] ip address 12.1.1.2 32
[SwitchA-LoopBack1] quit
[SwitchA] interface Pos 3/1/1
[SwitchA-Pos3/1/1] clock master
[SwitchA-Pos3/1/1] link-protocol hdlc
[SwitchA-Pos3/1/1] ip address unnumbered interface LoopBack 1
[SwitchA-Pos3/1/1] quit
配置Switch B
<SwitchB> system-view
[SwitchB] interface Pos 3/1/1
[SwitchB-Pos3/1/1] link-protocol hdlc
[SwitchB-Pos3/1/1] ip address 12.1.1.1 24
在Switch A上配置两条静态路由
[SwitchA] ip route-static 12.1.1.0 24 Pos 3/1/1
[SwitchA] ip route-static 12.1.2.0 24 12.1.1.1
配置完成后Switch A可以ping通12.1.2.0/24网段。
[SwitchA] ping 12.1.2.1
PING 12.1.2.1: 56 data bytes, press CTRL_C to break
Reply from 12.1.2.1: bytes=56 Sequence=1 ttl=255 time=35 ms
Reply from 12.1.2.1: bytes=56 Sequence=2 ttl=255 time=1 ms
Reply from 12.1.2.1: bytes=56 Sequence=3 ttl=255 time=10 ms
Reply from 12.1.2.1: bytes=56 Sequence=4 ttl=255 time=1 ms
Reply from 12.1.2.1: bytes=56 Sequence=5 ttl=255 time=1 ms
--- 12.1.2.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/9/35 ms
在Switch A执行display ip routing-table命令可以看到路由表信息正确。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
12.1.1.0/24 Static 60 0 12.1.1.2 POS3/1/1
12.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
12.1.2.0/24 Static 60 0 12.1.1.1 POS3/1/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
HDLC链路捆绑是将多个封装相同链路层协议为HDLC的接口捆绑到一起,形成一条逻辑上的数据链路。
HDLC链路捆绑的作用如下:
· 流量负载分担:出/入流量可以在多个成员接口之间分担。
· 增加带宽:链路捆绑接口的带宽是各可用成员接口带宽的总和。
· 提高连接可靠性:当某个成员接口出现故障时,流量会自动切换到其他可用的成员接口上,从而提高整个捆绑链路的连接可靠性。
HDLC捆绑接口是一个逻辑接口。一个HDLC捆绑接口对应一个HDLC捆绑。
HDLC捆绑是一组HDLC接口的集合。HDLC捆绑是随着HDLC捆绑接口的创建而自动生成的,其编号与HDLC捆绑接口编号相同。
加入HDLC捆绑后的接口称为成员接口。
目前,只有POS接口可以加入HDLC捆绑,并且加入HDLC捆绑的成员接口的链路层协议类型必须是HDLC。
成员接口有下列4种状态:
· 初始状态:成员接口的链路层协议处于down状态。
· 协商状态:成员接口的链路层协议处于up状态,但是成员接口不满足选中条件。
· 就绪状态:成员接口的链路层协议处于up状态,且成员接口满足选中条件,但由于最多选中成员接口数目/最少选中成员接口数目/最小激活带宽的限制,使得该成员接口没有被选中,那么该成员接口将处于就绪状态。
· 选中状态:成员接口的链路层协议处于up状态,且成员接口满足选中条件,处于选中状态。只有处于选中状态的成员接口才能转发流量。设备允许不同速率的成员接口同时被选中,但此时每个接口的转发能力在业务流量不丢失的情况下只能达到最低的接口水平。建议用户不要将不同速率的接口加入到同一个HDLC捆绑。
关于如何确定成员接口的状态,将在“2.1.3 HDLC链路捆绑的工作机制”中详细介绍。
成员接口状态的确定原则如下:
链路层协议处于down状态的成员接口处于初始状态。
链路层协议处于up状态的成员接口处于协商状态。
处于协商状态的成员接口经过下面的选择过程可能变为选中状态或就绪状态。如果选出的成员接口有M个:
· 如果设备没有限制最多选中成员接口数目,则这M个成员接口均处于选中状态。
· 如果设备限制最多选中成员接口数目为N,当M<=N时,这M个成员接口均处于选中状态;当M>N时,依次按照成员接口的速率/波特率、捆绑优先级和接口索引号来为这些成员接口进行排序(速率/波特率大的排在前面,捆绑优先级高的排在前面,接口索引号小的排在前面),排在前N个的成员接口将处于选中状态,排在后面的(M-N)个成员接口将处于就绪状态。
假设满足上述选中原则的成员接口有P个,而设备限制的最少选中成员接口数目为Q,当P<Q时,这P个成员接口都不会被选中,将处于就绪状态。或者,当这P个成员接口的总带宽小于配置的最小激活带宽时,这P个成员接口也都不会被选中,也将处于就绪状态。
如果HDLC捆绑中没有处于选中状态的成员接口,则HDLC捆绑将处于down状态,不能转发流量;只有HDLC捆绑中有处于选中状态的成员接口,HDLC捆绑接口才会处于up状态,才能进行流量转发。HDLC捆绑的带宽是所有处于选中状态的成员接口的带宽之和。
设备限制的最多选中成员接口数目的确定方法如下:首先采用用户通过bundle max-active links命令配置的值;如果用户未配置,则以设备支持的最多选中成员接口数目为准。目前设备支持的最多选中成员接口数目为8。
HDLC捆绑是通过选中成员接口来转发流量的。当捆绑中存在多个选中成员接口时,设备会根据负载分担方式来选择某些选中成员接口发送流量。负载分担方式分为逐流负载分担和逐包负载分担两种,原理如下:
· 逐流负载分担:通过五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)将报文分成不同的流,同一条流的报文将在同一个选中成员接口上发送。
· 逐包负载分担:以报文为单位,轮流选择所有选中成员接口发送报文。
目前,本设备仅支持逐流负载分担。
表2-1 配置HDLC捆绑接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建HDLC捆绑接口并进入HDLC捆绑接口视图 |
interface hdlc-bundle bundle-id |
必选 |
配置HDLC捆绑接口的IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
必选 缺省情况下,没有为接口配置IP地址 |
配置最少选中成员接口数目 |
bundle min-active links number |
可选 缺省情况下,不进行限制 |
配置最多选中成员接口数目 |
bundle max-active links number |
可选 缺省情况下,不进行限制 |
配置最小激活带宽 |
bundle min-active bandwidth bandwidth |
可选 缺省情况下,不进行限制 |
配置HDLC捆绑接口的描述信息 |
description text |
可选 缺省情况下,接口的描述信息为“接口名 Interface” |
配置HDLC捆绑接口的MTU值 |
mtu size |
可选 缺省情况下,HDLC捆绑接口的MTU值为1500Bytes MTU参数会影响IP报文的分片与重组,可以通过本命令来设置合适的MTU值 |
恢复HDLC捆绑接口的缺省配置 |
default |
可选 |
打开HDLC捆绑接口 |
undo shutdown |
可选 缺省情况下,HDLC捆绑接口处于打开状态 打开/关闭捆绑接口时,不会影响成员接口的打开/关闭状态,但是会影响到捆绑接口下的成员接口的选择过程 |
· 配置的最少选中成员接口数目不能大于最多选中成员接口数目。
· 为保证转发正常,建议在同一条HDLC捆绑链路两端的HDLC捆绑接口上配置相同的最少选中成员接口数目、最多选中成员接口数目、最小激活带宽。
· 关于ip address命令的介绍请参见“三层技术-IP业务命令参考”中的“IP地址”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入POS接口视图 |
interface interface-type interface-number |
必选 |
配置接口的链路层协议类型为HDLC |
link-protocol hdlc |
必选 缺省情况下,接口的链路层协议为PPP |
配置接口加入HDLC捆绑 |
bundle id bundle-id |
必选 |
配置接口的捆绑优先级 |
bundle member-priority priority |
可选 缺省情况下,接口的捆绑优先级为32768 |
· 下列接口不能加入HDLC捆绑:配置IPv4地址和地址借用的接口、配置IPv6地址的接口、配置URPF的接口。并且,接口加入HDLC捆绑之后也不能配置这些功能。
· 一个接口只能加入一个HDLC捆绑,如果需要加入其他HDLC捆绑,必须先退出原来的HDLC捆绑。
· 加入HDLC捆绑的接口封装的链路层协议必须为HDLC。接口加入HDLC捆绑之后不允许修改切换链路层协议。
· HDLC捆绑接口没有创建的情况下,也允许将接口加入HDLC捆绑。
· 可以将不同接口板上的接口加入到同一个HDLC捆绑。
· HDLC链路捆绑配置完成后,如果用户又修改了某成员接口的捆绑优先级,那么设备会重新确定各成员接口的状态。
· 成员接口加入HDLC捆绑前,请不要在该接口上配置三层业务(如MPLS、VPN等),如果成员接口上已有三层业务配置,请先取消该接口上所有的三层业务配置,再加入HDLC捆绑;加入HDLC捆绑后,相关业务也只能在HDLC捆绑接口上进行配置,如果在成员接口上误操作配置了三层业务,请先取消该成员接口上的所有三层业务配置,并在HDLC捆绑接口上执行shutdown、undo shutdown命令即可恢复。
· 如果本地设备使用了HDLC捆绑,与成员接口直连的对端接口也必须相应的加入HDLC捆绑。
· bundle member-priority命令一般需要和bundle max-active links命令一般需要配合使用,以保证两台设备相互连接的接口同时处于选中状态(只有两端接口同时处于选中状态,报文才能发送成功),避免出现一端接口处于选中状态,而另一端接口没有处于选中状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后HDLC链路捆绑的运行情况,通过查看显示信息验证配置的效果。
表2-3 HDLC链路捆绑显示和维护
操作 |
命令 |
显示HDLC捆绑信息 |
display bundle member hdlc-bundle [ bundle-id ] [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示HDLC捆绑接口的相关信息 |
display interface [ hdlc-bundle [ bundle-id ] ] [ brief [ description ] ] [ | { begin | exclude | include } regular-expression ] display interface [ hdlc-bundle ] [ brief [ down ] ] [ | { begin | exclude | include } regular-expression ] |
清除HDLC捆绑接口的统计信息 |
reset counters interface [ hdlc-bundle [ bundle-id ] ] |
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP。
为了增加Switch A和Switch B之间的链路带宽,并提高连接可靠性,在设备之间建立HDLC捆绑逻辑链路。
图2-1 配置HDLC链路捆绑组网图
配置Switch A
# 创建HDLC捆绑接口1,并配置IP地址。
<SwitchA> system-view
[SwitchA] interface Hdlc-bundle 1
[SwitchA-Hdlc-bundle1] ip address 1.1.1.1 24
[SwitchA-Hdlc-bundle1] quit
# 将POS5/1/1、POS5/1/2加入到HDLC捆绑1(POS接口采用主时钟模式)。
[SwitchA] interface Pos 5/1/1
[RouterA-Pos5/1/1] clock master
[SwitchA-Pos5/1/1] link-protocol hdlc
[SwitchA-Pos5/1/1] bundle id 1
[SwitchA-Pos5/1/1] quit
[SwitchA] interface Pos 5/1/2
[RouterA-Pos5/1/2] clock master
[SwitchA-Pos5/1/2] link-protocol hdlc
[SwitchA-Pos5/1/2] bundle id 1
[SwitchA-Pos5/1/2] quit
配置Switch B
# 创建HDLC捆绑接口1,并配置IP地址。
<SwitchB> system-view
[SwitchB] interface Hdlc-bundle 1
[SwitchB-Hdlc-bundle1] ip address 1.1.1.2 24
[SwitchB-Hdlc-bundle1] quit
# 将POS5/1/1、POS5/1/2加入到HDLC捆绑1。
[SwitchB] interface Pos 5/1/1
[SwitchB-Pos5/1/1] link-protocol hdlc
[SwitchB-Pos5/1/1] bundle id 1
[SwitchB-Pos5/1/1] quit
[SwitchB] interface Pos 5/1/2
[SwitchB-Pos5/1/2] link-protocol hdlc
[SwitchB-Pos5/1/2] bundle id 1
[SwitchB-Pos5/1/2] quit
验证配置结果
在Switch A或Switch B上执行display interface hdlc-bundle命令,可以看到HDLC捆绑接口1的状态为UP。
以Switch A的显示为例。
[SwitchA] display interface Hdlc-bundle 1
Hdlc-bundle1 current state: UP
Line protocol current state: UP
Description: Hdlc-bundle1 Interface
The Maximum Transmit Unit is 1500
Internet Address is 1.1.1.1/24 Primary
Link layer protocol is HDLC
Physical is HDLC-BUNDLE, baudrate: 155520 kbps
Output queue : (Urgent queuing : Size/Length/Discards) 0/100/0
Output queue : (Protocol queuing : Size/Length/Discards) 0/500/0
Output queue : (FIFO queuing : Size/Length/Discards) 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 drops
0 packets output, 0 bytes, 0 drops
Switch A和Switch B的HDLC捆绑接口能够互相Ping 通。
[SwitchA] ping –a 1.1.1.1 1.1.1.2
PING 1.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 1.1.1.2: bytes=56 Sequence=1 ttl=255 time=6 ms
Reply from 1.1.1.2: bytes=56 Sequence=2 ttl=255 time=3 ms
Reply from 1.1.1.2: bytes=56 Sequence=3 ttl=255 time=3 ms
Reply from 1.1.1.2: bytes=56 Sequence=4 ttl=255 time=3 ms
Reply from 1.1.1.2: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 1.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/3/6 ms
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!