华硕网络产品技术交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 9883|回复: 17

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

[复制链接]

561

主题

2029

回帖

7597

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7597

RT-AC88U

发表于 2022-1-21 10:39:37 | 显示全部楼层 |阅读模式
早期论坛有小伙伴咨询华硕路由器如何 VLAN 划分,今天我们就具体说明一下。

就当时小伙伴 RT-AC86U VLAN划分求助(单臂路由) 使用到的命令进行逐条分析,方便日后其他小伙伴使用。

使用命令如下:
  1. vlanctl --mcast --if-create eth0 2
  2. vlanctl --if eth0 --rx --tags 1 --filter-vid 2 0 --pop-tag --set-rxif eth0.v2 --rule-append
  3. vlanctl --if eth0 --tx --tags 0 --filter-txif eth0.v2 --push-tag --set-vid 2 0 --rule-append
  4. ifconfig eth0.v2 up
  5. brctl addbr vlan2
  6. brctl addif vlan2 eth0.v2
  7. ifconfig vlan2 up                                                      
  8. nvram set wan_ifnames=vlan2
  9. nvram set wan_ifname=vlan2
  10. nvram set wan0_ifname=vlan2
  11. vlanctl --mcast --if-create eth0 1
  12. vlanctl --if eth0 --rx --tags 0 --set-rxif eth0.v1 --rule-append
  13. ifconfig eth0.v1 up
  14. brctl addif br0 eth0.v1
复制代码

具体说明:
  1. vlanctl --mcast --if-create eth0 2
复制代码
#基于eth0 (路由器WAN口)创建一个虚拟接口并且命名为eth0.2,这里的2纯粹是名字,与VLAN tag没有任何关系,如果是为了方便了解后续解到的tag,名称也可以与tag一致。Mcast(multi castprotocal)是多播协议通信程序,用于测试在局域网或者三层交换机架构下进行通信测试
  1. 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)
  1. 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)。
  1. ifconfig eth0.v2 up
复制代码
#启用这个虚拟接口eth0.v2。
  1. brctl addbr vlan2
复制代码
# 创建一个逻辑网段,名称为vlan2
  1. brctl addif vlan2 eth0.v2
复制代码
#让eth0.v2 成为 vlan2的一个端口
  1. ifconfig vlan2 up
复制代码
#启用这个逻辑网段   
  1. nvram set wan_ifnames=vlan2
  2. nvram set wan_ifname=vlan2
  3. nvram set wan0_ifname=vlan2
复制代码
# 通知系统上网接口被改变,需要设置nvram相关变量
# 是指 WAN 使用 vlan2 网络介面来上网
  1. vlanctl --mcast --if-create eth0 1
复制代码
#基于eth0 (路由器WAN口)创建一个虚拟接口并且命名为eth0.1
  1. vlanctl --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)
  1. ifconfig eth0.v1 up
复制代码
#启用这个虚拟接口eth0.v1。
  1. 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。如下图
再执行如下命令,如下图效果
  1. vlanctl --mcast --if-create eth0 85
  2. vlanctl --if eth0 --rx --tags 1 --filter-vid 85 0 --pop-tag --set-rxif eth0.v85 --rule-append
  3. vlanctl --if eth0 --tx --tags 0 --filter-txif eth0.v85 --push-tag --set-vid 85 0 --rule-append
  4. ifconfig eth0.v85 up

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

  9. brctl addbr vlan85
  10. brctl addif vlan85 eth0.v85
  11. brctl addif vlan85 eth1.v85
  12. ifconfig vlan85 up
复制代码

至此全文结束,欢迎小伙伴留意交流。

微信扫一扫,阅读更方便^_^

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

14

回帖

83

积分

注册会员

Rank: 2

积分
83

RT-AX68U

发表于 2022-3-30 03:55:41 | 显示全部楼层
iphone8 发表于 2022-3-29 10:02
主要是将WAN端接受到的部分内容进行转移,如果都进行转移的话,不设置应该也是可以的。不过还是需要比较 ...

为此专门做过验证,一根线连接房间路由器,然后其他线都在弱电箱光猫处汇聚,但是光猫不拨号
就需要路由器同时单臂拨号+DHCP分配上网来实现单线复用,光猫关闭DHCP和路由器一个网段
41是拨号上网的VLAN,所以光猫千兆网口设置VLAN绑定2/41,其他都是端口绑定
然后按照这些命令来设置路由器并且添加到开机脚本,确保重启后不失效
结果路由器LAN口和光猫其他口还是没有网,是哪里没有设置对吗?

点评

请问是否解决此问题,我现在也是这个问题,设置后无法连接外网  发表于 2022-6-7 19:48
回复 支持 1 反对 0

使用道具 举报

2

主题

431

回帖

7234

积分

论坛元老

Rank: 8Rank: 8

积分
7234

GT-AC5300GT-AX11000

发表于 2022-1-21 17:04:18 | 显示全部楼层
好东西.学习..很棒.支持技术贴

19

主题

196

回帖

9937

积分

论坛元老

Rank: 8Rank: 8

积分
9937

GT-AX11000RT-AX88U灵耀AX6600M-black

发表于 2022-1-21 22:20:54 | 显示全部楼层
努力摸索学习, 谢谢。

16

主题

3040

回帖

7726

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7726

RT-AC68URT-AC86UGT-AC5300

发表于 2022-1-21 23:21:28 | 显示全部楼层
感谢分享
回复

使用道具 举报

20

主题

143

回帖

5217

积分

论坛元老

Rank: 8Rank: 8

积分
5217

GT-AX11000RT-AX86URT-AC86URT-AC68U

发表于 2022-1-25 14:58:10 | 显示全部楼层

谢谢分享!
回复

使用道具 举报

0

主题

14

回帖

83

积分

注册会员

Rank: 2

积分
83

RT-AX68U

发表于 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添加规则表了吧

561

主题

2029

回帖

7597

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7597

RT-AC88U

 楼主| 发表于 2022-3-29 10:02:52 | 显示全部楼层
lusky01 发表于 2022-3-28 22:26
vlanctl --mcast --if-create eth0 2只是创建了一个逻辑接口
还可以用ip link直接添加逻辑接口和vlan id
ip ...

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

0

主题

6

回帖

24

积分

新手上路

Rank: 1

积分
24
发表于 2022-6-7 19:46:02 | 显示全部楼层
按此脚本执行后(第一个和后面的示例脚本都试过),路由器和光猫的LAN口均无法连接外网,内网可以互通,是否光猫或其他设备需要特殊设置?
光猫关闭DHCP,光猫拨号或者路由器拨号结果都一样不能访问外网。

561

主题

2029

回帖

7597

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7597

RT-AC88U

 楼主| 发表于 2022-6-8 08:46:23 | 显示全部楼层
是拖油瓶啊 发表于 2022-6-7 19:46
按此脚本执行后(第一个和后面的示例脚本都试过),路由器和光猫的LAN口均无法连接外网,内网可以互通,是否光 ...

你的路由器型号也是RT-AC86U吗?如果不是的话,先telnet连接到路由器执行ifconfig确认一下对应的LAN与WAN口是否正确。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回列表 搜索 官方QQ群
×

秒后自动关闭

小黑屋|手机版|Archiver|华硕网络产品技术交流平台 ( 苏ICP备16010857号-1 )苏公网安备 32050502000499号

GMT+8, 2024-5-12 22:49 , Processed in 0.042586 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表