configpolicy/roles/net-ifaces/files/vmhost0.pyrocufflink.blue.sh

68 lines
1.2 KiB
Bash

#!/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