Je crois que la réponse selon laquelle addr-type LOCAL signifie que le bouclage est fausse, car ce n'est qu'une réponse partielle et est extrêmement trompeuse. LOCAL signifie TOUTE IP attribuée sur l'une des interfaces de l'hôte, y compris le bouclage. Si vous dites que LOCAL est simplement 127.0.0.0/8 (comme sasanet l'a indiqué), alors vous le limiterez à l'interface de bouclage, ce qui est tout à fait faux.
De plus, l'IP peut même être routable et publique. Pour l'hôte, cela n'a pas d'importance, car de son point de vue, IP va faire référence à l'hôte lui-même. Si vous effectuez une boucle ou un ping vers l'adresse IP publique attribuée à l'une de ses interfaces, il n'enverra évidemment pas le paquet, il l'acheminera localement.exemple :
adresse ip afficher dev eth0 :
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 0a:e7:8b:89:d5:f4 brd ff:ff:ff:ff:ff:ff
inet 172.31.20.254/20 brd 172.31.31.255 scope global dynamic eth0
valid_lft 3110sec preferred_lft 3110sec
ip route show table local :
local 172.31.20.254 dev eth0 proto kernel scope host src 172.31.20.254
(comme déjà indiqué, peu importe si l'adresse IP est privée ou publique, tant qu'elle est attribuée à l'interface réseau)
Très bonne explication ici :http://security.maruhn.com/iptables-tutorial/x6330.html
Une autre discussion à ce sujet :http://www.linuxquestions.org/questions/linux-networking-3/wtf-addrtype-in-iptables-manpage-746659/
La terminologie "route locale" signifie que les paquets seront livrés "localement" à votre hôte, car la destination est attribuée à l'une des interfaces de votre hôte. Ce n'est pas signifie seulement localhost
, comme dans les adresses de bouclage (ni 169.254/16
comme dans les adresses "link-local").
Linux utilise le protocole Netlink pour envoyer des messages entre l'espace noyau et l'espace utilisateur - l'une des familles Netlink est NETLINK_ROUTE
, qui peut être utilisé pour recevoir des mises à jour de routage, modifier les adresses d'interface, etc . Par exemple, la commande ip-route de iproute2 utilise ceci.
En regardant le addrtype
code source d'iptables, vous verrez des références à linux/rtnetlink.h
, qui définit RTN_LOCAL
comme type de message. Le rtnetlink(7)
la page de manuel décrit RTN_LOCAL
comme :
rtm_type Route type
───────────────────────────────────────────────────────────
RTN_LOCAL a local interface route
Rien de tout cela ne semble vraiment clair lorsque vous lisez à ce sujet, et certaines des meilleures références que je peux trouver sont des sources Internet diverses, il est donc compréhensible qu'il y ait confusion.