La page de manuel d'iptables la définit comme "une adresse locale" mais est-ce que cela se réfère uniquement à la plage 127 (localhost) ou est-ce que cela inclut également 10, 169, 192 ?
Réponses
Trop de publicités?Je pense que la réponse selon laquelle addr-type LOCAL signifie loopback est fausse, car elle n'est qu'une réponse partielle et est extrêmement trompeuse. LOCAL signifie N'IMPORTE QUELLE IP assignée sur l'une des interfaces de l'hôte, y compris le loopback. Si vous dites que LOCAL est simplement 127.0.0.0/8 (comme sasanet l'a déclaré), alors vous le limitez à l'interface loopback, ce qui est tout simplement 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, l'IP va se référer à l'hôte lui-même. Si vous envoyez un curl ou un ping à l'IP publique assignée à l'une de ses interfaces, il est évident que l'hôte n'enverra pas le paquet, il le routera localement. Exemple :
ip address show 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à dit, il est évidemment sans importance que l'IP soit privée ou publique, tant qu'elle est assignée à l'interface réseau).
La terminologie "route locale" signifie que les paquets seront livrés "localement" à votre hôte, car la destination est assignée à l'une des interfaces de votre hôte. Il ne no seul moyen localhost
comme dans les adresses de bouclage (ni 169.254/16
dans le cas de "lien-local" adresses).
Linux utilise le protocole Netlink pour envoyer des messages entre l'espace du noyau et l'espace utilisateur. NETLINK_ROUTE
qui peut être utilisé pour recevoir des mises à jour de routage, modifier les adresses des interfaces, etc. . Par exemple, le 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 site rtnetlink(7)
page man décrit RTN_LOCAL
comme :
rtm_type Route type
RTN_LOCAL a local interface route
Rien de tout cela n'est très clair lorsqu'on le lit, et les meilleures références que j'ai pu trouver sont les suivantes divers Internet sources Il est donc compréhensible qu'il y ait une certaine confusion.
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/