Files
configpolicy/roles/net-ifaces/files/vmhost0.pyrocufflink.blue.sh
Dustin C. Hatch ceb56edf06 roles/net-ifaces: Create bridges for mgmt and hass
This commit updates the net-ifaces scripts for both *vmhost0* and
*vmhost1* to create VLAN and bridge interfaces for the Management and
Home Assistant networks.
2019-03-22 09:29:56 -05:00

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 30 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