(七)armbian双网卡采用桥接方式安装docker openwrt示例 - ch0769/luyou GitHub Wiki
armbian双网卡采用桥接方式安装docker openwrt示例:
-
网络模式概述 在eth0上创建桥接br0, 用于lan网段 192.168.60.x 在eth1上创建桥接br1, 用于wan网段 192.168.50.x (上级路由LAN网段) docker 创建两个bridge网络分别对应linux的br0和br1,名字也叫br0和br1 请分清: 前者是操作系统级别的bridge,后者是docker级别的bridge,只是名称相同而己(也可以不同)
-
操作系统级别: 1) 系统准备 修改/etc/sysctl.conf 必须有下面这一条 net.ipv4.ip_forward = 1 修改后sysctl -p 生效
另外需要关闭NetworkManager服务 systemctl disable NetworkManager systemctl stop NetworkManager
- armbian (debian) 分别创建 /etc/network/interfaces.d/br0 /etc/network/interfaces.d/br1 两个配置文件 /etc/network/interfaces.d/br0: allow-hotplug eth0 iface eth0 inet manual pre-up ifconfig $IFACE up pre-down ifconfig $IFACE down
auto br0 iface br0 inet static bridge_ports eth0 bridge_stp off # disable Spanning Tree Protocol bridge_waitport 0 # no delay before a port becomes available bridge_fd 0 # no forwarding delay address 192.168.60.32 netmask 255.255.255.0
存盘退出
/etc/network/interfaces.d/br1: allow-hotplug eth1 iface eth1 inet manual pre-up ifconfig $IFACE up pre-down ifconfig $IFACE down
auto br1 iface br1 inet static bridge_ports eth1 bridge_stp off # disable Spanning Tree Protocol bridge_waitport 0 # no delay before a port becomes available bridge_fd 0 # no forwarding delay address 192.168.50.32 netmask 255.255.255.0 gateway 192.168.50.1 dns-nameservers 192.168.50.1 dns-nameservers 114.114.114.114
存盘退出 重启armbian,电脑网线接lan口,需要设置静态ip 192.168.60.x , 不要使用192.168.60.32和192.168.60.33两个IP 另外,USB网卡接上级路由,wan网段 192.168.50.32 192.168.50.33不要被其它设备占用
- docker创建br0和br1网络
docker network create
-d bridge
--ip-range=192.168.60.32/30
--subnet=192.168.60.0/24
-o "com.docker.network.bridge.name=br0" br0
docker network create
-d bridge
--ip-range=192.168.50.32/30
--subnet=192.168.50.0/24
--gateway=192.168.50.1
-o "com.docker.network.bridge.name=br1" br1
- docker 创建 beikeyun容器
source /usr/lib/armbian/armbian-common
get_random_mac echo $MACADDR
这时应该有一个随机的MAC地址出现,如果不喜欢,可以重新get_random_mac
docker create --name beikeyun
--restart always
--network br0
--mac-address $MACADDR
--privileged=true
--ulimit nofile=16384:65536
openwrt-arm64:r9.8.17
docker network connect br1 beikeyun
docker start beikeyun
-
docker exec -it beikeyun sh vi /etc/config/network 把lan口地址 192.168.1.1 改为 192.168.60.33 存盘退出 /etc/init.d/network restart 之后,就可以用192.168.60.33访问openwrt了 进入接口->LAN->物理设置,把桥接的勾取消 进入接口->WAN->设置上网模式,默认是dhcp,建议改成静态ip: 192.168.50.33, 并设置网关、dns等, 不改也可以,只要能连通上级路由器就行 如果上级是光猫,则这里就改成pppoe拨号的相关设置
-
添加防火墙规则 iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADE
-
电脑端改回自动ip,应该就可以正常上网了
8.总结
桥接模式比macvlan模式更容易调试,也比较稳定,而且armbian与docker容器之间的网络是可以互通的,
缺点是性能比macvlan模式稍弱,
本例中总共有4个ip地址一定要分清:
armbian:
192.168.50.32 (wan)
192.168.60.32 (lan)
docker_openwrt:
192.168.50.33 (wan)
192.168.60.33 (lan)