Revised networking and docker macvlan usage

This commit is contained in:
bergware
2023-08-08 15:12:24 +02:00
parent 29ebdd8a9c
commit 9f45678748
2 changed files with 19 additions and 16 deletions
+2 -1
View File
@@ -398,7 +398,8 @@ start_network(){
[[ -n $RANGE ]] && SERVER="--aux-address=server=${R4%/*}" || SERVER="--aux-address=server=${SHIM_HIGH%/*}"
fi
fi
docker network create -d $ATTACH $SUBNET $GATEWAY $SERVER $RANGE $SUBNET6 $GATEWAY6 $SERVER6 $RANGE6 -o parent=${ATTACH}${NETWORK//[^0-9.]/} $NETWORK | xargs docker network inspect -f 'created network {{.Name}} with subnets: {{range .IPAM.Config}}{{.Subnet}}; {{end}}' 2>/dev/null | logger -t $(basename $0)
VHOST=vhost${NETWORK//[^0-9.]/}
docker network create -d $ATTACH $SUBNET $GATEWAY $SERVER $RANGE $SUBNET6 $GATEWAY6 $SERVER6 $RANGE6 -o parent=$VHOST $NETWORK | xargs docker network inspect -f 'created network {{.Name}} with subnets: {{range .IPAM.Config}}{{.Subnet}}; {{end}}' 2>/dev/null | logger -t $(basename $0)
# connect containers to this new network
for CONNECT in ${NETRESTORE[$NETWORK]}; do
THIS_ID=${CONNECT%,*}
+17 -15
View File
@@ -252,34 +252,36 @@ vlan_down(){
done
}
# function to create macvlan interfaces
macvlan_up(){
PARENT=${IFNAME[$i]}
[[ -n ${BONDNICS[$i]} ]] && PARENT=${BONDNAME[$i]}
[[ -n ${BRNICS[$i]} ]] && PARENT=${BRNAME[$i]}
MACVLAN=macvlan${PARENT//[^0-9]/}
run ip link add link $PARENT name $MACVLAN type macvlan mode bridge
set_mtu $MACVLAN
run ip link set $MACVLAN up 2>/dev/null
VHOST=vhost${PARENT//[^0-9]/}
run ip link add link $PARENT name $VHOST type macvlan mode bridge
set_mtu $VHOST
run ip link set $VHOST up 2>/dev/null
for ((j=1;j<${VLANS[$i]:-0};j++)); do
VLAN=${VLANID[$i,$j]}
run ip link add link $PARENT.$VLAN name $MACVLAN.$VLAN type macvlan mode bridge
set_mtu $MACVLAN.$VLAN
run ip link set $MACVLAN.$VLAN up 2>/dev/null
run ip link add link $PARENT.$VLAN name $VHOST.$VLAN type macvlan mode bridge
set_mtu $VHOST.$VLAN
run ip link set $VHOST.$VLAN up 2>/dev/null
done
}
# function to delete macvlan interfaces
macvlan_down(){
PARENT=${IFNAME[$i]}
[[ -n ${BONDNICS[$i]} ]] && PARENT=${BONDNAME[$i]}
[[ -n ${BRNICS[$i]} ]] && PARENT=${BRNAME[$i]}
MACVLAN=macvlan${PARENT//[^0-9]/}
VHOST=vhost${PARENT//[^0-9]/}
for ((j=1;j<${VLANS[$i]:-0};j++)); do
VLAN=${VLANID[$i,$j]}
run ip link set $MACVLAN.$VLAN down 2>/dev/null
run ip link del $MACVLAN.$VLAN 2>/dev/null
run ip link set $VHOST.$VLAN down 2>/dev/null
run ip link del $VHOST.$VLAN 2>/dev/null
done
run ip link set $MACVLAN down 2>/dev/null
run ip link del $MACVLAN 2>/dev/null
run ip link set $VHOST down 2>/dev/null
run ip link del $VHOST 2>/dev/null
}
# function to enable/disable ipv6 protocol per interface
@@ -304,7 +306,7 @@ ipv6_conf(){
# function to enable/disable ipv6 assignment per interface
ipv6_addr(){
ipv6_ra $IFACE $1 $2
ipv6_ra macvlan${IFACE//[^0-9.]} $1 $2
ipv6_ra vhost${IFACE//[^0-9.]} $1 $2
# repeat action on related interfaces
if [[ ${IFACE:0:4} == bond ]]; then
ipv6_conf bond br eth $1 $2
@@ -321,7 +323,7 @@ ipaddr_up(){
# disable IPv6 per interface when IPv4 only
[[ $IP == ipv4 ]] && DISABLE6=1 || DISABLE6=0
echo $DISABLE6 >$CONF6/$IFACE/disable_ipv6
echo $DISABLE6 >$CONF6/macvlan${IFACE//[^0-9.]}/disable_ipv6
echo $DISABLE6 >$CONF6/vhost${IFACE//[^0-9.]}/disable_ipv6
# repeat action on related interfaces
if [[ ${IFACE:0:4} == bond ]]; then
ipv6_up bond br eth $DISABLE6
@@ -390,7 +392,7 @@ ipaddr_conf(){
ipaddr_flush(){
run ip -$1 addr flush dev $IFACE
run ip -$1 route flush dev $IFACE
run ip -$1 addr flush dev macvlan${IFACE//[^0-9.]}
run ip -$1 addr flush dev vhost${IFACE//[^0-9.]}
if [[ ${IFACE:0:4} == bond ]]; then
ipaddr_conf bond br eth $1
elif [[ ${IFACE:0:2} == br ]]; then