Autor Thema: Aranym Kabellos  (Gelesen 5050 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

HamSTer

  • Gast
Aranym Kabellos
« am: Do 07.03.2013, 23:00:45 »
Kabellos mit Aranym

Der Wunsch mit Aranym im Netzwerk zu arbeiten ist sicherlich nichts neues. Über WLAN mit einem äteren Laptop wird die Sache umso interessanter.

Hardware ist ein ThinkPad T400 unter Lubuntu, was angenehm schnell ist.

Auf Atari-Seite wird benötigt: Ein MiNT mit zugehörigem AES. Zudem der bin-, etc-, und var-Ordner aus dem AFROS-Archiv

bin:
   bash
   ifconfig
   route
   nfethcfg.ttp
   netsetup.sh
etc:
   passwd
   resolv.conf
   services
var:
   log:
   run:
      utmp


Die Ordner bekommen Symbolische Links auf Laufwerk U: durch Einträge in der mint.cnf

sln   d:/bin   u:/bin
sln   d:/etc   u:/etc
sln   d:/var   u:/var


Der Pfad der Ordner muss entsprechend der eigenen Bedürfnisse angepasst werden.

Der Ordner bin muss zusätzlich in die Env-Variable PATH eingebracht werden. Ebenfalls in mint.cnf

setenv PATH u:/bin

Nun wird sichergestellt, dass entsprechende Skript bei jedem Booten ausgeführt wird. Auch in mint.cnf

exec u:/bin/bash u:/bin/netsetup.sh

Hat man nur Mintnet-Tools, war es das hier schon in der mint.cnf

Für STiK / STiNG startet man zusätzlich gluestik und für Draconis zusätzlich das mgw.

Nun kopiert man sich noch nfeth.xif und inet4.xdd in den zugehörigen Mint-Ordner.

In der etc/resolv.conf ändert man nun mit einem Texteditor (zb qed) die Adresse des Nameserver. Bei mir ist das zb die 10.0.1.1, mein Router.

Das sollte es auf Atari-Seite schon gewesen sein. Nun folgt der Teil vom Host-system.

Jetzt begeben wir uns ins Console-Fenster auf dem Host.
Um für unseren Virtuellen Atari eine Netzwerkverbindung herstellen zu können, benötigen wir eine virtuelle Netzwerkbuchse sozusagen. Die erzeugen wir mittels:

sudo modprobe tun
sudo tunctl -t tap0 -u benutzer


benutzer mit Eurem Loginnamen austauschen.

In der /etc/network/interfaces müssen Eintragungen vorgenommen werden. Wir tippen ein

sudo nano /etc/network/interfaces

mit dem cursor ans ende scrollen und eingeben:

auto tap0
iface tap0 inet static
   address 10.0.1.9
   netmask 255.255.255.0
   tunctl_user benutzer
   uml_proxy_arp 10.0.1.10
   uml_proxy_ether wlan0


Mit Strg-O und anschliessend Return wird die Datei gespeichert. Mit Strg-X wird der Editor verlassen.
Alle ip dürfen nicht benutzt sein. Die netmask ist absichtlich anders, da unsere virtuelle Netzwerkbuchse ein eigenes Netzwerk in unserem LAN darstellt. Die 10.0.1.9 ist später die Adresse des Gateway für unser Atari-System. Die 10.0.1.10 ist die IP vom Atari. wlan0 ist die Schnittstelle zur Aussenwelt. Wir wollen ja Kabellos. Auch hier benutzer mit Eurem Loginnamen tauschen.

Eigentlich funktioniert Proxy-Arp nicht Kabellos. Also benötigen wir ein zusätzliches Tool dafür

sudo apt-get install parprouted

installiert es.

Mit

parprouted wlan0 tap0

erzeugen wir eine Brücke zwischen wlan0 und tap0. Das normale Bridging kann das wohl nicht.

Wir haben es fast geschafft.

Das System muss noch unsere Pakete weiterleiten.

sudo nano /etc/sysctl.conf

Dort fügen wir ein

net.ipv4.ip_forward=1

Möglicherweise ist schon ein Zeile vorhanden die aber auskommentiert ist. Dann einfach das # entfernen.

Bald am Ziel.

sudo nano /etc/rc.local

Dort tragen wir ein vor dem exit

chmod  go+rw /dev/net/tun

Einen haben wir noch

sudo chmod +s /usr/bin/aratapif

damit Aranym auf Netzwerk zugreifen kann.

Das war es auf der Console

Nun können wir die Aranym config in einem normalen Editor bearbeiten/ergänzen.

[ETH0]
Type = ptp
Tunnel = tap0
HostIP = 10.0.1.9
AtariIP = 10.0.1.10
Netmask = 255.255.255.252
MAC = 00:41:45:54:48:30


Das sollte es gewesen, sofern ich mich nicht vertippt habe ;)

Aranym Kabellos
« Letzte Änderung: Mi 20.03.2013, 22:26:10 von HamSTer »

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.797
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: Aranym Kabellos
« Antwort #1 am: Fr 08.03.2013, 17:55:39 »
Mein Setup wird vermutlich nicht kabellos sein, aber hier ist gut beschrieben, wie man die PC-Seite konfigurieren muss. Das werde ich bei mir mal ausprobieren.

Kann man dem Tunnelport auch direkt eine IP vom regulären Netzwerk zuweisen, statt ein Subnetz erzeugen zu müssen?

Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

HamSTer

  • Gast
Re: Aranym Kabellos
« Antwort #2 am: Fr 08.03.2013, 18:08:04 »
Kann ich leider nicht sagen. Aber entsprechend die netmask anpassen und ausprobieren. Kann ja nichts kaputt gehen. Sobald ich zu hause bin, test ich das mal und ergänze hier entsprechend.

HamSTer

  • Gast
Re: Aranym Kabellos
« Antwort #3 am: Fr 08.03.2013, 22:13:41 »
Ok, scheinbar muss es ein subnetzwerk sein. Ich konnte keine Verbindung herstellen mit gleicher netmask.

guest3379

  • Gast
Re: Aranym Kabellos
« Antwort #4 am: So 10.03.2013, 03:04:19 »
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#networking

edit: 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 tuntunctl -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/tunhat 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.html

edit: 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=tap0nö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


HamSTer

  • Gast
Re: Aranym Kabellos
« Antwort #5 am: Mi 20.03.2013, 22:15:42 »
ich habe nun spasseshalber doch nochmal mit gleicher subnetzmaske probiert. funktioniert.

HamSTer

  • Gast
Re: Aranym Kabellos
« Antwort #6 am: Mi 20.03.2013, 22:24:31 »
also in der aranym config 255.255.255.252 eintragen
in der host interfaces für tap0 255.255.255.0 eintragen
das funktioniert.

guest3379

  • Gast
Re: Aranym Kabellos
« Antwort #7 am: Fr 22.03.2013, 22:26:35 »
Ich habe in beiden die gleiche netmask drin

255.255.255.0
funktioniert. Ich verstehs eh nicht, denn Deine Einstellung schränkt ja den Netzbereich unnötig ein.