#!/bin/sh set -e add_slave() { local master=$1 local slave=$2 ip link set ${slave} down echo +${slave} > /sys/class/net/${master}/bonding/slaves ip link set ${slave} up } make_bond() { local bond=$1 local mode=${2:-802.3ad} if [ ! -d /sys/module/bonding ]; then modprobe bonding fi echo +${bond} > /sys/class/net/bonding_masters echo ${mode} > /sys/class/net/${bond}/bonding/mode echo 100 > /sys/class/net/${bond}/bonding/miimon } make_bridge() { local bridge=$1 local phy=$2 ip link add ${bridge} type bridge ip link set ${phy} master ${bridge} ip link set ${bridge} up } make_vlan() { local id=$1 local phy=$2 ip link add link ${phy} name vlan${id} type vlan id ${id} } # VM Network make_bond bond0 add_slave bond0 enp10s0f0 add_slave bond0 enp10s0f1 make_vlan 10 bond0 # Management make_vlan 1 bond0 # pyrocufflink.blue make_vlan 99 bond0 # Home Assistant make_vlan 101 bond0 # pyrocufflink.red ip link set bond0 up make_bridge br0 vlan30 make_bridge br1 vlan101 make_bridge mgmt vlan10 make_bridge hass vlan99 # Storage Network make_bond bond1 add_slave bond1 enp8s0f0 add_slave bond1 enp8s0f1 ip link set bond1 mtu 9000