Ich habe es jetzt auch hingekriegt und es geht noch einfacher. Kein Subnet und gleiche netmaske. Der Mintnet-Teil ist oben richtig beschrieben, aber es geht auch ohne das Script netsetup.sh.
Der Host-teil ist Kokolores, denn auf einem redhat-basierten System wie mein Fedora-17 gibt es kein
/etc/network/interfaces
und statt nano kann man ja jeden beliebigen editor benutzen.
Es muss auch garkeine bridge eingerichtet werden, das ist schon die höhere Weihe, sondern es geht auch mit dem einfachen proxy-arp, wie es im englischen Aranym-wiki beschrieben ist.
http://wiki.aranym.org/manual#networkingedit: nach neueren Tests ist der folgende Schritt doch unverzichtbar!Nun ein
parprouted wlan0 tap0
ausführen.
Ich bin dabei so vorgegangen. Natürlich als root im host:
modprobe tun
tunctl -t tap0 -u benutzer
tunctl ist Bestanteil von Fedora, lässt sich aber auch mit yum tunctl nachinstallieren. Man kann es auch als user mit sudo ausführen
sudo tunctl -t tap0 -u benutzer
Bei mir hat das aber nicht gereicht, denn aratapif muss immer als root ausgeführt werden, sonst kann es nicht auf tap0, bzw. tun zugreifen.
Und in meinem System ließ sich nicht aranym als user starten, so dass es mit root-Rechten aratapif ausführen kann. Auch ein
sudo chmod go+rw /dev/net/tun
hat daran nichts geändert.
Diese Tatsache ist auch diesem thread aufgefallen, hier unter Debian. Allerdings wird dort deshalb die Methode bridge empfohlen:
http://lists.debian.org/debian-68k/2008/06/msg00072.htmledit: Für dieses Problem gibt Peter Stehling jetzt folgende Anweisung, die auch irgendwo in den Docs stehen soll:> $ sudo chown root:root /usr/local/bin/aratapif
> $ sudo chmod u+s /usr/local/bin/aratapif
Danach soll es auch ohne sudo funktionieren. (Noch unbestätigt.)
Es geht aber wie gesagt auch ohne bridge, mit der Methode arp-proxy.
Mann muss wissen, dass in /usr/bin oder in /bin, oder in /usr/local/bin die Dateien
aranym
aranym-jit
aratapif
vorhanden sein müssen. Sie werden unter fedora sogar durch ein rpm aus einem extra Repository angelegt. Sie lassen sich aber natürlich auch händig nach /usr/bin kopieren.
Ich starte aranym-jit immer als user aus einem speziell Aranym vorbehaltenen Ordner im /home. Wenn ich das Netzwerk aktivieren will, gelang mir das bisher nur, indem ich aranym mit sudo startete. Dazu muss man vorher sudo natürlich beibringen, dass es das auch darf. Wie das geht, liest man am besten in einschlägigen howtos zu sudo nach.
Also läuft das bei mir so
>cd /home/user/Aranym
>sudo aranym-jit -c config
config muss sich dazu natürlich wie üblich im Ordner Aranym befinden, indem auch der ./system und die images bzw. mein Host-LW ./drive_C sich befindet.
Nun muss man das Netzwerk einrichten:
Bei mir ist der Host ein notebook und daher via wlan0 mit einem Router verbunden.
router 192.168.178.1
wlan0 192.168.178.37
Nun ist es wichtig, dass man dem tap0 genau die gleiche IP zuordnet, wie dem Hostnetzwerk-interface. Also in dem fall nicht eth0, sondern wlan0.
nun muss man noch die firewall instruieren und den proxy-arp einrichten
> echo 1 >/proc/sys/net/ipv4/ip_forward
> echo 1 >/proc/sys/net/ipv4/conf/tap0/proxy_arp
> arp -Ds 192.168.0.114 wlan0 pub
edit: Die folgenden Schritte lassen sich offenbar nur erfolgreich ausführen, wenn man einmal das Netzwerk clientseitig initialisiert hat. Siehe weiter unten. Danach sollte das dann klappen:> route add -host 192.168.178.114 tap0
ein ifconfig -a sollte nun so aussehen
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:1e:68:b1:a9:da txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Lokale Schleife)
RX packets 729 bytes 41056 (40.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 729 bytes 41056 (40.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.178.37 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 fe80::a4e7:8ff:fe23:3b71 prefixlen 64 scopeid 0x20<link>
ether a6:e7:08:23:3b:71 txqueuelen 500 (Ethernet)
RX packets 5084 bytes 415507 (405.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5850 bytes 6816911 (6.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.178.37 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 fe80::222:69ff:fe08:7e2e prefixlen 64 scopeid 0x20<link>
ether 00:22:69:08:7e:2e txqueuelen 1000 (Ethernet)
RX packets 307353 bytes 268750736 (256.3 MiB)
RX errors 0 dropped 10253 overruns 0 frame 0
TX packets 203712 bytes 22248940 (21.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wie man sieht ist meine eth0 garnicht verbunden, keine Strippe dran, hingegen das wlan0 eine IP ausgibt, die gleiche wie tap0.
Ein route sieht folgendermaßen aus
[root@Acer etc]# route
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
default fritz.box 0.0.0.0 UG 0 0 0 wlan0
192.168.0.114 * 255.255.255.255 UH 0 0 0 tap0
192.168.178.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.178.0 * 255.255.255.0 U 0 0 0 tap0
aranym * 255.255.255.255 UH 0 0 0 tap0
[root@Acer etc]#
Auf der Client-Seite, also in Aranym trägt man in die config Datei lediglich folgendes ein. Das sind die Parameter mit denen aratapif die Schnittstelle konfiguriert:
[ETH0]
Type = ptp
HostIP = 192.168.178.37
AtariIP = 192.168.178.114
Netmask = 255.255.255.0
Es ist also hier gar kein
tunnel=tap0
nötig. Und die Host-IP ist unsere Wlan0-IP, tap0 erhält keine extra IP.
Wenn man nun Aranym startet mit
sudo aranym-jit -c config
dann führt aranym automatisch aratapif aus und initialisiert tap0.
Auf der Konsole im Logfile sieht man nun keine Fehlermeldung bei tun mehr - das Zeichen, dass es klappt.
Nun muss man natürlich auf der Aranymseite das Netzwerk auch noch initialisieren und das geht ganz einfach mit
#ifup eth0
echo ifconfig -a eth0 addr 192.168.178.114 netmask 255.255.255.0 broadaddr 192.168.178.255 mtu 1500 up
ifconfig eth0 addr 192.168.178.114 netmask 255.255.255.0
route add default eth0 gw 192.168.178.37
was ich ganz einfach in ein script zusammengefasst, dass ich ifup.sh genannt habe. Es geht natürlich auch ohne script in einzelnen Komandos unter toswin2.
Nun sollte man 192.168.178.114 vom Host aus anpingen können. Allerdings kann man nicht zurück aus aranym ins Netzwerk oder nach Außen pingen. Das ist irgendwie ausmaskiert, bzw. hidden. Das irritiert zunächst, ist aber ohne Bedeutung, denn das serven aus netsurf oder highwire geht nun, ebenso ftp und andere Dienste. Ich habe noch der /etc/hosts
192.168.178.114 aranym
hinzugefügt und ebenso auf der Client-Seite eine /etc/hosts angelegt mit IP-Einträgen für gate, host und Aranym, sodass ich diese Aliasse direkt benutzen kann.
Die oben angegebenen Dateien resolv.conf etc. habe ich ebenfalls angelegt. Automatisiert habe ich das ganze allerdings noch nicht.
Wie man sieht geht also dieses Proxy-Arp Verfahren auch mit wlan0.
Zur Vertiefung der Materie gibt es verschiedene Mini-Howtos zum Proxy-arp im Netz