11 votes

iptables : que signifie exactement "--src-type LOCAL" ?

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 ?

19voto

Derrick Bell Points 2387

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).

6voto

invsblduck Points 31

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.

3voto

-2voto

RichardOD Points 19942

-m addr-type LOCAL est le 127.0.0.0/8 -réseau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X