Guten Tag,
ich betreibe (privat) einen Laptop auf Windows 7, auf dem unter anderem
ein Subversion-Server läuft. Das hat sich einfach so ergeben, da
mitlerweile auch der Laptop genügend Festplattenspeicherplatz und
Rechenleistung hat, und andererseits der Laptop auch immer dann im
lokalen Netzwerk ist, wenn ich auch da bin.
Problematisch wird es mit externals in Subversion-Repositories:
Auf dem Laptop kann ich sie problemlos mit localhost adressieren.
Dann sind sie allerdings, wenn das Repository auf einem anderen Gerät
ausgecheckt wird, nicht erreichbar.
Ich kann sie mit der IP adressieren. Dann sind sie vom Laptop oder von
anderen Geräten im lokalen Netzweil korrekt erreichbar. Will ich
allerdings vom Laptop, der das Repository mit sich herumträgt, auf das
Repository zugreifen, wenn er nicht im Netzwerk hängt, funktioniert das
natürlich nicht - er hat ja seine IP nicht mehr.
Auf Anhieb fallen mir zwei Lösungen ein:
a) Dem Laptop eine "virtuelle Netzwerkkarte" spendieren und dieser eine
feste IP zuweisen.
b) Dem Laptop einen irgendwie anders auflösbaren Hostnamen zuweisen.
Zu a): Kennt jemand ein Programm, das eine virtuelle Netzwerkkarte bei
ansonsten minimalem Einfluß auf das Betriebssystem mitliefert?
Oder b): Gibt es eine Möglichkeit, einem Windows-7-PC einen Hostnamen zu
spendieren, der im LAN und per localhost per svn:// auflösbar ist?
Domain Network Service schrieb:> Gibt es eine Möglichkeit, einem Windows-7-PC einen Hostnamen zu> spendieren, der im LAN und per localhost per svn:// auflösbar ist?
Das hängt letztlich davon ab, wer im jeweiligen Netz die Namensauflösung
macht und wie der organisiert ist.
Bei uns in der Firma werkelt eine Fritzbox, und diese trägt sehr wohl
für die Hostnamen, die man als Client beim DHCP einreicht, dann auch
mit dem Erteilen der IP-Adresse einen DNS-Eintrag nach, sodass diese
Hosts sowohl vorwärts als auch rückwärts auflösbar sind (mit der
Pseuodomain .fritz.box). Fummelig ist es nur, wenn ein Laptop sowohl
via Ethernet als auch WiFi eingebucht ist.
Wenn du aber in ein anderes Netz kommst, wo die lokale DNS-Autorität
nicht so organisiert ist, dann klappt das natürlich nicht mehr.
Du kannst dir natürlich deinen eigenen Namen immer noch als weiteren
Alias für die 127.0.0.1 in /etc/hosts, ähem,
C:\Windows\System32\drivers\etc\hosts ergänzen.
Jörg W. schrieb:> Das hängt letztlich davon ab, wer im jeweiligen Netz die Namensauflösung> macht und wie der organisiert ist.
Hallo Jörg,
vielleicht ist das in meiner Anfrage nicht richtig herübergekommen: Die
Namensauflösung soll auch dann noch funktionieren, wenn der Laptop nicht
mehr in seinem heimischen Netz (sondern z.B. komplett ohne Netz oder im
fremden Netz) verfügbar ist.
Ich will ja z.B. ein Checkout, das auf dem Laptop liegt, auf
Repositories, die ebenfalls auf dem Laptop gespeichert sind, auch dann
aus- und einchecken können, wenn kein Heimnetz vorhanden ist.
Hosts-Datei ist ein guter Hinweis. Dann brauche ich nur wieder die
niemals-verschwindende IP dazu, womit wir wieder bei Frage a) wären.
Ich bin gerade nicht sicher, ob ein Name, der in der hosts eingetragen
ist, von anderen Netzwerkgeräten gelesen werden kann. Aber egal: das
könnte ich mit dem Router lösen.
Irgendwo müssen ja die svn-Daten liegen. Und diese Stelle muss eben über
das Netz erreichbar sein, wen du ein- und auschecken möchtest. Das
heißt, wenn dein Laptop bei Tante Emma zu Hause über WLAN im Netz ist,
muss er den Weg zum Firmenserver kennen, um auf das svn-Verzeichnis
zugreifen zu können. Also muss das svn-Verzeichnis über das Internet
erreichbar sein. Oder du richtest auf dem Firmenserver einen VPN-Zugang
ein, den du von überall auf der Welt erreichen kannst. Dann musst du nur
noch den VPN-Clienten auf dem Laptop installieren, damit du (egal wo du
gerade bist) immer das svn-Verzeichnis auf dem Firmenserver erreichen
kannst.
Domain Network Service schrieb:> Hosts-Datei ist ein guter Hinweis. Dann brauche ich nur wieder die> niemals-verschwindende IP dazu, womit wir wieder bei Frage a) wären.
Diese niemals verschwindende IP-Adresse ist die 127.0.0.1. Daher
schrieb ich ja, den eigenen Namen als Alias dazu tragen.
Damit löst du das Problem, dass der Computer sein eigenes
Repository auch dann erreichen kann, wenn er ansonsten nicht in
einem Netz liegt.
Allerdings ließe sich dieses Problem auch über eine file:///-URL
lösen. D. h. du checkst lokal über file:///path/to/repo aus,
remote dagegen über svn://hostname/path/to/repo.
> Ich bin gerade nicht sicher, ob ein Name, der in der hosts eingetragen> ist, von anderen Netzwerkgeräten gelesen werden kann.
Natürlich nicht.
> Aber egal: das> könnte ich mit dem Router lösen.
So ist es.
Domain Network Service schrieb:> . Dann brauche ich nur wieder die niemals-verschwindende IP dazu, womit> wir wieder bei Frage a) wären.
Und die "niemals-verschwindende IP" hat jeder Rechner ab Werk.
Jörg W. schrieb:> Du kannst dir natürlich deinen eigenen Namen immer noch als weiteren> Alias für die 127.0.0.1 in /etc/hosts, ähem,> C:\Windows\System32\drivers\etc\hosts ergänzen.
Und genau das ist der Trick.
Häng' also diese Zeile an die hosts-Datei an:
1
127.0.0.1 meinnotebook
(statt "meinnotebook" trägst Du natürlich den Namen ein, den Du da sehen
willst).
Damit wird der Name auf Deinem Notebook immer zur localhost-Adresse
aufgelöst, und funktioniert immer, egal, wie die sonstige
Netzwerkkonfiguration aussieht.
Das geht bei Repositories. Sie dürfen für jeden Client auf einer
unterschiedlichen URL liegen. Bei externals muß das zugehörige
Repository für jeden Client auf der gleichen URL liegen.
Rufus Τ. F. schrieb:> Häng' also diese Zeile an die hosts-Datei an: 127.0.0.1> meinnotebook
Nee, nicht anhängen. Die linke Seite muss in der hosts-Datei
eindeutig sein, darf also nur einmal da sein. Da es schon einen
Eintrag für 127.0.0.1 gibt, muss man den erweitern:
1
127.0.0.1 localhost meinnotebook
Domain Network Service schrieb:> Bei externals muß das zugehörige Repository für jeden Client auf der> gleichen URL liegen.
Ja, stimmt. Hatte vergessen, dass es dir um Externals geht.
OK, ich habe gerade gefunden: einen "Virtuel Loopback adapter" kann man
mittlerweile problemlos ohne irgendwelche Programme mit Bordmitteln
installieren. (Womit dann auch der Suchbegriff für andere Leser mit dem
selben Problem genannt wäre).
Damit ist die Lösung recht einfach:
1. Virtual Loopback-Adapter mit IP im Subnetz des Heimnetzes
einrichten.
2. Namen per localhost vergeben
3. Gleichen Namen per Router-DNS vergeben
4. Glücklich sein
Insbesondere Punkt 4 sollte man nicht vergessen. Danke für die Ideen!
Hallo
Wenns nur um svn externals geht sollte es reichen statt
svn://servername/repository ^/repository zu schreiben (oder so ähnlich)
^/ heisst vom gleichen Server...
Jörg W. schrieb:> Nee, nicht anhängen. Die linke Seite muss in der hosts-Datei eindeutig> sein, darf also nur einmal da sein.
In der Windows-Variante, in der ich gerade nachgesehen hatte, steht
localhost nur in auskommentierter Form drin und der Hinweis, daß das der
Netzwerkstack selbst erledigen würde.
Rufus Τ. F. schrieb:> Jörg W. schrieb:>> Nee, nicht anhängen. Die linke Seite muss in der hosts-Datei eindeutig>> sein, darf also nur einmal da sein.>> In der Windows-Variante, in der ich gerade nachgesehen hatte, steht> localhost nur in auskommentierter Form drin und der Hinweis, daß das der> Netzwerkstack selbst erledigen würde.
Stimmt. Wobei die Frage ist, auf was er 127.0.0.1 rückwärts auflöst,
wenn man nicht "localhost" als ersten Namen reinschreibt. Normalerweise
ist der erste Name aus der Liste ja der, der für die Rückwärtsauflösung
benutzt wird.
Ach wie lobe ich mir da avahi eine der funktionierenden
Implementationen von mDNS (aka Bonjour, Rendezvous, ...)
Meine Laptops antworten damit immer unter ihrem Hostname, egal in
welchem LAN (solange die anderen auch beim serverlosen mDNS mitspielen).
Die -durchaus zusätzlichen- IPs sind dabei aus dem Bereich 169.254/16