openwrt其实是可以手动指定部分设备的网关的。可以实现局域网内部分设备用指定的网关自动自动dhcp
场景
设备A 主路由 IP:10.1.1.1
设备B 旁路由/网关 IP:10.1.1.6
自己的手机 IP:10.1.1.71
自己笔记本 IP:10.1.1.72
家人设备 IP段: 10.1.1.200-254
操作
主路由和旁路路由 谁开dhcp 都不影响 下面的操作。
本文内容是openwrt dhcp的指定网关,所以主路由和旁路路由 负责dchp的设备肯定是openwrt的系统。
登陆 这个负责dchp的设备的webui界面,在dhcp静态分配的地方先配置好静态ip。
而后 ssh登陆这个设备,编辑文件 /etc/config/dhcp
,如果你对linux不熟悉 可以用winscp 之类的软件下载到本机修改,并做好备份。
需要编辑两个地址,1是添加一个tag 2是修改需要用10.1.1.6作为网关的设备让他使用这个tag
在文件的第一个 config host 段落前面添加一段,内容
1
2
3
| config tag 'need_outernet'
list dhcp_option '3,10.1.1.6'
option force '1'
|
10.1.1.6
就是我们需要的网关地址 need_outernet
是tag的名称,可以用别的名字
找到 需要配置旁路网关的设备,添加上这个 tag 就是加一行 option tag 'need_outernet'
例如 iphoneL 和reamme 这两个都是我的手机,k2p是一个做AP用的硬路由,原来的格式如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| ...
...
config host
option name 'realme'
option dns '1'
option mac 'D0:97:FE:DC:XX:XX'
option ip '10.1.1.72'
config host
option name 'k2p'
option dns '1'
option mac '74:7D:24:BE:XX:XX'
option ip '10.1.1.2'
config host
option name 'iphoneL'
option dns '1'
option mac '3A:9F:13:9D:XX:XX'
option ip '10.1.1.71'
...
...
...
|
修改为后
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| ...
...
config host
option name 'realme'
option dns '1'
option mac 'D0:97:FE:DC:XX:XX'
option ip '10.1.1.72'
option tag 'need_outernet'
config host
option name 'k2p'
option dns '1'
option mac '74:7D:24:BE:XX:XX'
option ip '10.1.1.2'
config host
option name 'iphoneL'
option dns '1'
option mac '3A:9F:13:9D:XX:XX'
option ip '10.1.1.71'
option tag 'need_outernet'
...
...
...
|
修改完成后 保存推出。 vi/vim 是按下 esc,然后按下键盘上 :wq ,nano的话 ctrl+x ,然后 y确认回车
执行 dnsmasq --test
检查,应该会提示 dnsmasq: syntax check OK. 那就是可以了。
然后重启 dns 命令: /etc/init.d/dnsmasq restart
。
而后 两个手机重新连接一下wifi 就好了。台式机话重新拔插网线或者禁用启用一下网卡。
最后,一个完整的/etc/config/dhcp
参考如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| # 前面可能有 dnsmasq lan wan odhcpd srvhost
# config tag 这段是我们添加的
config tag 'need_outernet'
list dhcp_option '3,10.1.1.6'
option force '1'
# config host 是对应静态地址分配的每一个设备
config host
option name 'kvm-win10'
option dns '1'
option mac '2A:95:2A:A1:37:9D'
option ip '10.1.1.10'
config host
option name 'realme'
option dns '1'
option mac 'D0:97:FE:DC:XX:XX'
option ip '10.1.1.72'
option tag 'need_outernet'
config host
option name 'k2p'
option dns '1'
option mac '74:7D:24:BE:XX:XX'
option ip '10.1.1.2'
config host
option name 'iphoneL'
option dns '1'
option mac '3A:9F:13:9D:XX:XX'
option ip '10.1.1.71'
option tag 'need_outernet'
# 还有其他设备的 config host 段落
|