Heute bin ich irgendwie ins Basteln verfallen. Ergebnis: Ein Windows, unter dem ein
coLinux als Dienst läuft, das die (IP-)Netzwerkanbindung nach außen bereitstellt.
Was ich damit genau mache, weiß ich nocht nicht, auf jeden Fall sind die Möglichkeiten schier endlos: Ich kann auf der Windows-Kiste jetzt Sachen wie
dnsmasq,
djbdns oder
quagga laufen lassen, die es für Windows nicht gibt. Damit kann ich endlich per OpenVPN und BGP durch die Gegend tunneln!
Eigentlich war alles ganz logisch. Der Aufbau ist folgender:
Unter Windows habe ich an der eigentlichen Netzwerkkarte die IP-Bindung entfernt. Damit hat Windows da keine IP-Adresse mehr und kommt nicht mehr ins Netz.
Über coLinux habe ich ein Tap-Device eingerichtet, eine virtuelle Netzwerkverbindung zwischen Windows und coLinux. Das ist nur eine Punkt-zu-Punkt-Verbindung mit statischen IP-Adressen in einem eigenen Subnetz.
coLinux hat außerdem noch eine
WinPcap-Brücke auf die echte Netzwerkkarte, die innerhalb des coLinux dann per DHCP eine nach außen hin sichtbare Netzwerkadresse zugewiesen bekommt. (Da wird's dann komisch: Netzwerkzugang über winpcap und unter Linux installiere ich darüber die libpcap, damit ich mit tcpdump auf das Kabel gucken kann...)
Im coLinux habe ich dann noch Forwarding und Masquerading zwischen "draußen" (WinPcap) und dem Windows (TAP) eingerichtet.
Als Basis habe ich das bei der Installation der Version 0.7.2 angebotene 1GB-Debian-Image benutzt. Derzeit nutzt coLinux 64MB RAM. Das muss ich beides mal zusammenstauchen, aktuell braucht das Linux im Betrieb 9MB und von dem Dateisystem sind gerade mal 190MB belegt. Da geht noch einiges. Swap hab ich gar nicht...
Da die aktuelle stable 0.7.2 von coLinux kein Masquerading im Kernel hat, hab ich mir aus dem SVN die aktuelle Version gezogen und unter Linux den devel-Branch gebaut. Das geht vollautomatisch, ist aber durchaus interessant: Der fängt erstmal an, sich den gcc runterzuladen und baut sich selbst eine Crosscompile-Umgebung auf. Dann baut er mal eben unter Linux die ganzen Windows-Binaries. Er kam mal ins Hakeln, weil ich "echt" die libwx-2.6 installiert hatte und er seine selbst runtergeladene libwx-2.8 nicht gefunden hat, aber nach dem Deinstallieren des alten Develeopmentpaketes ging das dann.
Die initrd.gz habe ich im devel-Zweig nicht gefunden, die Datei kann man aber einfach aus dem stable-coLinux rüberkopieren.
Ob ich mal DSL im coLinux einrichte? Unter Windows hab ich absolut keine Ahnung, wie man sowas macht, aber in dem coLinux sollte ich einfach die Konfiguration von meinem Server rüberkopieren können. Dann kann ich auch bei Routerausfall über den Windows-Laptop surfen (wozu auch immer, denn das "echte" Linux auf dem Laptop ist natürlich schon als Backup-Router hergerichtet).
Lustiges Sache. Da kann man bestimmt noch viel Spaß haben.