GNU/Linux >> Znalost Linux >  >> Linux

Linux - najít přístupy výchozí trasy

Směrovací mezipaměť linuxu pro IPv4 byla v Linuxu 3.6 odstraněna (ponechává pouze použití optimalizovaného LPC-trie). U systému Linux s operačním systémem po roce 2012 tedy neexistuje způsob, jak získat směrovací mezipaměť statistiky.

Snadný způsob označení výchozí trasa se používá k umístění říše hodnotu na této trase. Paket odpovídající této trase (spíše než specifičtější cesta používající stejnou bránu) bude identifikován jako s danou hodnotou sféry. Pokud by tedy výchozí cesta byla 192.0.2.1 přes eth0 , bude trasa nastavena například takto:

ip route add default via 192.0.2.1 proto static realm 10

Nebo můžete změnit předchozí výchozí cestu (bez sféry) nahrazením add s change , bez přerušení.

Tato značka sféry pak může být znovu použita alespoň ve dvou dalších síťových subsystémech:tc filter ... route nebo nft ... meta rtclassid nftables .

Řízení dopravy

tc je docela hrubý a obvykle pracuje na úrovni rozhraní. Nejjednodušší způsob, jak připojit filtr, je použít prio qdisc, nejjednodušší třída qdisc. Jeho specifické prioritní vlastnosti nebudou ve skutečnosti použity. Takže postupujte podle předchozího příkladu:

tc qdisc add dev eth0 root handle 1: prio

Nyní přidejte filtr s prázdnou akcí (a s předvolbou objednávku a pokračovat ovládací prvek, který v případě potřeby povolí další podobné filtry), jen abyste o něm měli statistiky:

tc filter add dev eth0 parent 1: protocol ip pref 1 route to 10 action continue

Nyní bude každý ip paket odpovídající říši trasy 10 zobrazen ve statistikách pomocí tc -s filter show dev eth0 . Příklad:

# tc -s filter show dev eth0
filter parent 1: protocol all pref 1 route chain 0 
filter parent 1: protocol all pref 1 route chain 0 fh 0xffff000a to 10 
    action order 1: gact action continue
     random type none pass val 0
     index 1 ref 1 bind 1 installed 48 sec used 4 sec
    Action statistics:
    Sent 12230 bytes 79 pkt (dropped 0, overlimits 0 requeues 0) 
    backlog 0b 0p requeues 0

Poznámka:přeposláno a lokálně vytvořené pakety se shodují, což může být problém pro měření.

nftables

nftables zde nebude použit k provádění jakéhokoli druhu firewallu, ale pouze ke zvýšení některých čítačů.

nftables instaluje pouze požadované háčky netfilteru, nikoli všechny dostupné, takže má obvykle menší nároky než iptables . Zde potřebujeme pouze pravidlo odpovídající oblasti – to je role rtclassid výraz - s počítadlem na něm. Pokud je to pro lokálně vytvořené pakety, pak stačí použít výstup háček. Dopředný hák bude odpovídat pouze přeposlaným paketům.

nft add table ip mystats
nft add chain ip mystats forward '{ type filter hook forward priority 0; policy accept; }'
nft add rule ip mystats forward meta rtclassid 10 counter

Což by například později dalo:

# nft list ruleset
table ip stats {
    chain forward {
        type filter hook forward priority filter; policy accept;
        meta rtclassid 10 counter packets 1453 bytes 118264
    }
}

Vynulování hodnoty je možné pouze v případě uložení do pojmenovaného objektu, namísto toho by byla sada pravidel (pro načtení s nft -f file ):

table ip mystats {
    counter defaultroutecount { }

    chain forward {
        type filter hook forward priority filter; policy accept;
        meta rtclassid 10 counter name "defaultroutecount"
    }
}

Potom nft list counters nebo nft reset counters zobrazí (nebo zobrazí a resetuje) jeho obsah.


Linux
  1. Jak najít soubor v Linuxu

  2. Linux – přenosný způsob, jak získat výchozí zdrojovou adresu trasy?

  3. Příkazy hledání pro Linux

  1. Jak používat FIND v Linuxu

  2. najdete příklady příkazů v Linuxu

  3. Linux zjistí Hyper-threaded core id

  1. Jak najít soubory v Linuxu

  2. Jak najít výchozí IP bránu v Linuxu

  3. Zjistěte osiřelé procesy Linuxu