找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 36641|回复: 78

原创 单臂路由之openwrt vlan实现

 火.. [复制链接]
发表于 2018-12-5 10:33 | 显示全部楼层 |阅读模式
本帖最后由 heq 于 2019-8-26 18:23 编辑

家里的主路由Netgear WNDR4300刷了OpenWRT使用多年,质量稳定可靠。但随着家庭网络要求的提高渐不堪重负。去年买的Raspberry Pi 3B一直吃灰。遂打算将两者组合使用,利用RPi提升路由器的运算能力。奈何RPi只有一个有线网络接口,单臂路由(router-on-a-stick)就成了最佳选择。RPi的百兆有线网络应付当前的50M带宽带倒也够了。经过这种改造,带有线网口的电脑(比如淘汰下来的笔记本)都能胜任软路由,多线接入要求可以通过路由器vlan实现,。

下面是具体实现步骤,前几天经过实战试验成功。友情提醒:需要基本linux能力,熟悉CLI操作。

一、预备:
1 RPi刷raspbian,路由刷OpenWRT(支持vlan即可,对版本基本无要求)
2 RPi无线网络开启,便于进入系统更改调试。全部设定成功后可以关闭无线,统一使用WNDR4300的无线网络。
3 WAN口接光猫,LAN4接RPi3,如下图


二、 RPi3设置
1 增加vlan 11做为WAN界面,vlan 22 作为LAN界面
  1. # vconfig add eth0 11
  2. # vconfig add eth0 22
复制代码

2 确认上述设置生效
  1. $ ls -l /proc/net/vlan
  2. total 0
  3. -rw------- 1 root root 0 Dec  4 11:01 config
  4. -rw------- 1 root root 0 Dec  4 11:01 eth0.11
  5. -rw------- 1 root root 0 Dec  4 11:01 eth0.22
复制代码
3 设置vlan,假设光猫端完成PPPoE拨号,WAN端口通过DHCP获取IP信息。
3a create new file to config vlan
# vi /etc/network/interfaces.d/vlans
  1. # WAN
  2. auto eth0.11
  3.     iface eth0.11 inet dhcp
  4.     vlan-raw-device eth0

  5. # LAN
  6. auto eth0.22
  7.     iface eth0.22 inet static
  8.     address 192.168.100.1
  9.     netmask 255.255.255.0
  10.     vlan-raw-device eth0
复制代码
3b 更改原来eth0的设置
# vi /etc/network/interfaces
  1. allow-hotplug eth0
  2.     iface eth0 inet manual
复制代码
4 设置DHCP、DNS服务(自动分配网段为192.168.100.0/24)
# vi /etc/dnsmasq.conf
  1. ...
  2. interface=eth0.22
  3. dhcp-range=eth0.22,192.168.100.100,192.168.100.230,255.255.255.0, 24h
  4. ...
复制代码
5 设置masquerade
# vi /etc/rc.local
  1. ...
  2. iptables -t nat -A POSTROUTING -o eth0.11 -j MASQUERADE
  3. iptables -A FORWARD -i eth0.11 -o wlan0   -m state --state RELATED,ESTABLISHED -j ACCEPT  
  4. iptables -A FORWARD -i eth0.11 -o eth0.22 -m state --state RELATED,ESTABLISHED -j ACCEPT  
  5. iptables -A FORWARD -i wlan0   -o eth0.11 -j ACCEPT  
  6. iptables -A FORWARD -i eth0.22 -o eth0.11 -j ACCEPT
  7. ...
复制代码
6 确认系统允许ip forwarding
# vi /etc/sysctl.conf
  1. ...
  2. net.ipv4.ip_forward=1
  3. net.ipv6.conf.all.forwarding=1
  4. ...
复制代码
7 重启系统使得上述设定生效

三、 路由器设置
1 调整原有vlan设置,将WAN口与LAN4(RPi3接入口)绑定,其它LAN口与openwrt系统绑定。vlan ID与RPi3的设置相对应,取11与22
# vi /etc/config/network   更改原来的switch_vlan设置,注意CPU(openwrt系统)对应vlan 0#,WAN端口对应vlan 5#,LAN4端口对应vlan 1#
  1. ###### original setting, to modify ######
  2. config interface 'lan'
  3. ...
  4.         option ifname 'eth0.1'
  5. ...

  6. config interface 'wan'
  7. ...
  8.         option ifname 'eth0.2'
  9. ...
  10. config switch_vlan
  11.         option device 'switch0'
  12.         option vlan '1'
  13.         option ports '1 2 3 4 0t'

  14. config switch_vlan
  15.         option device 'switch0'
  16.         option vlan '2'
  17.         option ports '5 0t'
  18. ...
  19. ####### new settting ######
  20. config interface 'lan'
  21. ...
  22.         option ifname 'eth0.22'
  23. ...

  24. config interface 'wan'
  25. ...
  26.         option ifname 'eth0.11'
  27. ...
  28. config switch_vlan
  29.         option device 'switch0'
  30.         option vlan '11'
  31.         option vid '11'
  32.         option ports '1t 5'

  33. config switch_vlan
  34.         option device 'switch0'
  35.         option vlan '22'
  36.         option vid '22'
  37.         option ports '0t 1t 2 3 4'
复制代码

这个步骤更建议通过网页luci界面完成,因为openwrt vlan的端口与实际端口无直观对应,网页下设置不容易出错

2 取消LAN界面的DHCP服务

# vi /etc/config/dhcp
  1. ...
  2. config dhcp 'lan'
  3.     option interface 'lan'
  4.     option ignore '1'
  5. ...
复制代码



3 重启相应服务,使得上述更改生效
  1. # /etc/init.d/network restart
  2. # /etc/init.d/dnsmasq restart
复制代码



全部设定至此结束,RPi3的有线网口兼具WAN与LAN功能,其WAN端口eth0.11获得了上级光猫分配的IP地址,并由LAN端口eth0.22向接入路由的设备提供服务。连接到路由的设备可以正常上网,其分配的IP地址隶属RPi3指定的192.168.100.100/24网段。






补充内容 (2019-6-1 00:13):
Luci设置图片部分被遮挡,调整后的图片上传到53#。


更改内容(2019-8-26 18:15)
因为自己对设置内容很熟悉,就会忽略很多技术细节。原来的设定很容易导致路由器“失联”,因为路由器设置了新vlan ID(11, 22)而忘记同步更改原来LAN/WAN的VLAN ID(2, 1)。更改后就好了。

请大家设置时及时提出疑问,能让这篇指南帮到更多的人。

本帖子中包含更多资源

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

×

点评

你说的很对,我赞同你的说法。: 5.0
你说的很对,我赞同你的说法。: 5
干货赞一个  发表于 2019-9-15 11:09

评分

参与人数 1恩山币 +2 收起 理由
hcyme + 2 面对这种帖子,我内心复杂,真不知道说什么好……

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2023-1-4 00:05 | 显示全部楼层
谢谢,这样稳定多了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-6-2 11:52 | 显示全部楼层
且且且看看看看
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-5-4 21:24 | 显示全部楼层
非常有用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-5-4 20:10 来自手机 | 显示全部楼层
这是标准通用姿势
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-5-4 20:07 | 显示全部楼层
看了很多贴都没解决!看到这里终于解决了!k2P刷op VLAN+N1主路由多拨,实现了想要的功能!光猫不用关闭DHCP,路由器也不需要和光猫同IP段也能直接访问各个设备。感谢楼主!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2020-6-13 17:07 | 显示全部楼层
看的有点懵,但是还是想学习一下,一直想要一个稳定的无线布网~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-28 09:50 | 显示全部楼层
支持一下 不错
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-8 16:19 来自手机 | 显示全部楼层
买了个树莓派4b,千兆网口,有机会试试拿来做软路由
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-9-15 09:14 | 显示全部楼层
heq 发表于 2018-12-5 10:34
上述设置的主要亮点:
  • 全部操作对光猫透明,即光猫无须额外设置。
  • 路由支持vlan即可(基本能刷open ...

  • 写的很有参考价值,条理清楚,感谢!
    不知道单臂路由和旁路由是否完全一样。感觉如果wndr4300负责拨号等一部分路由工作的话,这种是否叫旁路由更确切,(瞎猜啊
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

     楼主| 发表于 2019-8-16 09:38 | 显示全部楼层
    本帖最后由 heq 于 2019-9-15 09:38 编辑

    哪里卡壳了,说出来听听。

    阳光底下没有新鲜的事情,你的问题别人也会遇到,顺利解决的话也能帮到别人。

    顺便说一下,本方案已由armbian直接做路由进化到运行在docker内的openwrt做主路由,可以PPPoE拨号,也可以DHCP获取上级网络信息。openwrt使用官版镜像,支持IPv6,支持各种服务。
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

    发表于 2019-8-15 21:52 来自手机 | 显示全部楼层
    这个没有基础知识真头大,我是完全放弃,要么openwrt接usb卡,要么armbian纯粹做科学AP
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

    发表于 2019-8-15 21:47 | 显示全部楼层
    好复杂啊,研究一下
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

    发表于 2019-7-30 14:37 来自手机 | 显示全部楼层
    单臂路由之openwrt vlan实现
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

    发表于 2019-6-1 00:06 来自手机 | 显示全部楼层
    感谢,是用路由的无线,调试过程没办法的事,看来还是没有吃透原理,再学习学习
    我的恩山、我的无线 The best wifi forum is right here.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

    GMT+8, 2024-4-25 07:51

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    | 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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