Solaris und T-DSL HowTo

von Jens Lippold , hosted by SPARCinfo

Ich übernehme keine Garantie für eventuelle Schäden die durch diese Anleitung entstehen. Diese Anleitung ist von mir nach bestem Wissen und Gewissen geschrieben worden.

Zuerst:
Ich kann nicht für alles sprechen und alle Sonderfälle abdecken. Die Anleitung wird aufgrund folgender Ausstattung geschrieben:
Sparc Station 20, Solaris 2.6, Patch 2.6_Recommended und 2.6_y2000
interne Netzwerkkarte: le0 angeschlossen an das T-DSL Modem
externe (zusätzliche) SBUS Netzwerkkarte: be0 angeschlossen am internen Netz

Einige Freeware-Tools sollten installiert sein, z.B. zur Fehlerdiagnose oder zum Entpacken der Pakete. Das wären sowas wie gzip, zip/unzip, und tcpdump. Zwingend erforderlich ist allerdings der GCC!
Mehr dazu hier: sunfreeware.com

Die Pakete werden übrigens mit

pkgadd -d Paketname

installiert.

Zur Installation der zweiten Netzwerkkarte unter Solaris gibt hier ein paar Infos. Nachdem also die Grundlage geschaffen wurde gehts mit den DSL Tools los.
 

Der pppd dient zur Anwahl des Providers. Den pppd gibts hier, allerdings hatte ich Probleme mit dem Kompilieren. Deswegen habe ich hier eine von mir veränderte Version (2.4.1b2) hinzugefügt. Die Makefiles wurden bereits angepasst, so dass das Kompilieren nun gehen sollte.
So gehts:
Die Files entpacken, in das entpackte Verzeichnis wechseln.

./configure

make

make install

Danach kommt
 

Der pppoe ist das 'Protokoll', was im Allgemeinen für den Datentransfer über Anwahl-DSL benutzt wird. Bei einer Standleitung zum Internet braucht man den ganzen Kram nicht. Aber das ist eine andere Geschichte. Den pppoe gibts bei Roaring Penguin. Installiert werden die Sourcen. Sollte es mit neueren Versionen Probleme geben, die Version 3.3 geht.
Wie oben, die Files entpacken, in das entpackte Verzeichnis wechseln.

go

macht alles weitere. Es wird nach dem Kompilieren nach den Zugangsdaten gefragt. Wichtig ist, dass der Benutzername wie folgt aussieht:

1234567890121234567890120001@t-online.de

Die Anschlusskennung und T-Onlinenummer muss jeweils 12-stellig sein, dann 0001 als Mitbenutzernummer eingeben. Ist diese nicht 12-stellig, muss vor der 0001 ein # eingegeben werden. Also etwa so:

1234567890121234567890#0001@t-online.de

Hier kommen meine Daten (DNS ist der der Telekom):

USER NAME
1234567890121234567890120001@t-online.de

INTERFACE
/dev/le0

Enter the demand value
no

DNS
194.25.2.129
62.225.253.9

PASSWORD
*******

Danach kann man nochmals prüfen, ob alles okay ist.
Man sollte danach schauen, ob der DNS in der Datei /etc/resolv.conf eingetragen wurde. Dann muss man Solaris sagen, das er den DNS auch suchen soll und zwar muss in der Datei /etc/nsswitch.conf in der Zeile hosts: der Eintrag von files auf files dns geändert werden.
Zu Dial on Demand muss man sagen, das es jedem selbst überlassen ist, ob er dod benutzt. Bei einer Flat sicherlich no, bei den Spartarifen macht es vielleicht Sinn. Es ist aber dabei zu beachten, dass es nicht so ohne weiteres ersichtlich ist, ob gerade eine Verbindung besteht. Windows Kisten habe den Nachteil, dass sie ständig den DNS anfunken. Also benötigt man auf der Sparc einen DNS, der das abfängt. Das erkläre ich hier nicht, da ich eine Flat habe.
Die Installation hat ein paar adsl Scripte in das Verzeichnis /usr/sbin kopiert. Das Verzeichnis soll man im Pfad (als root) haben, das macht einiges einfacher. Bei mir baute sich dann mit adsl-start eine Verbindung ins Internet auf. Am besten gleich mal testen:

ping 194.25.2.129
ping www.sun.com

Wenn das geht, ist die Hälfe schon geschafft.
Zum rp-pppoe muss man sagen, das auf jeden Fall die Datei option im Verzeichnis /etc/ppp leer sein muss!! Die adsl Daten stehen in der Datei pppoe.conf ebenfalls in /etc/ppp.
 

Will man denn nun das interne Netz auch am Internet teilhaben lassen, braucht man Routing. Dazu eignet sich hervorragen die IPFiler Software ipf, die es hier gibt.  Da ich mal wieder Probleme beim Kompilieren hatte, gibts hier die Version, die bei mir läuft. Meine Version ist eine Sun Package, die wie folgt installiert wird:

pkgadd -d ipf-3.3.11.pkg

Das installiert Kernel Patches und ein Script, das beim Systemstart schon das IPFiltern übernimmt.
Ich werde nicht erläutern, wie und was nun gefiltert werden muss. Das sollte jeder selber in den FAQ Seiten zu ipf nachlesen. Folgende zwei Dateien muss man sich näher beschauen:

/etc/opt/ipf/ipf.conf
/etc/opt/ipf/ifnat.conf

In der Date ipf.conf stehen die Filterregeln. Ein Beispiel, welches funktioniert, aber Lückenhaft filtert, ist dieses:

# ipf.conf
# rein
block in quick on ppp0
# raus
pass out quick on ppp0 proto tcp/udp from any to any keep state
pass out quick on ppp0 proto icmp from any to any keep state

Das eigenliche Routing steht in der Datei ipnat.conf. Hier geschieht eine NAT (Network Address Translation), d.h. die internen Netzwerkadressen werden nur durch die derzeitige vom Provider zugewiesene Adresse sichtbar. Das Umsetzten macht diese Software. Und los gehts:
Erstmal testen, ob ip_forwarding schon aktiviert ist:

ndd -get /dev/tcp ip_forwarding

kommt als Ergebnis eine 1, ist ip_forwarding aktiviert. Wenn nicht, dann erstmal aktivieren:

/etc/defaultrouter und /etc/notrouter löschen und ein leeres /etc/gateways mit touch /etc/gateways erzeugen.

Sollte es wiedererwarten nicht funktionieren, kann dieses Script hilfreich sein. Script nach /etc/init.d kopieren und einen symbolischen Link nach /etc/rc2.d/S69ip_forwarding machen.
Nun muss die Datei ipfnat.conf mit den Translation Daten gefüllt werden. Mein internes Netz hat den IP Bereich 192.168.1.x, deswegen sieht die Datei bei mir so aus:

map ppp0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp
map ppp0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto
map ppp0 192.168.1.0/24 -> 0/32

Mehr zu den Rules gibts auf der Homepage von IPFiler.

Wenn Änderungen an den Rules gemacht werden, kann man die beiden Dateien (ipf.conf und ipnat.conf) mit dem Befehl

ipfboot reload

aus dem Verzeichnis /etc/init.d aktualisieren.

Damit der Datenverkehr nicht stockt, muss die MTU Size auf 1412 (zur Sicherheit, 1452 sollte aber auch gehen) gesetzt werden. Dazu sucht man in der Datei /etc/ppp/pppoe.conf nach der Zeile CLAMPMSS und setzt diese auf 1412, wenn nicht schon bei der Installation geschehen.
 

So, nun muss man nur noch die Clients konfigurieren. Ich werde es an Hand eines Windows 98 Rechners erklären:
Netzwerkeinstellungen öffnen, auf TCP/IP Protokoll klicken und zwar das, das an die Netzwerkkarte gebunden wurde. Unter dem Tab Gateway wird die IP eingetragen, die die Sparc hat (des Interfaces, das nicht zum Modem geht, also z.B. 192.168.1.100). Dann noch den DNS eintragen (host: irgendwas, für DNS: 194.25.2.129 und 62.225.253.9). Windows dann neustarten, auf der Sparc adsl-start aufrufen. Dann sollte man über die Sparc ins Internet kommen.
  Prima wäre es natürlich, wenn man adsl-start nicht aufrufen muss, sondern es gleich beim Systemstart aufgerufen wird. Dazu gibts von mir ein kleines Script, was das erledigt. Script nach /etc/init.d kopieren, einen symbolischen Link nach /etc/rc3.d/S99adsl und nach /etc/rc1.d/K99adsl machen. Dann sollte adsl beim Starten angewählt werden, und beim Runterfahren wieder getrennt werden.
 
  Boot tut gut. Gilt auch für Solaris, gerade bei der Konfiguration von Systemdateien.
 

Viel Spass...



Fragen und Korrekturen bezüglich dieser Anleitung an: Jens Lippold




hosted by SPARCinfo