I have several Ethernet interfaces with IPv4 Link-Local addresses, which means I have multiple routes to 169.254.0.0/16
on different interfaces. (Those interfaces are not necessarily on the same layer 2 network, so the same IP in this range can be used by different systems on different interfaces.)
When sending a UDP packet to an address in 169.254.0.0/16
I can't pick which interface will be used to send the packet using Rust's standard library UdpSocket
, but without specifying the interface it is very likely to use the wrong one.
How can I send a UDP packet from a specific interface?
(IPv6 Link-Local fe80::/64
has a similar problem, but SocketAddrV6
has a scope_id
which can be used to set the index of the interface to use).