[N1盒子]Docker内OpenWRT设置成主路由,docker上的OpenWRT连接光猫拨号上网

2021-02-07
0评论
/
2253阅读
爱搜啊

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

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

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

11(1).png

本方案适用场合:在家里网络末端提供一台软路由,有线接入上级网络(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

基本设定

host IP: 192.168.1.254,  gateway: 192.168.1.1(OpenWRT)
container IP: 192.168.1.1,    gateway: DHCP from upstream

ARMBIAN设置

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 网络设置

# vi /etc/network/interfaces

...

iface eth0 inet dhcp

    up ip link set eth0 promisc on

....

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

auto  br-lan

iface br-lan inet static

    address 192.168.1.254

    netmask 255.255.255.0

    gateway 192.168.1.1

    dns-nameservers 192.168.1.1

    bridge_ports wlan0

3 启动WiFi(2.4G)

# vi /etc/default/hostapd

...

DAEMON_CONF="/etc/hostapd.conf"

...

# vi /etc/hostapd.conf

...

interface=wlan0

...

bridge=br-lan

driver=nl80211

...

4 N1重启后,新建container与配套网络

# 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
# docker run -d --name N1 --network lanet --privileged openwrt:18.06.2 /sbin/init
# docker network create -d macvlan -o parent=eth0 wanet
# docker network connect wanet N1
# docker exec -it N1 sh

Container(OpenWRT)设置

网络设置

# vi /etc/config/network

...

config interface 'wan'

        option ifname 'eth1'

        option proto 'dhcp'

config interface 'wan6'

        option ifname '@wan'

        option proto 'dhcpv6'

ARMBIAN设置

1 重启N1后,手工启动container

# docker start N1

2 更换缺省路由到OpenWRT,确认网络环境正常: 手机可以看到N1放出的ARMBIAN 无线信号,用密码 12345678 登入后应能正常上网。网络设置里可以看到gateway为192.168.1.1

确认一切正常?设置container自动重启

# 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 访问路由器。

原文:https://www.right.com.cn/forum/thread-757154-1-1.html


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-02-07发布