对接原理&配置通过LLDP实现IP话机接入交换机示例
基本概念
VoIP
VoIP(Voice over Internet Protocol),即指在IP网络上使用IP协议以数据包的方式传输语音。使用VoIP协议,不管是因特网、企业内部互连网还是局域网都可以实现语音通信。在使用VoIP协议的网络中,语音信号经过数字化,压缩并转换成IP包,然后在IP网络中进行传输。VoIP信令协议用于建立和取消呼叫,传输用于定位用户以及协商能力所需的信息。
相比于通过电信运营商网络的专线进行点对点连接的语音通信,使用VoIP协议传输语音通信具有投资省、价格低的优势,数据、语音和视频在同一网络上进行传输。
OUI地址
OUI(Organizationally Unique Identifier)指的是MAC地址的前24位(二进制),是IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)为不同设备供应商分配的一个全球唯一的标识符。
各设备厂商的MAC地址是需要向IEEE申请的,一般IEEE分配前24位,即一个地址段,设备厂商生产的设备再从这个地址段中分配地址。所以根据OUI可以识别话机,也就是根据话机厂商申请的MAC段来识别哪些报文是话机发送的,以此来判断哪些报文属于语音报文。当然这个OUI由用户来配置,而且可以使用掩码,即不需要一定是24位掩码的,掩码长度用户可以自己指定。
802.1Q
802.1Q定义了VLAN TAG的格式,如下图所示:
VLAN TAG总计有两个字节,即16bit,其中VID占12bits,PRI占3bits(PRI经常被称为COS优先级或者802.1p优先级),CFI占1bit。
按照报文对VLAN Tag的填充情况,可以分为如下几种:
- 报文中不带VLAN TAG,即UNTAG报文。
- 报文虽然携带VLAN TAG,但是VLAN ID为0,即没有VLAN ID。一般称为优先级TAG报文。
- 报文携带VLAN TAG,且VLAN ID非0,称为TAG报文。
- 所以按照802.1Q的报文定义,IP话机发送的语音流量的报文可以为TAG报文、优先级TAG报文、UNTAG报文三种。同时由于语音报文的COS值需要为高优先级(一般为5),以提高语音流的转发优先级。一般主流厂商的IP电话机(例如Cisco的7960系列),其发送的语音流量是TAG的报文,且COS值默认是5。但是IP话机类型众多,可能会存在部分话机的语音流无法将COS置为5的情况(如COS为0)。
综合考虑,电话机发送的报文有如下5种情况:
- 携带VLAN TAG且COS 5
- 携带VLAN TAG且COS 0
- 携带优先级TAG且COS 5
- 携带优先级TAG且COS 0
- 不携带VLAN TAG,即UNTAG方式
说明:华为换机对优先级TAG的报文,目前都是按照Untagged的报文处理的,即接口对收到的优先级TAG报文打上PVID的VLAN Tag。
Voice VLAN
专门用于转发语音报文的VLAN,叫做Voice VLAN。华为交换机的Voice VLAN功能只能指定某个VLAN为语音VLAN,而不会把该语音VLAN分配给语音设备,需要借助于LLDP、DHCP等协议,才可以把指定的Voice VLAN分配给语音设备。
IP话机接入部署方式
IP话机介绍
以Cisco的7960话机为例,IP话机内部构成如图1-1所示。IP话机内部集成了一个三端口的交换芯片,其中:
- 接口用于连接上行的交换机或者其他数通设备
- 接口连接内部的Phone ASIC,用于承载语音流量
- 接口用于连接PC机或者其他数据通讯设备
IP话机内部构成图
不同型号的IP话机对接方式支持情况汇总
不同型号的IP话机支持的对接方式不同,本表所示的IP话机是已经经过测试可以正常和交换机正常对接的话机,后续会根据测试结果持续刷新。
不同型号的IP话机对接方式支持情况汇总(本表格适用于V200R009和V200R010版本的交换机)
IP话机接入部署方式
根据图1-1可知,IP话机外部一般有两个可见的接口,一个用于连接上行的交换机,一个用于连接PC机。因此IP话机和PC同时部署时,一般有两种部署方式:
一种部署方式是PC挂在IP话机之下,如图1-2所示。这种部署的好处是只占用交换机的一个端口。对于一般的办公场景,办公桌面只需要出一个网口即可以满足语音和数据业务。
PC挂在IP话机之下组网图
另一种部署方式是PC和IP话机分别连接到交换机,如图1-3所示。这种部署的好处是语音流和数据流分开部署,更易于管理和维护。
PC和IP话机分别连接到交换机组网图
交换机与IP话机对接典型配置方法
交换机与IP话机对接的配置方法有很多种。根据话机类型和交换机支持情况,可以分为几种,如表1-1所示。
交换机与IP话机对接的配置方法汇总
配置通过LLDP实现IP话机接入交换机示例
简介
如果语音设备支持LLDP协议,可以在交换机上启用LLDP和Voice VLAN功能实现IP话机接入。通过LLDP协议为语音设备分配Voice VLAN,然后再通过Voice VLAN功能提升语音报文的优先级。
配置注意事项
- 适用的产品和版本:除S2700SI和S2710SI外,其他版本所有形态均支持。
- Avaya话机60秒内获取DHCP地址失败导致定时器超时后,话机就开始一直发送Tag0的报文。而交换机对Tag0的报文按照Untagged报文处理,在接口的PVID内转发认证,这样话机就无法使用Voice VLAN进行认证,最终导致IP话机认证失败,无法正常接入交换机。
可以使用下面两种方法规避:
- V200R003C00及之后版本,建议使用Voice-VLAN include-untagged方式进行规避。具体配置方法,请参见“1.9 配置通过Voice-VLAN include-untagged方式实现IP话机接入交换机示例”。
- 按如下步骤修改IP话机的VLAN TEST定时器:1,按*键,输入密码,进入菜单项;2,选择VLAN TEST项,修改默认值为0。注意话机重启后,定时器的设置将不生效,需要重新配置。
适用的IP话机
下面话机是已经经过测试可以正常和交换机对接的话机,后续会根据测试结果持续刷新。
- Cisco
cisco7962G、cisco7975G、cisco7942G、cisco9951G、cisco3905、cisco7971G、cisco7961G、cisco7941G、cisco7911G、cisco8961、cisco7945G、cisco7821G、ciscoSPA525G、ciscoSPA504G、cisco7965G、cisco9971、cisco7906G、cisco7937G、ciscoSPA508G、cisco8945、cisco6945、cisco8841、cisco6941、cisco8831
- Avaya
avaya1608-I、avaya9650、avaya9611G、avaya4621、avaya1616-I、avaya9630G、avaya1692、avaya9620、avaya9621、avaya9608、avaya1608、avaya9641、avaya1230、avaya1210、avaya9610、avaya1220、avaya9640G
- Snom
Snom821
- Polycom
Polycom330、PolycomCX3000
- Mitel
Mitel5340
- Nortel
Nortel1140E
组网需求
如图1-4所示:
- IP话机支持LLDP协议,可以通过LLDP协议获取语音VLAN。
- IP话机发送的语音报文,优先级比较低,为了保证通话质量,需要提升报文的优先级。
- 语音流使用VLAN 100进行通信,PC数据流使用VLAN 101进行通信。
- IP话机的IP地址和DHCP服务器的IP地址不在同一个网段。
- IP话机需要通过MAC认证接入交换机。
配置通过LLDP实现IP话机接入交换机组网图
配置思路
采用如下的思路配置通过LLDP实现IP话机接入交换机:
1.全局和接口使能LLDP功能,为IP话机分配语音VLAN。
2.配置Voice VLAN功能,为IP话机发送的语音报文提升优先级。
3.配置DHCP Relay和DHCP Server功能,为IP话机分配IP地址。
4.配置IP话机按照MAC认证方式进行认证。(如果不需要认证,这一步可以忽略)
- 操作步骤
步骤一 使能SwitchA的LLDP功能
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] lldp enable? //全局使能LLDP后,所有接口默认自动使能LLDP
步骤二 配置SwitchA转发数据流功能
# 创建VLAN101。
[SwitchA] vlan batch 101? //数据流使用VLAN 101进行通信
# 设置接口的PVID为VLAN 101。
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type hybrid //其中V200R005C00及之后版本,默认接口类型不是hybrid,需要手动配置
[SwitchA-GigabitEthernet1/0/1] port hybrid pvid vlan 101
# 接口以Untagged方式加入VLAN 101。
[SwitchA-GigabitEthernet1/0/1] port hybrid untagged vlan 101
[SwitchA-GigabitEthernet1/0/1] quit
步骤三 配置SwitchA的Voice VLAN功能
# 创建VLAN100。
[SwitchA] vlan batch 100? //语音流使用VLAN 100进行通信
# 把接口加入语音VLAN。
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type hybrid?? //其中V200R005C00及之后版本,默认接口类型不是hybrid,需要手动配置
[SwitchA-GigabitEthernet1/0/1] port hybrid tagged vlan 100? //接口以Tagged方式加入语音VLAN 100
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] port link-type hybrid
[SwitchA-GigabitEthernet1/0/2] port hybrid tagged vlan 100
[SwitchA-GigabitEthernet1/0/2] quit
# 使能接口的Voice VLAN功能。
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] voice-vlan 100 enable ?
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] voice-vlan 100 enable ?
[SwitchA-GigabitEthernet1/0/2] quit
[SwitchA] voice-vlan mac-address 001b-d4c7-0000 mask ffff-ffff-0000? //V200R003之前版本,需要配置OUI地址,该OUI对应IP话机的MAC地址。V200R003及之后版本不需要
[SwitchA] voice-vlan mac-address 0021-a08f-0000 mask ffff-ffff-0000
步骤四 配置DHCP Relay和DHCP Server功能
1.配置SwitchA为DHCP Relay功能
# 配置接口的DHCP Relay功能。
[SwitchA] dhcp enable? //全局使能DHCP功能,缺省未使能
[SwitchA] interface Vlanif 100? //创建VLANIF100
[SwitchA-Vlanif100] ip address 10.20.20.1 255.255.255.0? //配置VLANIF100的IP地址
[SwitchA-Vlanif100] dhcp select relay? //使能VLANIF接口DHCP中继功能
[SwitchA-Vlanif100] dhcp relay server-ip 10.10.20.2? //配置DHCP中继所代理的DHCP服务器地址
[SwitchA-Vlanif100] quit
# 创建VLANIF 200。
[SwitchA] vlan batch 200
[SwitchA] interface Vlanif 200
[SwitchA-Vlanif200] ip address 10.10.20.1 255.255.255.0? //配置VLANIF200的IP地址,用于和SwitchB交互
[SwitchA-Vlanif200] quit
# 把上行接口加入VLAN 200。
[SwitchA] interface gigabitethernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] port link-type hybrid
[SwitchA-GigabitEthernet1/0/3] port hybrid pvid vlan 200
[SwitchA-GigabitEthernet1/0/3] port hybrid untagged vlan 200
[SwitchA-GigabitEthernet1/0/3] quit
# 配置缺省静态路由。
[SwitchA] ip route-static 0.0.0.0 0.0.0.0 10.10.20.2? //该路由的下一跳对应SwitchB VLANIF200的IP地址
2.配置SwitchB为DHCP Server,为IP话机分配IP地址
# 配置地址池。
<HUAWEI> system-view
[HUAWEI] sysname SwitchB
[SwitchB] ip pool ip-phone? //创建一个地址池
[SwitchB-ip-pool-ip-phone] gateway-list 10.20.20.1? //配置DHCP服务器的出口网关地址
[SwitchB-ip-pool-ip-phone] network 10.20.20.0 mask 255.255.255.0? //配置该地址池可以分配的网段地址
[SwitchB-ip-pool-ip-phone] quit
# 配置DHCP Server功能。
[SwitchB] dhcp enable? //全局使能DHCP功能,缺省未使能
[SwitchB] vlan batch 200
[SwitchB] interface Vlanif 200? //创建VLANIF200
[SwitchB-Vlanif200] ip address 10.10.20.2 255.255.255.0? //配置VLANIF的IP地址
[SwitchB-Vlanif200] dhcp select global? //配置接口采用全局地址池方式为话机分配IP地址
[SwitchB-Vlanif200] quit
# 把下行接口加入VLAN 200。
[SwitchB] interface gigabitethernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] port link-type hybrid
[SwitchB-GigabitEthernet1/0/3] port hybrid pvid vlan 200
[SwitchB-GigabitEthernet1/0/3] port hybrid untagged vlan 200
[SwitchB-GigabitEthernet1/0/3] quit
# 配置回程路由。
[SwitchB] ip route-static 10.20.20.0 255.255.255.0 10.10.20.1
步骤五 配置AAA认证域,并配置IP话机按照MAC认证方式进行认证
1.配置AAA认证域
# 创建并配置RADIUS服务器模板。
[SwitchA] radius-server template cisco? //创建名为\"cisco\"的RADIUS服务器模板
[SwitchA-radius-cisco] radius-server authentication 192.168.6.182 1812? //配置RADIUS认证服务器的IP地址和端口号
[SwitchA-radius-cisco] radius-server accounting 192.168.6.182 1813? //配置RADIUS计费服务器的IP地址和端口号
[SwitchA-radius-cisco] quit
# 配置认证方案。
[SwitchA] aaa
[SwitchA-aaa] authentication-scheme radius? //创建AAA认证方案为“radius”
[SwitchA-aaa-authen-radius] authentication-mode radius? //配置认证方式为RADIUS
[SwitchA-aaa-authen-radius] quit
# 创建AAA域并配置域的RADIUS服务器模板和认证方案。
[SwitchA-aaa] domain default? //配置default认证域
[SwitchA-aaa-domain-default] authentication-scheme radius? //绑定AAA认证方案“radius”
[SwitchA-aaa-domain-default] radius-server cisco? //绑定RADIUS服务器模板“cisco”
[SwitchA-aaa-domain-default] quit
[SwitchA-aaa] quit
2.配置PC和IP话机按照MAC方式进行认证
V200R007C00及其之前版本、V200R008C00
# 将NAC配置模式切换成统一模式。
[SwitchA] authentication unified-mode? //设备默认为统一模式。传统模式与统一模式相互切换后,管理员必须保存配置后重启设备,新配置模式的各项功能才能生效
# 在接口上使能MAC认证。
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] authentication mac-authen? //使能MAC认证
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] authentication mac-authen
[SwitchA-GigabitEthernet1/0/2] quit
V200R009C00及其之后版本
# 将NAC配置模式切换成统一模式。
[SwitchA] authentication unified-mode? //设备默认为统一模式。传统模式与统一模式相互切换后,管理员必须保存配置后重启设备,新配置模式的各项功能才能生效
# 配置接入模板。
[SwitchA] mac-access-profile name cisco? //创建MAC接入模板“cisco”
[SwitchA-mac-access-profile-cisco] quit
# 配置认证模板。
[SwitchA] authentication-profile name cisco? //配置认证模板
[SwitchA-authen-profile-cisco] mac-access-profile cisco? //绑定MAC接入模板
[SwitchA-authen-profile-cisco] quit
# 在接口上应用认证模板。
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] authentication-profile cisco? //绑定认证模板,使能MAC认证
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] authentication-profile cisco
[SwitchA-GigabitEthernet1/0/2] quit
3.配置Agile Controller。Agile Controller界面显示版本间可能存在差异,请以实际为准。下面以V100R002C00SPC102版本为例,说明配置方法和配置步骤
a.登录Agile Controller。
打开Internet Explorer浏览器,在地址栏输入Agile Controller的访问地址,并按“Enter”。
然后输入管理员帐号和密码。首次登录Agile Controller,请使用超级管理员帐号admin和密码Changeme123。首次登录之后请立即修改密码,否则无法使用Agile Controller。
Agile Controller的访问地址支持以下形式:
b. 增加MAC账号。
- 选择“资源 > 用户 > 用户管理”。
- 在左侧导航中选择“所有账号”。
- 在右侧操作区域内单击“增加”,创建两个MAC账号。其中,第一个“MAC账号”使用的是IP话机的MAC地址,第二个“MAC账号”使用的是PC的MAC地址。
c. 在Agile Controller中添加交换机SwitchA。
- 选择“资源 > 设备 > 设备管理”。
- 在右侧操作区域内单击“增加”,在“增加设备”页面,增加对IP话机进行认证的交换机SwitchA。
d.在Agile Controller中添加终端IP话机。
- 选择“资源 > 终端 > 终端列表”。
- 在右侧操作区域内单击“增加”,进入“增加设备组”页面。
- 在“增加设备组”页面,增加终端IP话机组。
- 单击左侧导航中的设备组,选择创建的设备组“cisco_ipphone”,然后选择“设备列表”,单击“增加”,添加IP话机。
e.在Agile Controller中添加终端PC。
- 选择“资源 > 终端 > 终端列表”。
- 在右侧操作区域内单击“增加”,进入“增加设备组”页面。
- 在“增加设备组”页面,增加终端PC组。
- 单击左侧导航中的设备组,选择创建的设备组“pc”,然后选择“设备列表”,单击“增加”,添加PC。
f.添加认证规则。
选择“策略 > 准入控制 > 认证授权 > 认证规则”,并单击“增加”,分别为IP话机和PC创建认证规则。
g.添加授权规则。
选择“策略 > 准入控制 > 认证授权 > 授权规则”,并单击“增加”,分别为IP话机和PC创建授权规则。“授权结果”选择为“允许接入”。
步骤六 检查配置结果
- IP话机可以正常获取到正确的语音VLAN和IP地址。
- 在SwitchA上执行命令display access-user,可以看到IP话机的接入信息。
----结束
配置文件
- SwitchA的配置文件(V200R007C00及其之前版本、V200R008C00)
#
sysname SwitchA
#
voice-vlan mac-address 001b-d4c7-0000 mask ffff-ffff-0000
voice-vlan mac-address 0021-a08f-0000 mask ffff-ffff-0000
#
vlan batch 100 to 101 200
#
lldp enable
#
dhcp enable
#
radius-server template cisco
?radius-server authentication 192.168.6.182 1812 weight 80
?radius-server accounting 192.168.6.182 1813 weight 80
#
aaa
authentication-scheme radius
authentication-mode radius
domain default
authentication-scheme radius
radius-server cisco
#
interface Vlanif100
ip address 10.20.20.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 10.10.20.2
#
interface Vlanif200
ip address 10.10.20.1 255.255.255.0
#
interface GigabitEthernet1/0/1
port link-type hybrid
voice-vlan 100 enable
port hybrid pvid vlan
101
port hybrid tagged vlan 100
port hybrid untagged vlan 101
authentication mac-authen
#
interface GigabitEthernet1/0/2
port link-type hybrid
voice-vlan 100 enable
port hybrid tagged vlan 100
authentication mac-authen
#
interface GigabitEthernet1/0/3
port link-type hybrid
port hybrid pvid vlan 200
port hybrid untagged vlan 200
#
ip route-static 0.0.0.0 0.0.0.0 10.10.20.2
#
return
- SwitchA的配置文件(V200R009C00及其之后版本)
#
sysname SwitchA
#
vlan batch 100 to 101 200
#
authentication-profile name cisco
mac-access-profile cisco
#
lldp enable
#
dhcp enable
#
radius-server template cisco
radius-server authentication 192.168.6.182 1812 weight 80
radius-server accounting 192.168.6.182 1813 weight 80
#
aaa
authentication-scheme radius
authentication-mode radius
domain default
authentication-scheme radius
radius-server cisco
#
interface Vlanif100
ip address 10.20.20.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 10.10.20.2
#
interface Vlanif200
?ip address 10.10.20.1 255.255.255.0
#
interface GigabitEthernet1/0/1
port link-type hybrid
voice-vlan 100 enable
port hybrid pvid vlan 101
port hybrid tagged vlan 100
port hybrid untagged vlan 101
?authentication-profile cisco
#
interface GigabitEthernet1/0/2
port link-type hybrid
voice-vlan 100 enable
port hybrid tagged vlan 100
authentication-profile cisco
#
interface GigabitEthernet1/0/3
port link-type hybrid
port hybrid pvid vlan 200
port hybrid untagged vlan 200
#
ip route-static 0.0.0.0 0.0.0.0 10.10.20.2
#
mac-access-profile name cisco
#
return
- SwitchB的配置文件
#
sysname SwitchB
#
vlan batch 200
#
dhcp enable
#
ip pool ip-phone
?gateway-list 10.20.20.1?
?network 10.20.20.0 mask 255.255.255.0?
#
interface Vlanif200
?ip address 10.10.20.2 255.255.255.0
?dhcp select global
#
interface GigabitEthernet1/0/3
?port link-type hybrid
?port hybrid pvid vlan 200
?port hybrid untagged vlan 200
#
ip route-static 10.20.20.0 255.255.255.0 10.10.20.1
#
return
上期链接: