|
本帖最后由 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。
基本设定- 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
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 访问路由器。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|