GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - trouver les hits de la route par défaut

Le cache de routage Linux pour IPv4 a été supprimé dans Linux 3.6 (ne laissant que l'utilisation d'un LPC-trie optimisé). Il n'y a donc aucun moyen avec un système Linux avec un système d'exploitation postérieur à 2012 d'obtenir le cache de routage statistiques.

Un moyen facile de taguer l'utilisation de la route par défaut consiste à placer un domaine valeur sur cet itinéraire. Un paquet correspondant à cette route (plutôt qu'une route plus spécifique utilisant la même passerelle) sera identifié comme étant avec la valeur de domaine donnée. Donc, si la route par défaut était 192.0.2.1 via eth0 , l'itinéraire serait défini par exemple comme ceci :

ip route add default via 192.0.2.1 proto static realm 10

Ou vous pouvez modifier une route par défaut précédente (sans domaine) en remplaçant add avec change , sans interruption.

Cette balise de domaine peut ensuite être réutilisée au moins dans deux autres sous-systèmes réseau :tc filter ... route ou nft ... meta rtclassid de nftables .

Contrôle du trafic

tc est assez grossier et fonctionne généralement au niveau de l'interface. Le moyen le plus simple d'attacher un filtre est d'utiliser le prio qdisc, le plus simple des qdisc par classe. Ses propriétés prioritaires spécifiques ne seront pas réellement utilisées. Donc, en suivant l'exemple précédent :

tc qdisc add dev eth0 root handle 1: prio

Ajoutez maintenant le filtre avec une action vide (et avec un pref commande et un continuer contrôle pour autoriser des filtres similaires supplémentaires si nécessaire), juste pour avoir des statistiques dessus :

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

Désormais, chaque paquet IP correspondant au domaine de route 10 sera affiché dans les statistiques en utilisant tc -s filter show dev eth0 . Exemple :

# 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

Remarque :et ont tous deux été transférés les paquets d'origine locale correspondent, ce qui pourrait être un problème pour les mesures.

nfttables

nfttables ici ne sera pas utilisé pour faire n'importe quel type de pare-feu, mais juste pour incrémenter certains compteurs.

nfttables installe uniquement les crochets de netfilter demandés, plutôt que tous disponibles, ayant ainsi généralement une empreinte moindre que iptables . Ici, nous avons juste besoin d'une règle correspondant au domaine - c'est le rôle du rtclassid expression - avec un compteur dessus. S'il s'agit de paquets d'origine locale, utilisez simplement la sortie accrocher. Le hook de transfert ne correspondra qu'aux paquets transférés.

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

Ce qui donnerait par exemple plus tard :

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

La mise à zéro de la valeur n'est possible que si elle est stockée dans un objet nommé, le jeu de règles serait à la place (à charger avec nft -f file ):

table ip mystats {
    counter defaultroutecount { }

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

Alors nft list counters ou nft reset counters affichera (ou affichera et réinitialisera) son contenu.


Linux
  1. Comment utiliser FIND sous Linux

  2. Comment trouver un fichier sous Linux

  3. Linux - Le moyen portable d'obtenir l'adresse source de la route par défaut ?

  4. Comment trouver l'adresse IP de la passerelle par défaut sous Linux

  5. Commandes de recherche Linux

Comment trouver le nom d'hôte sous Linux

Commande Route sous Linux

Comment ajouter une route sous Linux

Comment trouver la dernière connexion sous Linux

Rechercher la commande sous Linux/UNIX

Route Exemples de commandes sous Linux