Booted the bare Talos 1.5.3 ISO in a VMWare Workstation VM configured for two NICs bridged directly to home network. The way VMWare creates NICs does not appear to allow for 802.3ad bond mode, so I tested with active-backup.
Prior to any configuration, two NICs are shown each with separate IPs:
$ talosctl get links -n 192.168.1.108 --insecure
NODE NAMESPACE TYPE ID VERSION TYPE KIND HW ADDR OPER STATE LINK STATE
network LinkStatus bond0 1 ether bond 5e:4a:f6:ca:d9:60 down false
network LinkStatus dummy0 1 ether dummy 76:f9:21:3a:30:79 down false
network LinkStatus eno16777736 4 ether 00:0c:29:23:30:1b up true
network LinkStatus eno33554960 4 ether 00:50:56:3c:13:b3 up true
network LinkStatus ip6tnl0 1 tunnel6 ip6tnl 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 down false
network LinkStatus lo 2 loopback 00:00:00:00:00:00 unknown true
network LinkStatus sit0 1 sit sit 00:00:00:00 down false
network LinkStatus teql0 1 void down false
network LinkStatus tunl0 1 ipip ipip 00:00:00:00 down false
$ talosctl get addresses -n 192.168.1.108 --insecure
NODE NAMESPACE TYPE ID VERSION ADDRESS LINK
network AddressStatus eno16777736/192.168.1.108/24 1 192.168.1.108/24 eno16777736
network AddressStatus eno16777736/fe80::20c:29ff:fe23:301b/64 2 fe80::20c:29ff:fe23:301b/64 eno16777736
network AddressStatus eno33554960/192.168.1.110/24 1 192.168.1.110/24 eno33554960
network AddressStatus eno33554960/fe80::250:56ff:fe3c:13b3/64 2 fe80::250:56ff:fe3c:13b3/64 eno33554960
network AddressStatus lo/127.0.0.1/8 1 127.0.0.1/8 lo
network AddressStatus lo/::1/128 1 ::1/128 lo
Created a machine config with the following network block, matching the MACs shown in get links
above:
network:
interfaces:
- interface: bond0
dhcp: true
bond:
mode: active-backup
deviceSelectors:
- hardwareAddr: '00:0c:29:23:30:1b'
- hardwareAddr: '00:50:56:3c:13:b3'
vip:
ip: 192.168.1.240
After applying the configuration, the NICs appear to be enslaved as expected and address is only shown on bond0:
$ talosctl get links -n 192.168.1.108
NODE NAMESPACE TYPE ID VERSION TYPE KIND HW ADDR OPER STATE LINK STATE
192.168.1.108 network LinkStatus bond0 4 ether bond 00:0c:29:23:30:1b up true
192.168.1.108 network LinkStatus dummy0 1 ether dummy 76:0b:06:9c:0b:46 down false
192.168.1.108 network LinkStatus eno16777736 4 ether 00:0c:29:23:30:1b up true
192.168.1.108 network LinkStatus eno33554960 4 ether 00:0c:29:23:30:1b up true
192.168.1.108 network LinkStatus ip6tnl0 1 tunnel6 ip6tnl 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 down false
192.168.1.108 network LinkStatus lo 2 loopback 00:00:00:00:00:00 unknown true
192.168.1.108 network LinkStatus sit0 1 sit sit 00:00:00:00 down false
192.168.1.108 network LinkStatus teql0 1 void down false
192.168.1.108 network LinkStatus tunl0 1 ipip ipip 00:00:00:00 down false
$ talosctl get addresses -n 192.168.1.108
NODE NAMESPACE TYPE ID VERSION ADDRESS LINK
192.168.1.108 network AddressStatus bond0/192.168.1.108/24 1 192.168.1.108/24 bond0
192.168.1.108 network AddressStatus bond0/fe80::20c:29ff:fe23:301b/64 2 fe80::20c:29ff:fe23:301b/64 bond0
192.168.1.108 network AddressStatus lo/127.0.0.1/8 1 127.0.0.1/8 lo
192.168.1.108 network AddressStatus lo/::1/128 1 ::1/128 lo
After issuing talosctl bootstrap
, the VIP (192.168.1.240) is also added to the bond0 interface as expected:
$ talosctl get addresses -n 192.168.1.108
NODE NAMESPACE TYPE ID VERSION ADDRESS LINK
192.168.1.108 network AddressStatus bond0/192.168.1.108/24 1 192.168.1.108/24 bond0
192.168.1.108 network AddressStatus bond0/192.168.1.240/32 1 192.168.1.240/32 bond0
192.168.1.108 network AddressStatus bond0/fe80::20c:29ff:fe23:301b/64 2 fe80::20c:29ff:fe23:301b/64 bond0
192.168.1.108 network AddressStatus lo/127.0.0.1/8 1 127.0.0.1/8 lo
192.168.1.108 network AddressStatus lo/::1/128 1 ::1/128 lo