siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.64k stars 531 forks source link

IP Multipath support #4320

Closed sergelogvinov closed 3 years ago

sergelogvinov commented 3 years ago

I've got a bag.

[  859.331626] [talos] controller failed {"component": "controller-runtime", "controller": "network.RouteSpecController", "error": "2 errors occurred:\n\t* error adding route: netlink receive: network is unreachable, message {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:0 Protocol:3 Scope:0 Type:1 Flags:0 Attributes:{Dst:<nil> Src:141.1.1.2 Gateway:141.1.2.1 OutIface:4 Priority:1024 Table:254 Mark:0 Expires:<nil> Metrics:<nil> Multipath:[]}}\n\t* error adding route: netlink receive: network is unreachable, message {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:0 Protocol:4 Scope:0 Type:1 Flags:0 Attributes:{Dst:<nil> Src:<nil> Gateway:141.1.2.1 OutIface:4 Priority:1025 Table:254 Mark:0 Expires:<nil> Metrics:<nil> Multipath:[]}}\n\n"}

dhcp params:

lease {
  interface "eth0";
  fixed-address 141.1.1.2;
  option subnet-mask 255.255.255.255;
  option routers 141.1.2.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 1.1.1.1;
  option dhcp-server-identifier 141.1.2.1;
  option interface-mtu 1500;
  option domain-name "openstacklocal";
  renew 0 2021/10/03 01:47:56;
  rebind 0 2021/10/03 12:26:33;
  expire 0 2021/10/03 15:26:33;
}

to up this route, Talos needs to pass special NextHop params (onlink):

ip route add default via 141.1.2.1 onlink dev eth0
smira commented 3 years ago

I believe we need to add link route for the gateway here.