diff --git a/.env b/.env index 1bc1f76..0d98ff8 100644 --- a/.env +++ b/.env @@ -3,9 +3,11 @@ CONTAINER=openwrt_1 # docker network settings NET_NAME=openwrt_net -NET_SUBNET=192.168.99.0/24 -NET_ADDR=192.168.99.2 -NET_GW=192.168.99.1 +NET_PARENT=enp0s20f0u4 +NET_SUBNET=192.168.12.0/24 +NET_ADDR=192.168.12.4 +NET_GW=192.168.12.1 +NET_HOST=192.168.12.3 # openwrt doesn't accept CIDR notation; must match NET_SUBNET NET_NETMASK=255.255.255.0 diff --git a/run.sh b/run.sh index a64e8fa..bfd3c0b 100755 --- a/run.sh +++ b/run.sh @@ -57,11 +57,17 @@ function _cleanup { function _create_or_start_container { echo "* setting up docker network" - docker network create --driver bridge \ + docker network create --driver macvlan \ + -o parent=$NET_PARENT \ --gateway $NET_GW \ --subnet $NET_SUBNET \ $NET_NAME 2>/dev/null + sudo ip link add macvlan0 link $NET_PARENT type macvlan mode bridge + sudo ip addr add $NET_HOST/24 dev macvlan0 + sudo ip link set macvlan0 up + sudo ip route add $NET_ADDR/32 dev macvlan0 + docker inspect $CONTAINER >/dev/null 2>&1 if [[ $? -eq 0 ]]; then echo "* starting container '$CONTAINER'"