设为首页收藏本站

恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
小博无线
查看: 944|回复: 13
打印 上一主题 下一主题

原创 单臂路由之openwrt vlan实现

[复制链接]
跳转到指定楼层
1#
发表于 2018-12-5 10:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 heq 于 2018-12-7 11:41 编辑

家里的主路由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. # apt-get update
  2. # apt-get install vlan
复制代码
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 switch_vlan
  3.         option device 'switch0'
  4.         option vlan '1'
  5.         option ports '1 2 3 4 0t'

  6. config switch_vlan
  7.         option device 'switch0'
  8.         option vlan '2'
  9.         option ports '5 0t'

  10. ####### new settting ######
  11. config switch_vlan
  12.         option device 'switch0'
  13.         option vlan '11'
  14.         option vid '11'
  15.         option ports '1t 5'

  16. config switch_vlan
  17.         option device 'switch0'
  18.         option vlan '22'
  19.         option vid '22'
  20.         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网段。




我的恩山、我的无线 The best wifi forum is right here.
2#
 楼主| 发表于 2018-12-5 10:34 | 只看该作者
本帖最后由 heq 于 2018-12-7 12:18 编辑

上述设置的主要亮点:
  • 光猫无须支持vlan,无须额外设置
  • 路由支持vlan即可(基本能刷openwrt的多口路由均能使用,包括很多古董)
  • 特别适合单网口主机作软路由,一个网口同时实现WAN与LAN连接。通过规范的vlan隔离,进出数据不会冲突。
  • 如果主机有线网口速度够快(不建议使用本例中的RPi3,常见千兆网口在可预见的将来倒是足以应付宽带接入要求),单网口主机也能作为软路由实现多线接入。类似于WNDR4300的5口路由配上单网口主机,基本等同于4网口软路由。我本来打算买个4口工控小主机作为软路由提升家庭网络,目前看来已无必要。家里吃灰的联想A30电视盒子(CPU为VIA NANO  U3300,TDP 6.8W,主频1.2G,千兆有线网络)配合路由器完全可以替代。下步打算升级A30内存到8G,建立虚拟机平台后安装OpenWRT x86、ROS之类提升家用网络。

实施的主要难点就是不太适合小白,需要具备linux基本知识并熟悉CLI操作。
答复几个回帖的质疑:

本帖的原创体现在vlan的实战操作,涉及路由器lan端口与vlan端口的不一致,外部主机的vlan对应设置。设置成功后路由器成为支持vlan的纯交换机,所有网络流量均经由RPi处理,单线复拨、多线接入都由RPi直接处理,方案复杂但基本一劳永逸。我看到的其它方案都是类似于路由器给RPi分配局域网的IP地址,再通过DHCP指定RPi为局域网内其它设备的gateway,简单方便。希望我的方案给大家多一种选择。

网上若有类似案例还请发出链接证明,我会修改标题的原创声明。

我的恩山、我的无线 The best wifi forum is right here.
3#
发表于 2018-12-5 10:54 | 只看该作者
帅!
我也有个pi,可以拿出来耍了
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
4#
发表于 2018-12-6 10:00 来自手机 | 只看该作者
搞这么复杂。。才50M的宽带,加个USB有线网卡搞定。

点评

真相了hhh,不过生命在于折腾,加上有pi在手,大神肯定不能任由它吃灰的  详情 回复 发表于 2018-12-10 18:04
我的恩山、我的无线 The best wifi forum is right here.
5#
发表于 2018-12-6 12:45 | 只看该作者
树莓派网卡性能着急,还是用斐讯N1吧
我的恩山、我的无线 The best wifi forum is right here.
6#
发表于 2018-12-6 12:45 | 只看该作者
或者橙子派,有些型号有openwrt官方支持
我的恩山、我的无线 The best wifi forum is right here.
7#
发表于 2018-12-6 17:12 | 只看该作者
标题不准确,容易误解。应该是单臂路由之 raspbian vlan 实现。或者叫 Raspberry Pi 3B 单臂路由设置。
至于 WNDR4300 刷 OpenWRT 当 具有 vlan 功能的交换机使用,是很常见的用法,不存在什么原创之说。
我的恩山、我的无线 The best wifi forum is right here.
8#
发表于 2018-12-6 17:25 | 只看该作者
不懂是什么意思,不是有路由了吗?还要个派是干啥用的。你也说了WNDR4300也能刷WRT的啊
我的恩山、我的无线 The best wifi forum is right here.
9#
发表于 2018-12-10 18:04 | 只看该作者
感谢楼主无私的分享与奉献!
我的恩山、我的无线 The best wifi forum is right here.
10#
发表于 2018-12-10 18:04 | 只看该作者
99010 发表于 2018-12-6 10:00
搞这么复杂。。才50M的宽带,加个USB有线网卡搞定。

真相了hhh,不过生命在于折腾,加上有pi在手,大神肯定不能任由它吃灰的

点评

C.w
50M小水管, 上面命令搞不定的可以用pi直接刷openwrt或许会简单点。  详情 回复 发表于 2018-12-16 07:41
我的恩山、我的无线 The best wifi forum is right here.
11#
发表于 2018-12-12 18:13 | 只看该作者
我也用单臂路由,但没有用 vlan 划分 WAN 和 LAN ,所有流量都走 vlan0,ESXI下安装 OPENWRT 拨号。
不知道是否这个原因,拨号成功之后,大概1~2天在线时间,就offline了,看提示好像网卡有什么错误?
怀疑是电信机房重新分配 IP 的时候,OPENWRT 出错,这时重启网卡或系统可以重新分配到 IP。
暂时用脚本定时检测应对这个问题。
我的恩山、我的无线 The best wifi forum is right here.
12#
发表于 2018-12-13 11:04 | 只看该作者
感谢楼主无私的分享与奉献!
我的恩山、我的无线 The best wifi forum is right here.
13#
发表于 2018-12-15 19:11 | 只看该作者
666666,不明觉厉
我的恩山、我的无线 The best wifi forum is right here.
14#
发表于 2018-12-16 07:41 | 只看该作者
AK快递员 发表于 2018-12-10 18:04
真相了hhh,不过生命在于折腾,加上有pi在手,大神肯定不能任由它吃灰的

50M小水管
上面命令搞不定的可以用pi直接刷openwrt或许会简单点。
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛 ( 苏ICP备05084872号-1 )  

GMT+8, 2018-12-16 11:46

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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