找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 23355|回复: 42

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

 火.. [复制链接]
本帖最后由 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 访问路由器。









本帖子中包含更多资源

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

×

评分

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

查看全部评分

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

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


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
支持一个 楼主辛苦了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

armbian 8.8 楼主试过吗?我安装的8.8,装不上docker。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大神,能不能给一个完整版的配置说明,配置文件修改的是容器还是主机标注一下,谢谢了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主强大, 关注一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

,感谢楼主!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

,楼主提供了另一个思路,
那就是AP WIFI的实现不一定要用OP里,而是用hostapd,基于armbian原生的
通过修改默认网关,指向OP就好,真的不错,谢谢分享了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

赞回头试试a
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

兄弟能不能弄成纯AP模式呢?AP的网段和上级的一致

点评

heq
那就没有必要这样复杂了,Armbian下通过hostapd+桥接eth0与wlan0就能实现。 第一步armbian设置中,按上传的PDF,但要将如下内容将eth0与wlan0桥接。 现在重启N1即能实现你的要求。 真看不出这样的意义何在。只  详情 回复 发表于 2019-7-2 07:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

主路由模式设置成功了,请教是否可以搞成AP模式,有时候也就为了纯粹上个网,不需要fan greatwall
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
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.
回复

使用道具 举报

来自手机 | 显示全部楼层
学习学习认真贯彻
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

heq 发表于 2019-7-2 07:43
那就没有必要这样复杂了,Armbian下通过hostapd+桥接eth0与wlan0就能实现。
第一步armbian设置中,按上 ...

嗯嗯,谢谢兄弟指点哈!同网段不做NAT,意义还是很大的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

老大,我现在有一块 usb网卡eth1 怎么给openwrt 使用呢  ,docker 上我还跑了其他程序,  希望openwrt  lan口  与 主路由一个网段
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 06:38

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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