mirror of
https://github.com/unraid/webgui.git
synced 2026-04-28 22:09:24 -05:00
Revised networking and docker macvlan usage
This commit is contained in:
+2
-1
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user