GNU/Linux >> Znalost Linux >  >> Linux

Jaká metrika má v Linuxu trasu bez metriky?

Jsi si jistý svým prvním pozorováním? Co znamená ip route show nebo route -n ukázat pak? Změní se výsledek, když přidáte proto static v prvním případě?

Našel jsem alespoň dva zdroje, které výslovně říkají, že 0 je výchozí hodnota v Linuxu:

  • http://0pointer.de/lennart/projects/ifmetric/ :Výchozí metrika pro trasu v jádře Linuxu je 0, což znamená nejvyšší prioritu.
  • http://www.man7.org/linux/man-pages/man8/route.8.html :Pokud tato možnost není specifikována, metrika pro rodinu adres inet6 (IPv6) je výchozí '1' , pro inet (IPv4) je výchozí hodnota '0'. (pak naznačuje, že výchozí nastavení se může lišit při použití iproute2 ale analýza těchto zdrojů neukazuje, co to je)

K vyřešení by byl jistě zapotřebí hacker linuxového jádra.

Jakékoli výchozí nastavení je také jasně specifické pro operační systém. Tento článek (https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes ) například ukazuje, že systém Windows volí výchozí metriku na základě šířky pásma odkazu.


Vzhledem k tomu, že tyto trasy jsou v různých podsítích, je zde zahrnuto více než jen metrika. Pokud je původní provoz v podsíti 192.168.1.1, například a ve vaší směrovací tabulce je odpovídající nevýchozí trasa, pak se tato trasa bude shodovat prostřednictvím nejdelší shody předpony, než bude metrika vůbec zohledněna.

Za předpokladu, že jiná než výchozí trasa neodpovídá, pak by neměla být žádná metrika interpretován jádrem jako s metrikou 0, a tedy s nejvyšší prioritou. I když je to zjednodušený pohled, protože někteří směrovací démoni později převedou tuto výchozí metriku na jinou hodnotu, jako je 1024. Očekávám, že to je to, co se děje vám a vaší nejmenované distribuci.

Pokud ip route nezobrazuje vůbec žádnou metriku, můžete potvrdit, že je skutečně 0 pomocí staršího route -n příkaz z balíčku net-tools nebo cat /proc/net/route . Tento výstup však nemusí nutně odpovídat tomu, co bude směrovací démon interně používat, když narazí na hodnotu metriky 0.

Kromě toho záleží také na tom, jak vytvoříte trasu. ip route používá netlink API, zatímco route používá ioctl. Kód pro to, jak se mezi těmito dvěma přístupy vytvářejí výchozí metriky, vedou k různým hodnotám metrik. Například:vytvoření výchozí trasy IPv6 pomocí ip route výsledkem bude metrická hodnota 1024 na RHEL 7, zatímco vytvoříte stejnou trasu přes route výsledkem bude metrika 1.

Od RedHat:

  • pokud není příkazu route předáno nic jako metrika trasy, použije samotný příkaz hodnotu 1.
  • Pokud příkazu ip není nic předáno jako metrika trasy, atribut se vůbec nevytvoří a jádro jej chápe jako 0, což je později přeloženo 1024 jako výchozí.

Linux
  1. Co je nového s rdiff-backup?

  2. Co je Umask v Linuxu

  3. Co Linux dělá s existujícími soubory v přípojném bodě?

  1. Co je uživatel Linuxu?

  2. Flatpak na Linuxu:Co to je a jak s ním instalovat aplikace

  3. JQ Command v Linuxu s příklady

  1. Nainstalujte Linux pomocí LVM

  2. Nahradit du prachem v Linuxu

  3. Linux – Suid nemá žádný vliv na adresáře s Linuxem?