Věřím, že odpověď typu addr LOCAL znamená zpětnou smyčku je špatná, protože je to pouze částečná odpověď a je extrémně zavádějící. LOCAL znamená JAKOUKOLIV IP přiřazenou na jednom z rozhraní hostitele, včetně zpětné smyčky. Pokud řeknete, že LOCAL je prostě 127.0.0.0/8 (jak uvedl sasanet), pak byste to omezili na rozhraní zpětné smyčky, což je zcela špatně.
Navíc IP může být dokonce směrovatelná a veřejná. Pro hostitele je to irelevantní, protože z jeho pohledu bude IP odkazovat na samotného hostitele. Pokud stočíte nebo pingnete na veřejnou ip přiřazenou na jednom z jeho rozhraní, paket zjevně neodešle, ale nasměruje ho lokálně. příklad:
ip adresa 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
(jak již bylo uvedeno, je zjevně irelevantní, zda je ip soukromá nebo veřejná, pokud je přiřazena k síťovému rozhraní)
Docela dobré vysvětlení zde:http://security.maruhn.com/iptables-tutorial/x6330.html
Další diskuze o tom:http://www.linuxquestions.org/questions/linux-networking-3/wtf-addrtype-in-iptables-manpage-746659/
Terminologie "místní cesta" znamená, že pakety budou doručeny "lokálně" vašemu hostiteli, protože cíl je přiřazen jednomu z rozhraní vašeho hostitele. není znamená pouze localhost
, jako u adres zpětné smyčky (ani 169.254/16
jako v "místních odkazech" adres).
Linux používá protokol Netlink k odesílání zpráv mezi prostorem jádra a uživatelským prostorem – jedna z rodin Netlink v něm je NETLINK_ROUTE
, které lze použít k přijímání aktualizací směrování, úpravě adres rozhraní, atd . Toto používá například příkaz ip-route z iproute2.
Při pohledu na addrtype
zdrojový kód iptables, uvidíte odkazy na linux/rtnetlink.h
, který definuje RTN_LOCAL
jako typ zprávy. rtnetlink(7)
manuálová stránka popisuje RTN_LOCAL
jako:
rtm_type Route type
───────────────────────────────────────────────────────────
RTN_LOCAL a local interface route
Nic z toho není úplně jasné, když o tom čtete, a některé z nejlepších referencí, které jsem našel, jsou různé internetové zdroje, takže je pochopitelné, proč tam je zmatek.