GNU/Linux >> Linux Esercitazione >  >> Linux

iptables:cosa significa esattamente --src-type LOCAL?

Credo che la risposta che addr-type LOCAL significhi loopback sia sbagliata, perché è solo una risposta parziale ed è estremamente fuorviante.LOCAL significa QUALSIASI IP assegnato su una delle interfacce dell'host, incluso il loopback. Se dici che LOCAL è semplicemente 127.0.0.0/8 (come ha affermato sasanet), lo limiteresti all'interfaccia di loopback, il che è chiaramente sbagliato.

Inoltre, l'IP può anche essere instradabile e pubblico. Per l'host è irrilevante, perché dal suo punto di vista l'IP farà riferimento all'host stesso. Se esegui il curling o il ping all'ip pubblico assegnato su una delle sue interfacce, ovviamente non invierà il pacchetto, lo instraderà localmente.esempio:

indirizzo ip 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

(come già detto, è ovviamente irrilevante se l'ip è privato o pubblico, purché sia ​​assegnato all'interfaccia di rete)


Una buona spiegazione qui:http://security.maruhn.com/iptables-tutorial/x6330.html

Un'altra discussione a riguardo:http://www.linuxquestions.org/questions/linux-networking-3/wtf-addrtype-in-iptables-manpage-746659/


La terminologia "percorso locale" significa che i pacchetti verranno consegnati "localmente" al tuo host, poiché la destinazione è assegnata a una delle interfacce del tuo host. No significa solo localhost , come negli indirizzi di loopback (né 169.254/16 come negli indirizzi "link-local").

Linux utilizza il protocollo Netlink per inviare messaggi tra lo spazio del kernel e lo spazio utente:una delle famiglie Netlink in esso è NETLINK_ROUTE , che può essere utilizzato per ricevere aggiornamenti di routing, modificare indirizzi di interfaccia, etc . Ad esempio, il comando ip-route da iproute2 utilizza this.

Guardando il addrtype codice sorgente di iptables, vedrai riferimenti a linux/rtnetlink.h , che definisce RTN_LOCAL come tipo di messaggio. Il rtnetlink(7) pagina man descrive RTN_LOCAL come:

rtm_type          Route type
───────────────────────────────────────────────────────────
RTN_LOCAL         a local interface route

Niente di tutto questo sembra esattamente chiaro quando lo leggi, e alcuni dei migliori riferimenti che posso trovare sono fonti Internet varie, quindi è comprensibile il motivo per cui c'è confusione.


Linux
  1. Cosa significa "-" (doppio trattino)?

  2. Cosa significa nell'output di Ps?

  3. Cosa significa `chown Root.root $file`?

  4. Cosa significa "rm is hash"?

  5. Cosa fa esattamente init?

Cosa significa chmod 777

Cosa significa essere "sh compatibile"?

Nessuna variabile DISPLAY X11 - cosa significa?

Cosa significa \b in un pattern grep?

Cosa significa la capacità ep?

Cosa significa %st in alto?