iphone8 发表于 2022-1-21 10:39:37

华硕路由器如何 VLAN 划分实现单臂路由

早期论坛有小伙伴咨询华硕路由器如何 VLAN 划分,今天我们就具体说明一下。
就当时小伙伴 RT-AC86U VLAN划分求助(单臂路由) 使用到的命令进行逐条分析,方便日后其他小伙伴使用。
使用命令如下:vlanctl --mcast --if-create eth0 2
vlanctl --if eth0 --rx --tags 1 --filter-vid 2 0 --pop-tag --set-rxif eth0.v2 --rule-append
vlanctl --if eth0 --tx --tags 0 --filter-txif eth0.v2 --push-tag --set-vid 2 0 --rule-append
ifconfig eth0.v2 up
brctl addbr vlan2
brctl addif vlan2 eth0.v2
ifconfig vlan2 up                                                      
nvram set wan_ifnames=vlan2
nvram set wan_ifname=vlan2
nvram set wan0_ifname=vlan2
vlanctl --mcast --if-create eth0 1
vlanctl --if eth0 --rx --tags 0 --set-rxif eth0.v1 --rule-append
ifconfig eth0.v1 up
brctl addif br0 eth0.v1
具体说明:vlanctl --mcast --if-create eth0 2#基于eth0 (路由器WAN口)创建一个虚拟接口并且命名为eth0.2,这里的2纯粹是名字,与VLAN tag没有任何关系,如果是为了方便了解后续解到的tag,名称也可以与tag一致。Mcast(multi castprotocal)是多播协议通信程序,用于测试在局域网或者三层交换机架构下进行通信测试
vlanctl --if eth0 --rx --tags 1 --filter-vid 2 0 --pop-tag --set-rxif eth0.v2 --rule-append#如果接口eth0接受到的数据(--if eth0 --rx),有1个VLAN tag(--tags 1),并且第0个tag的VLAN ID是2(--filter-vid2 0),则脱去tag(--pop-tag),并且设置接收接口为eth0.v2(--set-rxif eth0.v2),最后把这条规则添加到表中(--rule-append)vlanctl --if eth0 --tx --tags 0 --filter-txif eth0.v2 --push-tag --set-vid 2 0 --rule-append#接口 eth0 发送数据时 (--if eth0 --tx),如果 没有 VLAN tag(--tags 0),并且 发送数据的虚拟接口是 eth0.v2 (--filter-txif eth0.v2),则 给数据(以太帧)加上一个 VLAN tag (--push-tag),并给第 0 个(刚加的)tag 设置 VLAN ID 为 2 (--set-vid 2 0)。把这条规则添加到表中(--rule-append)。
ifconfig eth0.v2 up#启用这个虚拟接口eth0.v2。
brctl addbr vlan2# 创建一个逻辑网段,名称为vlan2
brctl addif vlan2 eth0.v2#让eth0.v2 成为 vlan2的一个端口
ifconfig vlan2 up#启用这个逻辑网段   nvram set wan_ifnames=vlan2
nvram set wan_ifname=vlan2
nvram set wan0_ifname=vlan2# 通知系统上网接口被改变,需要设置nvram相关变量# 是指 WAN 使用 vlan2 网络介面来上网vlanctl --mcast --if-create eth0 1#基于eth0 (路由器WAN口)创建一个虚拟接口并且命名为eth0.1vlanctl --if eth0 --rx --tags 0 --set-rxif eth0.v1 --rule-append#如果接口eth0接受到的数据(--if eth0 --rx),没有VLAN tag(--tags 0),并且设置接收接口为eth0.v1(--set-rxifeth0.v1),最后把这条规则添加到表中(--rule-append)ifconfig eth0.v1 up#启用这个虚拟接口eth0.v1。brctl addif br0 eth0.v1#让eth0.v1 成为 br0的一个端口
具体示例说明:下面尝试将RT-AC86U的WAN口与LAN 4口桥接到一起,实现WAN和 LAN4 的 VLAN 85联通, 先确认路由器WAN与LAN4系统中分别对应的名称,telnet连接到RT-AC86U 执行ifconfig,观察系统中eth0对应名称为WAN,eth1对应到LAN4。如下图 再执行如下命令,如下图效果vlanctl --mcast --if-create eth0 85
vlanctl --if eth0 --rx --tags 1 --filter-vid 85 0 --pop-tag --set-rxif eth0.v85 --rule-append
vlanctl --if eth0 --tx --tags 0 --filter-txif eth0.v85 --push-tag --set-vid 85 0 --rule-append
ifconfig eth0.v85 up

vlanctl --mcast --if-create eth1 85
vlanctl --if eth1 --rx --tags 1 --filter-vid 85 0 --pop-tag --set-rxif eth1.v85 --rule-append
vlanctl --if eth1 --tx --tags 0 --filter-txif eth1.v85 --push-tag --set-vid 85 0 --rule-append
ifconfig eth1.v85 up

brctl addbr vlan85
brctl addif vlan85 eth0.v85
brctl addif vlan85 eth1.v85
ifconfig vlan85 up
至此全文结束,欢迎小伙伴留意交流。

lusky01 发表于 2022-3-30 03:55:41

iphone8 发表于 2022-3-29 10:02
主要是将WAN端接受到的部分内容进行转移,如果都进行转移的话,不设置应该也是可以的。不过还是需要比较 ...
为此专门做过验证,一根线连接房间路由器,然后其他线都在弱电箱光猫处汇聚,但是光猫不拨号
就需要路由器同时单臂拨号+DHCP分配上网来实现单线复用,光猫关闭DHCP和路由器一个网段
41是拨号上网的VLAN,所以光猫千兆网口设置VLAN绑定2/41,其他都是端口绑定
然后按照这些命令来设置路由器并且添加到开机脚本,确保重启后不失效
结果路由器LAN口和光猫其他口还是没有网,是哪里没有设置对吗?

b31shimp5 发表于 2022-1-21 17:04:18

好东西.学习..很棒.支持技术贴

新客来 发表于 2022-1-21 22:20:54

努力摸索学习, 谢谢。

Dr.Antenna 发表于 2022-1-21 23:21:28

感谢分享

steele 发表于 2022-1-25 14:58:10


谢谢分享!

lusky01 发表于 2022-3-28 22:26:03

vlanctl --mcast --if-create eth0 2只是创建了一个逻辑接口
还可以用ip link直接添加逻辑接口和vlan id
ip link add link eth0 name eth0.2 type vlan id 2
然后就不用vlanctl ... --rule-append添加规则表了吧

iphone8 发表于 2022-3-29 10:02:52

lusky01 发表于 2022-3-28 22:26
vlanctl --mcast --if-create eth0 2只是创建了一个逻辑接口
还可以用ip link直接添加逻辑接口和vlan id
ip ...

主要是将WAN端接受到的部分内容进行转移,如果都进行转移的话,不设置应该也是可以的。不过还是需要比较一下才能知道哦

是拖油瓶啊 发表于 2022-6-7 19:46:02

按此脚本执行后(第一个和后面的示例脚本都试过),路由器和光猫的LAN口均无法连接外网,内网可以互通,是否光猫或其他设备需要特殊设置?
光猫关闭DHCP,光猫拨号或者路由器拨号结果都一样不能访问外网。

iphone8 发表于 2022-6-8 08:46:23

是拖油瓶啊 发表于 2022-6-7 19:46
按此脚本执行后(第一个和后面的示例脚本都试过),路由器和光猫的LAN口均无法连接外网,内网可以互通,是否光 ...
你的路由器型号也是RT-AC86U吗?如果不是的话,先telnet连接到路由器执行ifconfig确认一下对应的LAN与WAN口是否正确。
页: [1] 2
查看完整版本: 华硕路由器如何 VLAN 划分实现单臂路由