Re: Loopback address Was: merkwürdiges ssh Verbindungsproblem

Kai 'wusel' Siering wusel+ml at uu.org
Wed Jan 15 13:10:46 CET 2025


Moin,

am 09.01.25 um 10:22 schrieb Florian Lohoff:
>>> Also reserved war 127/8 schon seit 1981 :)
>>
>> Schon. Und es wird mir immer ein Rätsel bleiben, warum man dafür das
>> letzte Class-A- statt des letzten Class-C-Netzes ver(sch)wendet hat.
> 
> Es ist ein byte compare um zu wissen ob es localhost ist ;) Und wenn man
> packet forwarding macht das in hardware zu machen ist halt viel
> einfacher abzubilden. Erstes byte 0x7f -> Sollte nicht "on wire" sein.

Nachvollziehbar, aber gerade für local*host* sind 16 Millionen IP(v4)-
Adressen vollkommener Overkill. Und den Byte-Compare hätte man auch mit
255/8 erschlagen können, aber egal, IPv6 löst das IP-Adressen-Knapp-
heitsproblem ja ;-)

>> $Früher, also mindestens zu Beginn des aktuellen Jahrtausends, konnte
>> man das aber noch in 127.0.0.1/24 umkonfigurieren und z. B.
>> 127.0.1.0/24 'normal' routen. Das ging 'plötzlich' nimmer. (Ja, es gab
>> schon RFC1918 sowie TEST-NET-{1,2,3}, das ist nicht der Punkt.)
> 
> Aeh? Ich würde behaupten im ARP oder Ethernet dürfte das noch nie
> funktioniert haben git blame sagt das Linus da einen Kommentar 2005
> eingefügt hat das es im ARP gekillt wird 

<2005 kommt hin, seinerzeit hatte ich zwei alte Compaqs auf dem Dachboden
mit MooseFS laufen und die Direktverbindung der beiden in 127.x.y.0/24
realisiert — was nach einem Upgrade auf die nächste (Kernel-) Version nicht
mehr tat.

> auch in Ethernet Karten und definitiv in Cisco Routern gekillt.
> 127.0.0.0/8 kommt da aus dem Ethernet Baustein schon nicht mehr raus.

Mag sein, das war IIRC Host-to-Host per Kreuzkabel.

> Damit wäre das auf allem Ethernet ähnlichem tot. Ich behaupt das gabs
> aber schon in kernel 1.2 das das nicht ging.

Hmm, dürfte damals RHEL 2.1 oder, eher, RH 7.1/7.2 gewesen sein — jedenfalls
schon Kernel 2.4 lt. Wikipedia.

Kernel 1.2.13 wäre demnach RH 1.1/2.0 und 1995?

> Kernel 1.2.13 - mal schnell geguckt - Ging auch da im ARP schon nicht:
> 
> net/inet/arp.c
>     626 /*
>     627  *      Check for bad requests for 127.0.0.1.  If this is one such, delete it.
>     628  */
>     629         if(tip == INADDR_LOOPBACK)
>     630         {
>     631                 kfree_skb(skb, FREE_READ);
>     632                 return 0;
>     633         }

Hmm, was, wenn man die MAC statisch auf eine IP mappte? Ich bin mir jedenfalls
*sehr* sicher, daß ich das seinerzeit mit Adressen aus 127/8 aufgebaut hatte
und nach einem (Kernel-) Update das nicht mehr funktionierte (die aktualisierte
Kiste wollte nix mehr von 127/8 auf dem Ethernet wissen, tcpdump zeigte nix
mehr, IIRC auch nicht eingehend).

>>> Einen Eintrag an. Wenn du DHCP machst bzw das Desktop system mit network
>>> manager oder wicd oder whatever, dann willst du ja das du irgendwie
>>> ein "ping $myhostname" machen kannst - Deshalb der Eintrag auf
>>>
>>> 127.0.1.1 $myhostname
[…]
>> Vielleicht habe ich zu lange mit stationären Systemen und statischen
>> öffentlichen IPs gearbeitet, dunno. Aber _die_ IP jedes meiner lokalen
>> Systeme, 127.0.0.1, die kenne ich auswendig, für den Rest gibt's das
>> DNS ;-)
> 
> Z.b. wenn du via Apache VHosts hast - Dann willst du vielleicht mit
> anderen namen arbeiten.

Aber die klebe ich dann doch nicht in die hosts als 127.1.2.3?

> Das network-started target ist aber explizit für den geneigten Admin
> eine configurationsfrage. Du _kannst_ das Nutzen - musst das aber
> nicht

Allein, systemd-Skripte von nginx und Co. warten darauf, und ohne systemd-
networkd funktioniert das nicht so, wie erwartet. Dann startet systemd jene
Units und nginx oder ntpd binden sich auf Adressen, die z. B. noch tentative
sind, brechen so mit Schmackes ins Essen. Aber das ist ein ganz anderer Thread ;)
-kai



More information about the Linux mailing list