openwrt dhcp指定不同网关的解决版本

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 段落
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计