Je nějaký vysvětlující článek o klíčových slovech via a nexthop pro route?
Nějak nerozumím xyzvia 192.168.1.1 dev enp0s3 i když jsem četl man.
Když se k tomu přidá nexthop a src už je to celkem guláš. Src chápu.
u toho via nerozumím jestli to posílá na rozhraní 192.168.1.1 nebo na enp0s3 nebo daná adresa je na enp0s3 a proč se tam tedy uvádí obojít.
Směrovací tabulka slouží k rozhodnutí, kam se daný provoz (paket) pošle. Obvykle se rozhoduje podle cílové sítě, tedy podle jejího prefixu. Pokud není cílová síť přímo dostupná (nejsme její součástí), musí být zvoleno odchozí rozhraní (dev) a také sousední směrovač (via, což je nexthop), kterému ten paket pošleme.
Čili odpověď zní: posílá se ven místním rozhraním enp0s3 na stroj s IP adresou 192.168.1.1. Samozřejmě to znamená, že se pro tu IP adresu musí nejdřív pomocí ARP (nebo ND v IPv6) zjistit odpovídající MAC adresa a pak se sestaví rámec se správnou cílovou MAC a do něj se zabalí ten paket, který chceme odeslat do světa. Pak se to celé vyšle na enp0s3. Je to takhle jasné?
Dobré vysvětlení, pochopel jsem to i z následujícího stackoverflow threadu. Zapomněl jsem na to, že pro odeslání paketu je potřeba znát MAC adresu.
přesto by mě zajímalo
použití nexthop... podle násedujícího předpisu
ROUTE := NODE_SPEC [ INFO_SPEC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ] ...
NH := [ encap ENCAP ] [ via [ FAMILY ] ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
Příklad je i dokonce i v této diskuzi o balancování ISP
## https://lartc.org/howto/lartc.rpdb.multiple-links.html
##ip route add default via ${ISP1_ROUTER_IP}
ip route add default scope global \
nexthop via ${ISP1_ROUTER_IP} dev ${ISP1_IFACE} weight 1 \
nexthop via ${ISP2_ROUTER_IP} dev ${ISP2_IFACE} weight 1
(První nemá nexthop, druhý ano)
vlákno stack overflowa příslušný obrázek
13. 2. 2022, 17:26 editováno autorem komentáře