现在旁路由的概念很火,可以测试很多实验性的功能。不过如果把旁路由设为所有设备的网关,会影响到其他用户,特别是有的功能不稳定,或者设备调试的时候。
就出来以下需求:

  1. 所有设备要在同一个网段内,可以互相访问
  2. 所有无线设备用相同的无线AP系统和SSID,不区分
  3. 默认网关和DNS走原主路由,不开附加功能,保证稳定和速度
  4. 指定MAC地址的设备用旁路由做网关和DNS
  5. 旁路由出问题,无法正常工作的时候,除第四条指定设备外,其他设备不受影响

原则上,尽量减少旁路由对网络的影响,让其他用户体验不到网络的变化,且不影响设备互相访问。

要实现这一点,只需要配置dnsmasq即可。示例如下:

dhcp-option=tag:test, option:router, 192.168.1.2 (旁路由地址)
dhcp-option=tag:test, option:dns-server, 192.168.1.2 (旁路由地址, 如果dns有其他选择,也可以指定)
dhcp-host = 11:22:33:44:55:66, set:test, 192.168.1.111 (指定mac地址对应相应的tag的option)

重启路由,重新连接设备,就可以实现指定设备走旁路由网关了。
openwrt, padavan等都可以用这个功能, routeros还没有测试,应该也能实现。

这样做也有利于弱电箱空间吃紧的环境。可以在弱电箱放一个发热量小,价格便宜,有线性能稳定的硬路由,如新三。旁路由则任意选择,可以是一台PC,可以是一台笔记本,可以是群晖NAS,可以是斐讯N1,等等。

完整dnsmasq.conf配置文件

#DNS监听端口默认53
port=5338
#不读取 resolv-file 来确定上游服务器/etc/resolv.conf
#no-resolv
# 也不要检测 /etc/dnsmasq/resolv.conf 的变化
#no-poll
#严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
#strict-order
# 并发查询所有上游DNS服务器
#all-servers
#监听地址,10.139.133.25这个地址替换成ifconfig运行后eth0 里的inet 地址
listen-address=127.0.0.1,::1
#自动导入这个目录下的配置文件
conf-dir=/etc/dnsmasq.d
#conf-dir=/etc/dnsmasq.d/*.conf
# 指定上游DNS服务器配置文件路径
#resolv-file=/etc/resolv.dnsmasq.conf
#开启dnsmasq的日志记录
log-queries
#如果不想保存日志可以改为 /dev/null
#log-facility=/mnt/disk0/syslog/dnsmasq/dnsmasq.log
log-facility=/dev/null
# 如果反向查找的是私有地址例如192.168.X.X,仅从 hosts 文件查找,不再转发到上游服务器
domain-needed
bogus-priv
#resolv server 使用本机的dnscrypt-proxy
#server=192.168.10.2#53
#server=127.0.0.1#5333
#server=114.114.114.114
#server=8.8.4.4
#server=223.5.5.5
#server=119.29.29.29
#server=2400:da00::6666

#使用DHCPv6
# 这是开启ra广播
#enable-ra
#dhcp-range=fd00::22, fd00::44, 64, 12h
#dhcp-range=::,constructor:eth0,ra-only
#dhcp-range=::,constructor:eth0,slaac
#dhcp-range=eth0,::1,constructor:eth0,ra-names,12h
#dhcp-option=option6:dns-server,[fe80::5054:ff:fef7:a1d7]

#使用DHCPv4
interface=eth0
dhcp-option=6,192.168.10.4
dhcp-option=net:internal,option:router,192.168.10.4
dhcp-boot=net:internal,pxelinux.0,boothost,192.168.10.4
dhcp-range=internal,192.168.10.100,192.168.10.200,255.255.255.0,12h

dhcp-option=tag:GW1,option:router,192.168.10.11
dhcp-option=tag:GW1,option:dns-server,192.168.10.11
dhcp-host = 11:22:33:44:55:66,set:GW1,192.168.10.77

#屏蔽广告
address=/ad.iqiyi.com/127.0.0.1
address=/ad.youku.com/127.0.0.1
# 设定域名解析缓存池大小
#cache-size=4096