Back to Notes

pi macvlan setting

sudo docker network create -d macvlan
--subnet=192.168.1.0/24
--gateway=192.168.1.1
--ip-range 192.168.1.32/27
--aux-address 'host=192.168.1.63'
-o parent=eth0
pihole_macvlan

uka47@ukapi:~ $ sudo docker network create -d macvlan \

--subnet=192.168.1.0/24
--gateway=192.168.1.254
--ip-range 192.168.1.32/27
--aux-address 'host=192.168.1.63'
-o parent=eth0
pihole_macvlan

uka47@ukapi:~ $ sudo docker network connect --ip 192.168.1.62 pihole_macvlan pihole

如果pihole本机需要dhcp,需要让主机连接macvlan接口 uka47@ukapi:~ $ sudo ip link add mvlan0 link eth0 type macvlan mode bridge uka47@ukapi:~ $ sudo ip addr add 192.168.1.63/32 dev mvlan0 uka47@ukapi:~ $ sudo ip link set mvlan0 up uka47@ukapi:~ $ sudo ip route add 192.168.1.32/27 dev mvlan0 uka47@ukapi:~ $ sudo dhclient -r uka47@ukapi:~ $ sudo dhclient

macvlan接口持久化: sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd

配置10-mvlan0.netdev: sudo nano /etc/systemd/network/10-mvlan0.netdev [NetDev] Name=mvlan0 Kind=macvlan

[MACVLAN] Mode=bridge

配置10-mvlan0.network: sudo nano /etc/systemd/network/10-mvlan0.network [Match] Name=mvlan0

[Network] Address=192.168.1.63/32 # 静态 IP,用于与 Docker 容器通讯 DHCP=ipv4 # 启用 DHCP,获取动态 IP sudo [Route] Destination=192.168.1.32/27

[Link] MACAddress=62:f7:fc:99:f7:67 #更换成macvlan macaddress

配置eth0.network: sudo nano /etc/systemd/network/10-eth0.network [Match] Name=eth0

[Network] DHCP=no

sudo systemctl restart systemd-networkd

检查: ip addr show mvlan0 禁用其他网络管理工具: sudo systemctl disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl disable dhcpcd sudo systemctl stop dhcpcd

https://blog.oddbit.com/post/2018-03-12-using-docker-macvlan-networks/

禁用持久化接口(不删除); sudo systemctl stop systemd-networkd sudo mv /etc/systemd/network/10-mvlan0.network /etc/systemd/network/10-mvlan0.network.disabled sudo systemctl start systemd-networkd

彻底清除持久化接口: sudo rm /etc/systemd/network/10-mvlan0.netdev sudo rm /etc/systemd/network/10-mvlan0.network sudo systemctl restart systemd-networkd