版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LAN/WAN模型培训,更新日期:2010.12.17,1、Layer2Bridging配置子树 2、LAN/WAN模型描述 3、 VLAN模型描述 4、LAN侧Switch实现 5、dummyport与dummy设备 6、数据流标记与skb-mark bit位划分 7、LAN/WAN模型实现 8、适配模块消息交互,针对系统软件部TBS成员和 对该模型感兴趣的同事,2小时,了解TR098附录2的LAN/WAN和VLAN模型,了解TBS中对该模型的实现,培训目的,培训对象,学习重点,培训课时,彭耀,培训讲师,Layer2Bridging配置子树,LAN/WAN模型描述,VLAN模型描述,LAN侧
2、Switch实现,dummyport与dummy设备,数据流标记与skb-mark bit位划分,LAN/WAN模型实现,适配模块消息交互,1,2,3,4,5,6,7,8,第一篇:Layer2Bridging配置子树,Bridge表,Filter表,Marking表,AvailableInterface表,InterfaceType: LANInterface:InternetGatewayDevice.LANDevice.1.LANEthernetInterfaceConfig.1 WANInterface:InternetGatewayDevice.WANDevice.1.WANConne
3、ctionDevice.1 LANRouterConnection:InternetGatewayDevice.LANDevice.1 WANRouterConnection: InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1,4个表之间的关系,Interface绑定到bridge interface通过filter绑定到bridge,一个interface可以通过多个filter绑定到不同的bridge,marking可有可无;,4个表之间的关系,第二篇:LAN/WAN模型描述,桥接模型的描述,
4、路由模型的描述,第三篇:VLAN模型描述,VLAN模型,VLAN五种模式: 1、vlan透传模式; 2、vlan标记模式; 3、vlan Translation模式; 4、vlan Aggregation模式 ; 5、vlan Trunk模式;,第四篇:LAN侧Switch实现,CPE中LAN侧只有一个物理设备eth2,基于eth2创建四个VLAN设备,分别对应板子的LAN侧的四个物理口,中间通过交换芯片来实现这种映射关系,四个VLAN设备加入bridge中,通过bridge转发实现交换功能。,1、LAN侧上行 从LAN口进来的以太网帧经Switch加上一个vlan tag(vlanid分别为
5、100,101,102和103),到物理设备eth2后带vlan tag的以太网帧自动从相应的vlan设备进协议栈,在vlan设备驱动中剥掉vlan tag,对帧进行还原。,2、LAN侧下行 以太网帧经桥转发到VLAN设备,在设备驱动中打上vlan tag(VLAN设备vlan id分别为100,101,102和103),再经物理设备eth2到Switch,Switch根据vlan tag中的vlanid将数据帧从指定的物理口发送出去,并剥掉vlan tag,还原以太网帧。,第五篇:dummyport与dummy设备,Dummy: 数据包从协议栈到dummy设备,在设备驱动发送函数中调用dev
6、_kfree_skb释放skb,在cpe中作二层设备使用。,Dummy和dummyport设备不关联具体的物理网口,是互相独立的虚设备,设备驱动分别编译成内核模块;适配层VLAN初始化时加载这两个驱动模块,每个模块初始化时创建15个网络设备,且以设备编号做MAC地址偏移值,通过tbs_read_mac()接口获取虚设备对应的MAC地址,序号相同的dummy和dummyport设备MAC地址相同,dummy和dummyport设备的分配和回收都是成对进行,未被分配的设备处于down状态。,Dummyport: 数据包从协议栈到dummyport设备,在设备驱动发送函数中调用桥设备br1的发送函数
7、进行发送,经bridge netfilter处理,最后通过桥转发出去,效果等同于包从br1发出。,为满足LAN侧多langroup和WAN侧多wan连接,且langroup之间实现隔离,故引入虚设备。 Dummyport设备在CPE中作为三层设备,且不加入br1中,通过ebtables规则将数据包重定向到dummyport设备上,再进入三层协议栈; 桥转发和到CPE本机的数据包流程:,路由转发和CPE本机发出的数据包流程: 在三层设备dummyport驱动中首先会打上该设备的一个设备编号(写入skb-mark/0 xf000),再调用br1设备的发送函数,将数据包发送到bridge;在OUTP
8、UT链中匹配dummyport的设备编号,确定是从哪个wan接口或langroup发出的,然后再对数据包进行重标记(bridge实例mark), 最后在AROUTING链中匹配bridge实例mark应用相应的marking规则,打上vlantag。,第六篇:数据流标记与skb-mark bit位划分,TBS中有多个应用用到了数据流标记,典型的应用有qos和策略路由,之前这两种流标记分别写入skb-mark和skb-rnfmark中,两个mark空间都定义32bit长,而实际应用中绝大部分bit位用不着,如果后续还有新的应用要用到数据流标记,必须在skb中定义新的mark,ebtables、i
9、ptables和内核都要做相应的支持。如果按应用将skb-mark bit位进行划分,每个应用对应一个唯一的mask,mark匹配和设置时应按给定的mask所对应的bit位进行操作,如果有新的应用需要进行流标记,只需在skb-mark中分配可用的bit位即可。,Skb-mark在内核中定义长度为32bit,目前使用到该mark标记的有vlan 、proute、qos和dns模块,以及与多wan连接相关的应用。,2、skb-mark为什么要对bit位进行划分?,3、用到skb-mark标记的应用,多桥配置模型中不同桥实例间应具备隔离功能,单桥环境下通过ebtables规则隔离模拟多桥,通过对数据
10、流进行标记可以简化匹配规则。,1、为什么要对数据流做标记?,Skb-mark bit位分配,Skb-mark占用32bit,0-6bit用于QOS流标记,第7bit用于上下行流标记,8-11bit用于bridge实例标记,12-15bit用于dummyport设备号标记,16-20bit用于策略路由fwmark标记,21-31bit预留。 通过ebtables和iptables规则对数据流进行标记:,第七篇:LAN_WAN实现,1、从二层接口进到桥的以太网帧通过Filter规则过滤,经桥转发到其他接口,再通过Marking规则对数据包进行vlan标记(不带vlantag时可以不添加Markin
11、g规则),filter和marking规则只应用于二层接口,配置树中也filter实例引用到三层接口是为了与具体的wan连接或langroup有个对应关系。,配置模型: TR098配置模型中Layer2Bridge配置子树描述的LAN_WAN模型以bridge作基本的数据单元,通过filter实例与AvailableInterface表中的二层接口确定绑定关系,因bridge设备之间具备二层隔离功能,只有绑定到同一个bridge实例的二层接口才可以互通,进入该bridge的数据包通过filter规则过滤,从bridge转发出去时应用marking规则。 (,实现模型: 配置模型将基本LAN_W
12、AN描述的很清晰,如:lan侧的langroup、不带vlan的桥连接和带vlan的桥连接以及路由连接,对应不同的bridge实例。TBS B07 LAN_WAN实现只创建一个br设备,而不是bridge实例与br设备一一对应,这样做有一个好处是同一个二层接口绑定到不同的bridge实例时,不必基于该接口派生出虚接口,可以避免数据包的拷贝。但是由单桥实现至少有两个问题需要解决:不同bridge实例间的隔离;属于同一个bridge实例的数据包辨别。,Ebtables规则子链:,单桥实现思想: 根据filter条件对进入br1的数据包打上mark,在forward链中匹配mark值确定是否转发,在
13、arouting链中匹配mark确定是否应用marking规则(添加vlantag)。 实现过程: 创建一个桥设备br1,lan侧二层接口和wan侧二层接口默认加入br1中; BROUTING链中setmark:用ebtables规则匹配满足filter条件的数据包,并打上该filter所引用的bridge实例对应的mark值(bridge实例号与mark值一一对应) ;例如: ebtables -t broute -A BROUTING_SETMARK -p 802_1Q -i eth0 -vlan-id 1175 -j mark -and-mark 0 xfffff0ff -or-mark
14、 0 x200 -mark-target RETURN BROUTING链中去vlantag:如果满足filter条件的数据包带vlantag,用ebtables规则匹配filter条件所引用的接口和bridge实例对应的mark值,将vlantag头剥掉;例如:ebtables -t broute -A BROUTING_UNTAG -i eth0 -mark 0 x200/0 xf00 -j vlan -vlan-untag -vlan-target RETURN,INPUT链中reset mark:非独占模式的filter在BROUTING链中set mark后,可能有更高优先级的fil
15、ter将mark重设,为了绑定到桥连接的lan口也能访问cpe或通过路由转发访问wan侧;例如:ebtables -t broute -A BROUTING_SETMARK -i eth2.101 -p! 802_1Q -j mark -and-mark 0 xfffff0ff -or-mark 0 x100 -mark-target RETURN INPUT链中数据包redirect到dummyport设备:ebtables规则匹配bridge实例号对应的mark值,并将数据包重定向到dummyport设备,否则数据包将进入br1设备;例如:ebtables -t filter -A INP
16、UT_REDIRECT -p ! 802_1X -mark 0 x200/0 xf00 -j vlan -redirect-dev dummyport1 -vlan-target ACCEPT FORWARD链中只允许mark相同的数据包转发:ebtables规则匹配目的接口为filter实例引用的接口和mark为filter引用的bridge实例对应的mark值,满足条件的数据包允许转发;例如:ebtables -t filter -A FORWARD_FILTER -o eth0 -mark 0 x200/0 xf00 -j RETURN OUTPUT链中reset mark:通过cpe路
17、由转发和从cpe本机发出的数据包都会在dummyport设备中打上设备编号的一个mark值,因bridge实例号和dummyport设备也是一对一的关系;通过匹配数据流中dummyport设备的编号来设置bridge实例号对应的mark;例如:ebtables -I OUTPUT_SETMARK 1 -mark 0 x1000/0 xf000 -j mark -and-mark 0 xfffff0ff -or-mark 0 x200 -mark-target RETURN,OUTPUT链中filter过滤:该链中下的规则跟FORWARD_FILTER 链中下的规则一样,主要是用于cpe本机LA
18、N和WAN发出的广播包隔离;例如: ebtables -t filter -A AROUTING_FILTER -o eth0 -mark 0 x200/0 xf00 -j RETURN AROUTING链中set vlantag:到AROUTING链的包是准备通过设备驱动发送了,通过ebtables规则匹配目的接口和marking规则引用的bridge实例对应的mark,设置相应的vlantag(没marking规则跳过这一步);例如:ebtables -t aroute -A AROUTING_SETVLANID -mark 0 x200/0 xf00 -o eth0 -j vlan -v
19、lan-set 1175 -vlan-target CONTINUE ebtables -t aroute -A AROUTING_SETVLANID -mark 0 x200/0 xf00 -o eth0 -j vlan -vlan-header -vlan-target RETURN Bridge、filter和marking表项对应的规则: bridge:INPUT链中数据包redirect和OUTPUT链中reset mark; filter: BROUTING链中set mark和vlan untag;FORWARDING链和OUTPUT链中过滤规则; marking:AROUTIN
20、G链中 set vlantag;,LAN_WAN原型验证,创建br1设备,将lan和wan侧二层接口加入br中 brctl addbr br1 ifconfig br1 up brctl addif br1 eth2.100 brctl addif br1 eth2.101 brctl addif br1 eth2.102 brctl addif br1 eth2.103 brctl addif br1 eth0 创建ebtables规则子链(略) 加载dummyport和dummy设备内核模块 insmod /lib/modules/2.6.21.1/kernel/drivers/net/d
21、ummyport.ko numdummies=8 insmod /lib/modules/2.6.21.1/kernel/drivers/net/dummy.ko numdummies=8 Wiki: ,桥连接,场景描述: 桥连接路径:wd.1.wcd.2.ip.1,对应bridge实例2(mark:0 x200/0 xf00),与该bridge实例关联的设备为dummyport2(相当于dummyport2绑定到wd.1.wcd.2.ip.1 连接) ;桥连接绑定LAN侧eth2.100端口,LAN侧不带vlan,WAN侧vlanid:1175。 预期效果: LAN侧pc通过eth2.100
22、端口可以桥接访问wan侧vlan 1175的网络,如果是ppp桥,则只转发ppp数据包;通过其他lan不能访问wan侧网络; 场景图:,路由连接,场景描述: 路由连接路径:wd.1.wcd.3.ip.1,对应bridge实例3(mark:0 x300/0 xf00),与该bridge实例关联的设备为dummyport3;该路由连接绑定LAN侧eth2.101端口,LAN侧vlanid:1000,WAN侧vlanid:1150。 预期效果: 连接LAN侧eth2.101端口,且vlanid为1000的数据包,通过cpe路由转发可以访问wan侧vlan 1150的网络;如果将该路由连接设置为默认路
23、由wan连接,其他lan端口也可以通过cpe路由转发访问wan侧vlan 1150的网络,否则不能访问wan侧网络。 场景图:,桥连接+路由连接,场景描述: 路由连接路径:wd.1.wcd.4.ip.1,对应bridge实例3(mark:0 x300/0 xf00),与该bridge实例关联的设备为dummyport3;该路由连接绑定LAN侧eth2.101端口,LAN侧和WAN侧不带VLAN。 桥连接路径:wd1.wcd.2.ip.1,对应bridge实例2(mark:0 x200/0 xf00) ,与该bridge实例关联的设备为dummyport2;绑定LAN侧eth2.102端口,LAN侧不带vlan,WAN侧vlanid:1175。 预期效果: 连接LAN侧eth2.101端口,通过cpe路由转发可以访问wan侧不带vlan的网络;如果将该路由连接设置为默认路由wan连接,其他lan端口也可以通过cpe路由转发访问wan侧vlan 1150的网络,否则不能访问wan侧网络;通过LAN侧eth2.102口可以桥接方法wan侧vlan 1175的网络。 场景图:,桥、路由混合连接,场景描述: 桥、路由混合连接路径:wd.1.wcd.5.ip.1,对应bridge实例4(mark:0 x400/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢阻肺患者的肺康复训练模式创新
- 车联网交通预测分析协议
- 工程材料采购合同协议
- 2026年跨境电商仓储服务委托协议
- 培训协议合同协议
- 慢病预防的跨部门协作机制构建
- 2026年机械操作安全专项练习卷
- 配送违约责任协议
- 幼儿园防火巡查、检查制度
- 车厢空间规划执行条款
- 中医外治技术之穴位注射操作指南:精准操作与安全优化的临床应用解析
- 青光眼病的课件
- 【《1000吨年产量的鼠李糖脂生产工艺设计》9600字(论文)】
- 装修消防安全培训课件
- 机场通行证考试题库及答案
- 葫芦丝教学讲座课件
- 包头公务接待管理办法
- 2006年浙江省衢州市中考数学试卷【含答案解析】
- 安全生产八问
- DB50∕T 548.2-2024 城市道路交通管理设施设置规范 第2部分:道路交通标线
- 多家店面活动方案
评论
0/150
提交评论