路由器 A 的 Network - Switch
配置如下:
VLAN ID | CPU (eth0) | CPU (eth1) | LAN 1 | LAN 2 | WAN |
---|---|---|---|---|---|
1 | off | tagged | untagged | untagged | off |
2 | tagged | off | off | off | untagged |
10 | off | tagged | off | off | off |
VLAN 1 对应默认的 lan 和默认 wifi ,192.168.1.0/24 ;
VLAN 10 对应访客 wifi ,192.168.10.0/24 。
路由器 B 的 WAN 连接 A 的 LAN 1
,配置静态 IP 192.168.1.2
,禁用 DHCP Server 、防火墙、DNS ,配置默认 wifi ,当作 AP 。
以上都没问题,现在想让 B 也具有访客 wifi ,该如何配置呢?
B 只有一个物理网口,luci 里是没有 Network - Switch
的:
config interface 'loopback'
| option device 'lo'
| option proto 'static'
| option ipaddr '127.0.0.1'
| option netmask '255.0.0.0'
config device
| option name 'br-lan'
| option type 'bridge'
| list ports 'lan'
config interface 'lan'
| option device 'br-lan'
| option proto 'static'
| option ipaddr '192.168.1.2'
| option netmask '255.255.255.0'
| option ip6assign '60'
| option gateway '192.168.1.1'
root@OpenWrt:~# ls -l /sys/class/net/
lrwxrwxrwx 1 root root 0 Jul 13 11:05 br-lan -> ../../devices/virtual/net/br-lan
lrwxrwxrwx 1 root root 0 Jan 1 1970 eth0 -> ../../devices/platform/soc/c080000.ethernet/net/eth0
lrwxrwxrwx 1 root root 0 Jan 1 1970 lan -> ../../devices/platform/soc/c000000.switch/net/lan
lrwxrwxrwx 1 root root 0 Jan 1 1970 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Jul 13 11:05 phy0-ap0 -> ../../devices/platform/soc/a000000.wifi/net/phy0-ap0
lrwxrwxrwx 1 root root 0 Jul 13 11:05 phy1-ap0 -> ../../devices/platform/soc/a800000.wifi/net/phy1-ap0
尝试这样是会失去连接,只能 TFTP 刷机:
set network.bridge_vlan_home='bridge-vlan'
set network.bridge_vlan_home.device='br-lan'
set network.bridge_vlan_home.vlan='1'
set network.lan.device='br-lan.1'
set network.bridge_vlan_guest='bridge-vlan'
set network.bridge_vlan_guest.device='br-lan'
set network.bridge_vlan_guest.vlan='3'
set network.guest=interface
set network.guest.proto='static'
set network.guest.ipaddr='192.168.10.2'
set network.guest.netmask='255.255.255.0'
set network.guest.gateway='192.168.10.1'
set network.guest.device='br-lan.3'
A 的 Switch 改成了:
VLAN ID | CPU (eth0) | CPU (eth1) | LAN 1 | LAN 2 | WAN |
---|---|---|---|---|---|
1 | off | tagged | tagged | untagged | off |
2 | tagged | off | off | off | untagged |
10 | off | tagged | tagged | off | off |
注意到 B 有个 ../../devices/platform/soc/c000000.switch/net/lan
,尝试:
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.2'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.1.1'
config interface 'guest'
option device 'br-guest'
option proto 'static'
option ipaddr '192.168.10.2'
option netmask '255.255.255.0'
option gateway '192.168.10.1'
config switch_vlan
option device 'lan'
option vlan '1'
option ports '0t'
option vid '1'
config switch_vlan
option device 'lan'
option vlan '10'
option ports '0t'
option vid '10'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan.1'
config device
option name 'br-guest'
option type 'bridge'
list ports 'lan.10'
这样配置后 ping 223.5.5.5 -I br-lan
是通的,但 ping 223.5.5.5 -I br-guest
依然不通,这是什么原因造成的?
VLAN ID | CPU (eth0) | CPU (eth1) | LAN 1 | LAN 2 | WAN |
---|---|---|---|---|---|
1 | off | tagged | tagged | untagged | off |
2 | tagged | off | off | off | untagged |
10 | off | tagged | tagged | tagged | off |
config interface 'guest'
option device 'br-guest'
option proto 'static'
option ipaddr '192.168.10.2'
option netmask '255.255.255.0'
option gateway '192.168.10.1'
config switch_vlan
option device 'lan'
option vlan '10'
option ports '0t 4t'
option vid '10'
config device
option name 'br-guest'
option type 'bridge'
list ports 'lan.10'
搜类似型号,找到个解决方案,把 ports 从 0t 改成了 0t 4t
就成功了,我也不知道这个 4t 代表什么。
这样 VLAN 1 依然是 untagged,相当符合我的预期:
上面第2条附言的表格写错了,应该是
VLAN ID | CPU (eth0) | CPU (eth1) | LAN 1 | LAN 2 | WAN |
---|---|---|---|---|---|
1 | off | tagged | untagged | untagged | off |
2 | tagged | off | off | off | untagged |
10 | off | tagged | tagged | tagged | off |
1
0o0O0o0O0o OP 试图蒙一个:
config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0t' option vid '1' config device option name 'br-lan' option type 'bridge' list ports 'eth0.1' 不出意料又连不上了,又只能 TFTP |
2
neroxps 2023-07-16 11:03:04 +08:00
既然你访客是 vlan 10 那么路由 B 也需要配一个 vlan 10 啊。然后 路由 B 和路由 A 之间的接口是 tagged vlan1 和 vlan 10
|
3
luckjoe680 2023-07-16 11:08:32 +08:00
只能一个 2.4g 一个 5g 不可能用一个信号区分两个吧
|
4
cpstar 2023-07-16 12:22:38 +08:00
不可能,除非 B 的 WAN 支持两个 vlan ,但是显然这种路由器不可能存在
下游肯定需要一个交换机,可是一个物理口两个 VLAN 号,好像也行得通。下游交换机上再分离 VLAN 号和物理口。 最后,这么麻烦干什么,直接搞一个多 SSID 的 AP 完活,XAP5400 也才八百块钱。再不济就 2.4G 给访客,5G 给自己设备,然后两个在路由器( AP )层面隔离,而上联不分 VLAN 就是一条链路。 |
5
0o0O0o0O0o OP @neroxps #2 谢谢,添加了附言,tagged 后 vlan1 可以连通,vlan 10 不行
|
6
0o0O0o0O0o OP |
7
cpstar 2023-07-16 13:16:25 +08:00
我有一个问题,你的真 WAN 口在哪?我还以为这个设备就一个物理 LAN ,刚看仔细是两个 LAN (怎么标题又说一个),那一个口一个 VLAN ,没啥毛病啊,下游两台路由( AP ),in this case ,不需要 VLAN 了。
然后附言里的 ping 是在哪做的?路由通么,br-lan 的上行走向 WAN 了,br-guest 也配置走向 WAN 了? |
8
0o0O0o0O0o OP @cpstar #7
光猫拨号 A 是二级路由,A 的 WAN 接光猫的 LAN B 只有一个口,接 A 的 LAN 1 ping 是连上 B 的 ssh 在里面尝试的 > 一个口一个 VLAN 目前就是希望一根线解决这个问题,视作 LAN 2 不存在 |
9
cpstar 2023-07-16 13:33:25 +08:00
哦,这么个 Ping ,但是如果在 B 上 ping 192.168.10.1 via br-guest 能通,那就证明 A-B 之间的两个 VLAN 链路都通了,问题出在 A 的 NAT 上;如果不通,那就显而易见了。
|
10
0o0O0o0O0o OP |
11
cpstar 2023-07-16 13:54:23 +08:00
我只能感觉你这个 B 并没有那么大的能力去搞一个口多个 vlan
|
12
cpstar 2023-07-16 13:56:37 +08:00
我刚才看了一眼我的 TL-XAP5400GC ,配置里边,某个 SSID 就可以设置绑定到 VLAN ID 上。所以上游一根线,下游多 VLAN ,需要设备 B 的支持,而路由器关这关那当 AP 使,窃以为没有那么大的能力,除非各种刷,当然那就已经不是纯粹的路由器了。
|
13
0o0O0o0O0o OP |
14
0o0O0o0O0o OP |
15
vmebeh 2023-07-16 15:31:25 +08:00 via iPhone
b 的口接 a 的 lan1:
a 的 lan 1: untag vlan1 ,tag vlan10 b 的一样:untag vlan1 ,tag vlan10 ,不需要 wan ,无线的设置我没用过就不清楚了 |
16
vmebeh 2023-07-16 15:33:48 +08:00 via iPhone
需要 b 能 ping 通 a 的话就要新建网络设备分别绑定 vlan1 ,vlan10 ,再设置好防火墙(注意转发的设置,不然来宾形同虚设)
|
17
0o0O0o0O0o OP @vmebeh
#15 是的,附言里就是这样成功的,这个成功之后无线比较简单,wireless wifi-iface 的的 network 设置成对应的 network interface 就可以 #16 B 没有防火墙,也没有绑定 VLAN 1 ,能通过 B 的访客网络 ping 通 192.168.10.1 ,与此同时 A 上设定的防火墙规则也是生效的,有什么我没注意到的坑吗? |