恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4493|回复: 28

[N1盒子] 【原创】Docker内OpenWRT设置成主路由,为WiFi接入的客户提供源自有线网口的网络服务

  [复制链接]
发表于 2019-6-26 23:35 | 显示全部楼层 |阅读模式
本帖最后由 heq 于 2019-10-28 09:58 编辑

警告:大量CLI操作,不熟悉Linux者慎入

前两天看到这篇恩山网友大作,非常有启发。其中详细地记录了在N1、光猫(必须关闭DHCP服务)都接在普通交换机的网络环境下,N1通过内部运行在docker上的OpenWRT连接光猫拨号上网,为交换机上其他设备提供网络服务的设置过程。相当于单臂路由另一种很好的实现,armbian提供硬件驱动与服务,路由系统却是货真价实的OpenWRT。

本帖延续这个思路,硬件层仍由armbian控制,运行在docker上的OpenWRT作为主路由,扮演Routerd AP的角色。

本方案适用场合:在家里网络末端提供一台软路由,有线接入上级网络(DHCP或PPPOE),允许其它无线设备接入其WiFi分享网络。出差外出时也可随身携带,提供自己熟悉的网络环境。

本方案在armbian_5.60_aml-s9xxx_debian_stretch_default_4.18.7_20180922.img.xz与armbian_5.77_aml-s905_debian_stretch_default_5.0.2_20190401.img.xz上均测试通过,OpenWRT用的是18.06.2官方版本,其它标准OpenWRT应该也没问题(未做测试)。

以下为具体设置步骤,假设N1已经刷好armbian系统,参考 N1刷入Armbian后换软件源、安装Docker并提速 安装docker。


基本设定
  1.      host IP: 192.168.1.254,  gateway: 192.168.1.1(OpenWRT)
  2. container IP: 192.168.1.1,    gateway: DHCP from upstream
复制代码



ARMBIAN设置
1 软件准备
  1. # docker import https://downloads.openwrt.org/releases/18.06.2/targets/armvirt/64/openwrt-18.06.2-armvirt-64-default-rootfs.tar.gz openwrt:18.06.2
复制代码

2 网络设置
  1. # vi /etc/network/interfaces
  2. ...
  3. iface eth0 inet dhcp
  4.     up ip link set eth0 promisc on
  5. ....

  6. # vi /etc/network/interfaces.d/bridge

  7. auto  br-lan
  8. iface br-lan inet static
  9.     address 192.168.1.254
  10.     netmask 255.255.255.0
  11.     gateway 192.168.1.1
  12.     dns-nameservers 192.168.1.1
  13.     bridge_ports wlan0
复制代码


3 启动WiFi(2.4G)
  1. # vi /etc/default/hostapd
  2. ...
  3. DAEMON_CONF="/etc/hostapd.conf"
  4. ...

  5. # vi /etc/hostapd.conf
  6. ...
  7. interface=wlan0
  8. ...
  9. bridge=br-lan
  10. driver=nl80211
  11. ...
复制代码

4 N1重启后,新建container与配套网络
  1. # docker network create -d bridge  --subnet 192.168.1.0/24 --gateway=192.168.1.254 -o "com.docker.network.bridge.name=br-lan" lanet
  2. # docker run -d --name N1 --network lanet --privileged openwrt:18.06.2 /sbin/init
  3. # docker network create -d macvlan -o parent=eth0 wanet
  4. # docker network connect wanet N1
  5. # docker exec -it N1 sh
复制代码

Container(OpenWRT)设置
网络设置
  1. # vi /etc/config/network
  2. ...

  3. config interface 'wan'
  4.         option ifname 'eth1'
  5.         option proto 'dhcp'

  6. config interface 'wan6'
  7.         option ifname '@wan'
  8.         option proto 'dhcpv6'
复制代码


ARMBIAN设置
1 重启N1后,手工启动container
  1. # docker start N1
复制代码
2 更换缺省路由到OpenWRT,确认网络环境正常: 手机可以看到N1放出的ARMBIAN 无线信号,用密码 12345678 登入后应能正常上网。网络设置里可以看到gateway为192.168.1.1
确认一切正常?设置container自动重启
  1. # docker update --restart always N1
复制代码
3 确认/etc/resolv.conf内nameserver 指向正确的IP(按本文设置应该是192.168.1.1):设置docker后DHCP获取上级网络信息往往出问题,导致docker内openwrt DNS不能正常解析。
4 最后重启N1,设置全部完成。

登入N1的无线网络后,可以通过 http://openwrt 访问路由器。









2网络设置.pdf

96.43 KB, 下载次数: 179

评分

参与人数 3恩山币 +5 收起 理由
hcyme + 2 强大的恩山!(以下重复1万次)
tinylion + 1 率全体恩山路由党以及党魁向你学习!
qgtxqj + 2 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-6-26 23:38 | 显示全部楼层
本帖最后由 heq 于 2019-10-28 09:54 编辑

距离发帖近4个月,这段时间对docker的认识多了一些,对上次发贴中的内容做了优化,逻辑上更合理。
如我所言,用此方案的主要好处就是便携。如果想做家里做主路由,还是要结合vlan复用网口,参见这篇文章,里面也有openwrt设置的避坑指南,可以参考一下。


我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 00:04 来自手机 | 显示全部楼层
支持一个 楼主辛苦了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 08:29 | 显示全部楼层
armbian 8.8 楼主试过吗?我安装的8.8,装不上docker。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 09:07 | 显示全部楼层
大神,能不能给一个完整版的配置说明,配置文件修改的是容器还是主机标注一下,谢谢了。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 09:15 | 显示全部楼层
楼主强大, 关注一下
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 09:24 | 显示全部楼层
,感谢楼主!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 09:29 | 显示全部楼层
,楼主提供了另一个思路,
那就是AP WIFI的实现不一定要用OP里,而是用hostapd,基于armbian原生的
通过修改默认网关,指向OP就好,真的不错,谢谢分享了!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-29 23:25 | 显示全部楼层
赞回头试试a
来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-7-1 08:38 | 显示全部楼层
兄弟能不能弄成纯AP模式呢?AP的网段和上级的一致

点评

heq
那就没有必要这样复杂了,Armbian下通过hostapd+桥接eth0与wlan0就能实现。 第一步armbian设置中,按上传的PDF,但要将如下内容将eth0与wlan0桥接。 现在重启N1即能实现你的要求。 真看不出这样的意义何在。只  详情 回复 发表于 2019-7-2 07:43
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-7-1 08:58 | 显示全部楼层
主路由模式设置成功了,请教是否可以搞成AP模式,有时候也就为了纯粹上个网,不需要fan greatwall
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-7-2 07:43 | 显示全部楼层
tinylion 发表于 2019-7-1 08:38
兄弟能不能弄成纯AP模式呢?AP的网段和上级的一致

那就没有必要这样复杂了,Armbian下通过hostapd+桥接eth0与wlan0就能实现。
第一步armbian设置中,按上传的PDF,但要将如下内容将eth0与wlan0桥接。
  1. # vi /etc/network/interfaces.d/bridge
  2. auto br-lan
  3. iface br-lan inet dhcp
  4.     bridge_ports wlan0 eth0
复制代码

现在重启N1即能实现你的要求。

真看不出这样的意义何在。只需要一个Dump AP吗?市场上随便找一个AP可能更专业吧。

点评

嗯嗯,谢谢兄弟指点哈!同网段不做NAT,意义还是很大的  详情 回复 发表于 2019-7-2 08:28
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-7-2 07:46 来自手机 | 显示全部楼层
学习学习认真贯彻
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-7-2 08:28 | 显示全部楼层
heq 发表于 2019-7-2 07:43
那就没有必要这样复杂了,Armbian下通过hostapd+桥接eth0与wlan0就能实现。
第一步armbian设置中,按上 ...

嗯嗯,谢谢兄弟指点哈!同网段不做NAT,意义还是很大的
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-7-10 11:19 | 显示全部楼层
老大,我现在有一块 usb网卡eth1 怎么给openwrt 使用呢  ,docker 上我还跑了其他程序,  希望openwrt  lan口  与 主路由一个网段
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2019-12-11 04:17

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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