Linux上配置支持双VLAN的BAS服务器
目录
Linux上配置支持双VLAN的BAS服务器 (1)
目录 (1)
摘要 (1)
正文 (3)
一. 预置条件 (3)
二. 测试拓扑图 (3)
三. 测试步骤 (3)
四. 总结 (5)
五. 备注说明 (6)
附件 (6)
参考文献 (6)
摘要
在中国电信之《VDSL2用户端设备测试方案》的“6.4工作模式测试”中,需要
搭建一BAS服务器(PPPoE Server和DHCP Server),支持双VLAN(QinQ模式)。另外公司其它产品开发中要求搭建双VLAN环境验证设备相关功能的项目也越来越多。本指导书旨在指导测试人员正确完成搭建双VLAN的仿真应用环境,以满足对CPE网关设备的相关功能的测试,用以判断产品是否符合相关需求。
正文
一.预置条件
1.准备PC机一台,安装Linux 操作系统CentOS 5(请注意需安装Wireshark抓包软件);2.验证Linux系统中可以使用命令vconfig。如该命令无效,则需安装相应的vconfig RPM包;3.验证Linux系统中已经安装相关的编译链接工具;
4.验证Linux系统中已经安装pppoe-server和dhcpd 服务程序和相关的配置文件;
5.网线、电话线若干;
二.测试拓扑图
Fig 1测试拓扑图1
三.测试步骤
测试内容可以包括四大部分(I、II、III、Ⅳ)
I.设置CPE的VLAN
如图1:设置CPE网关设备的VLAN ID为10,拨号方式为PPPOE,重启。
II.设置局端DSLAM为双VLAN
在此例子中DSLAM局端设备为ZTE 9806H(其它局端设备可以参考),配置为支持双VLAN。命令如下:
9806(config)# add-vlan 10
9806 (config)# add-vlan 100
9806 (config)# vlan 100 5/1 tag (上联口为5/1)
9806 (config)# vlan 100 1/4 tag(用户侧VDSL2连接端口为1/4)
9806 (config)# interface vdsl 1/4
9806 (cfg-if-vdsl-1/4)# svlan enable
9806(cfg-if-vdsl-1/4)# svlan tls enable
9806(config)# cpvlan 10 disable
9806(config)# cpvlan 100 disable
9806(cfg-if-vdsl-1/4)# psvid 100
9806(cfg-if-vdsl-2/5)# pvid 10
III.设置BAS服务器
1.CentOS 5.0的内核版本为 2.6.18,它并不支持双VLAN, 下载(比如从网站www./pub/linux/kernel/v2.6/)一内核版本2.6.20.4, 执行如下命令:
a. #tar xvzf Linux-2.6.20. -C /usr/src
b. #cd /usr/src
c. #cd Linux
修改./net/8021q/vlan_dev.c
注释掉448行和477行:
* OTHER THINGS LIKE FDDI/TokenRing/802.
*/
- (448行)//if (veth->h_vlan_proto != __constant_htons(ETH_P_8021Q)) {
int orig_headroom = skb_headroom(skb);
unsigned short veth_TCI;
…
if (orig_headroom < VLAN_HLEN) {
VLAN_DEV_INFO(dev)->cnt_inc_headroom_on_tx++;
}
- (477行)//}
#ifdef VLAN_DEBUG
printk(VLAN_DBG "%s: about to send skb: %p to dev: %s\n",
d. #make mrproper
e. #make menuconfig
Processor type and features —>
(X)Subarchitecture Type (PC-compatible)
[ ] Generic x86 support#对X86系列CPU最大的兼容性,如果你的CPU能够在上面的
列表中到,就里就不用选了。
[ ] Symmetric multi-processing support #支持多处理器选项。如果是单CPU,得关闭
f. #make
g. #make modules_install
h. #make install华为linux系统下载
i. 在/f中
注释命令行#hiddemenu
j. #reboot
(启动后,选择新的内核)
2.在终端中输入如下命令:
#killall syslogd
CentOS 5.0中,syslogd进程和pppoe-server进程有所冲突,所以需要关闭
#service iptables stop
#dhclient -r
3.配置双VLAN:
#vconfig add eth0 100
#ifconfig eth0.100 up
#vconfig add eth0.100 10
#ifconfig eth0.100.10 up
(VLAN interface是否创建成功可查看/proc/net/vlan目录下有无相关VLAN接口文件,
有时候通过ifconfig查看,屏幕打印会有些问题)
4.启动pppoe-server:
#pppoe-server –I eth0.100.10 –L 192.168.1.1 –R 192.168.1.100 –u
5.观察CPE网关设备是否已经获取通过pppoe服务器分配到相应的IP地址和wiresharp抓的包中有双VLAN。
Ⅳ。CPE网关设备的拨号方式为MER方式
1.设置CPE网关设备拨号方式为MER中的DHCP方式,VLAN ID为10,重启。
2.ifconfig eth0.100.10 172.16.1
注意此IP地址和/f中的IP地址要匹配
3.启动BAS服务器的dhcpd后台进程(之前请配置好相关的配置文件)
#service dhcpd start
4.观察CPE网关设备是否已经获取通过dhcp服务器分配到相应的IP地址和wiresharp抓的包中有双VLAN。
四.总结
1.目前方法需修改内核源码中关于802.1q模块中处理VLAN发包的程序才能实现支持双VLAN。否则服务器只返回单vlan致使验证失败,不能分配IP地址。
2.BAS服务器中的双VLAN设置是先DSLAM中SVID, 然后网关设备的PVID。正好相反,请注意。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论