- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TBS_B07 LAN WAN模型
Ebtables规则子链: 单桥实现思想: 根据filter条件对进入br1的数据包打上mark,在forward链中匹配mark值确定是否转发,在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 0xfffff0ff --or-mark 0x200 --mark-target RETURN BROUTING链中去vlantag:如果满足filter条件的数据包带vlantag,用ebtables规则匹配filter条件所引用的接口和bridge实例对应的mark值,将vlantag头剥掉;例如:ebtables -t broute -A BROUTING_UNTAG -i eth0 --mark 0x200/0xf00 -j vlan --vlan-untag --vlan-target RETURN INPUT链中reset mark:非独占模式的filter在BROUTING链中set mark后,可能有更高优先级的filter将mark重设,为了绑定到桥连接的lan口也能访问cpe或通过路由转发访问wan侧;例如:ebtables -t broute -A BROUTING_SETMARK -i eth2.101 -p?! 802_1Q -j mark --and-mark 0xfffff0ff --or-mark 0x100 --mark-target RETURN INPUT链中数据包redirect到dummyport设备:ebtables规则匹配bridge实例号对应的mark值,并将数据包重定向到dummyport设备,否则数据包将进入br1设备;例如:ebtables -t filter -A INPUT_REDIRECT -p ! 802_1X --mark 0x200/0xf00 -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 0x200/0xf00 -j RETURN OUTPUT链中reset mark:通过cpe路由转发和从cpe本机发出的数据包都会在dummyport设备中打上设备编号的一个mark值,因bridge实例号和dummyport设备也是一对一的关系;通过匹配数据流中dummyport设备的编号来设置bridge实例号对应的mark;例如:ebtables -I OUTPUT_SETMARK 1 --mark 0x1000/0xf000 -j mark --and-mark 0xfffff0ff --or-mark 0x200 --mark-target RETURN OUTPUT链中filter过滤:该链中下的规则跟FORWARD_FILTER 链中下的规则一样,主要是用于cpe本机LAN和WAN发出的广播包隔离;例如: ebtables -t filter -A AROUTING_FILTER -o eth0 --mark 0x200/0xf00 -j RETURN AROUTING链中set vlantag:到AROUTING链的包是准备通过设备驱动发送了,通过ebtables规则匹配目的接口和marking规则引用的bridge实例对应的mark,设置相应的vlantag(没marking规则跳过这一步);例如:ebtables -t aroute -A AROUTING_SETVLANID --mark 0x200/0xf00 -o eth0 -j vlan --vlan-set 1175 --vlan-target CONTINUE ebtables -t aroute -A AROUTING_SETVLANID --mark 0x200/0xf00 -o eth0 -j
文档评论(0)