Physical Routing Configuration
Each node has a similar, but slightly different interface and routing configuration. Here is a walkthrough of the /etc/network/interfaces
of r710-0
.
auto lo
iface lo inet loopback
iface enp5s0f0 inet manual
iface enp5s0f1 inet manual
iface eno1 inet manual
mtu 9000
iface eno2 inet manual
mtu 9000
iface eno3 inet manual
mtu 9000
iface eno4 inet manual
mtu 9000
First, interfaces are defined. Shamrock uses an MTU of 9000 (to allow for jumbo packets) on its physical NICs for internal networks. All interfaces are set to manual
because they are attached to bridges, so that they have the possibility to be bridged to VMs on the host.
auto vmbr0
iface vmbr0 inet static
address 192.168.0.20/24
gateway 192.168.0.1
bridge-ports enp5s0f0
bridge-stp off
bridge-fd 0
This creates bridge vmbr0
, with enp5s0f0
as a bridge port. As described in Physical Configuration.
enp5sf0
is connected to the internet, so vmbr0
is used as the WAN interface for virtual routers.
auto vmbr1
iface vmbr1 inet static
address 10.83.86.10/24
up ip route add 10.83.86.11/32 dev vmbr1
down ip route del 10.83.86.11/32
bridge-ports eno1
bridge-stp off
bridge-fd 0
mtu 9000
auto vmbr2
iface vmbr2 inet static
address 10.83.86.10/24
up ip route add 10.83.86.12/32 dev vmbr2
down ip route del 10.83.86.12/32
bridge-ports eno2
bridge-stp off
bridge-fd 0
mtu 9000
This creates bridges vmbr1
and vmbr2
, which respectively have ports eno1
and eno2
. The reason that there are two seperate bridges for this network is so that per-port static routing works correctly.
Additionally, there are static routes that define routing to the other nodes in the cluster.
vmbr1
and vmbr2
are currently unused as VM/LXC bridges.
This static routing configuration is similar to the one described on the Proxmox VE Wiki. There are some differences, such as the use of bridges.
auto vmbr3
iface vmbr3 inet static
address 10.83.67.10/24
up ip route add 10.83.67.11/32 dev vmbr3
down ip route del 10.83.67.11/32
up ip route add 10.83.67.131/32 dev vmbr3
down ip route del 10.83.67.131/32
up ip route add 10.83.67.130/32 dev vmbr3
bridge-ports eno3
bridge-stp off
bridge-fd 0
mtu 9000
auto vmbr4
iface vmbr4 inet static
address 10.83.67.10/24
up ip route add 10.83.67.12/32 dev vmbr4
down ip route del 10.83.67.12/32
up ip route add 10.83.67.132/32 dev vmbr4
down ip route del 10.83.67.132/32
bridge-ports eno4
bridge-stp off
bridge-fd 0
mtu 9000
This creates bridges vmbr3
and vmbr4
, which respectively have ports eno3
and eno4
. The configuration is similar to that of the vmbr1
vmbr2
network, but with additional static routes defined to ensure correct routing to each of the three (3) Kubernetes VMs.
Since eno3
and eno4
are connected to the Ceph network, vmbr3
and vmbr4
are added to all three (3) of the Kubernetes nodes.
auto vmbr5
iface vmbr5 inet static
address 10.83.87.10/24
bridge-ports none
bridge-stp off
bridge-fd 0
mtu 9000
The creates bridge vmbr5
, which is specially created so that a proxy LXC container can access services on the Proxmox VE node such as the Proxmox web UI, Ceph Dashboard, and RADOS Gateway. As a consequence it does not have any ports.
Since vmbr5
allows access to some node services, it is bound to the proxy container of each node.
source /etc/network/interfaces.d/*
This line is added to enable the auto-generated interfaces of Software Defined Networking.