68 lines
1.2 KiB
Bash
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
|