Solaris 2.5 Solaris 7

Zugang ins Internet mit Solaris und einem Modem

Das Ziel dieser Anleitung ist es, über ein Modem einen PPP-Zugang ins Internet über freenet.de und Dial-In/Out zu ermöglichen.

Getestet wurde dies unter Solaris 7 auf einer SPARCstation 5.

Das Modem soll mit 38400 Baud an Port b betrieben werden (leider kann meine betagte SPARCstation 5 keine höhere Baudrate und an Port a hängt ein Terminal). Ferner soll das System keine weiteren Netzwerkanschlüsse besitzen. Der Hostname sei myHost und die IP-Nummer 129.1.1.10. Hostname und IP-Nummer können willkürlich gewählt werden, da der Rechner bei Verbindungsaufnahme über PPP seine IP-Nummer dynamisch erhält. Der Verbindungsaufbau soll durch ein ping ppp gestartet werden. Die Verbindung soll nach einer einstellbaren inaktiven Phase selbständig abbrechen oder manuell unterbrochen werden können.


Ab Solaris 2.5 ist keine zusätzliche Software notwendig. Es müssen die folgenden Packages installiert sein:
      SUNWapppr      PPP/IP Asynchronous PPP daemon configuration files
      SUNWapppu      PPP/IP Asynchronous PPP daemon and PPP login service
      SUNWpppk       PPP/IP and IPdialup Device Drivers
      SUNWbnur       Networking UUCP Utilities, (Root)
      SUNWbnuu       Networking UUCP Utilities, (Usr)
      

Für ttyb darf kein Service aktiviert (z.B. mit admintool entfernen) und das Modem muß über ein serielles Kabel angeschlossen sein, welches alle notwendigen Leitungen für Hardware-Handshake beinhaltet, also keine Dreidrahtverbindung! Zunächst muß das Modem konfiguriert werden. Dazu sind in /etc/remote folgende Zeilen wie folgt zu ändern:
cuab:dv=/dev/cua/b:br#38400
hardwire:\
        :dv=/dev/cua/b:br#38400:el=^C^S^Q^U^D:ie=%$:oe=^D:
      
Mit tip hardwire kann man nun eine direkte Verbindung zum Modem herstellen. Dieses sollte auf ein AT mit OK antworten. Nun kann der Initialisierungsbefehl eingegeben werden, z. B. für USR Sportster:
AT&F1&A0&B1&H1&K1&R2TX4S13=1S0=5&W
      
Dies bedeutet:
    &F1 - Schablone für Hardware-Flußkontrolle
    &A0 - ARQ-Ergebniscodes deaktiviert
    &B1 - Feste Schnittstellengeschwindigkeit
    &H1 - Hardwareflußkontrolle, CTS
    &K1 - Autodatenkompression
    &R2 - Hardwareflußkontrolle, RTS
      T - Frequenzwahl
  S13=1 - Reset, wenn DTR low
   S0=5 - Nach dem fünften Klingelzeichen abheben (nur für Dial-In)
     &W - Einstellungen im NVRAM speichern
Die Modeminitialisierung ist entsprechend dem verwendeten Modemtyp anzupassen. Ist Dial-In unerwünscht, so sollte S0=0 verwendet werden. Mit ATD0101901929 kann man nun freenet.de zum Testen anwählen.
Der nächste Schritt ist das Setzen der EEPROM-Variablen:
# eeprom ttyb-mode=38400,8,n,1,h
# eeprom ttyb-ignore-cd=true
# eeprom ttyb-rts-dtr-off=true
      
Anmerkung: Dies ist nicht unbedingt erforderlich. Mit diesen Befehlen wird die Schnittstelle initialisiert, bevor das Bestriebssystem getstartet wird.
Für Dial-In muß ein Eintrag in /etc/ttydefs hinzugefügt werden
contty6H:38400 -parity opost onlcr:38400 sane -parity crtscts hupcl::contty6H
      
und das Script (nach eventueller Anpassung) ausgeführt werden: Die Grundlage dieses Scripts stammt aus Celeste's Tutorial on Solaris 2.x Modems & Terminals.
Das System muß als 'networked system' installiert sein. Falls dies nicht der Fall ist, kann mit dem Befehl sys-unconfig eine Neuinitialisierung eingeleitet werden. Man gebe als neuen hostname 'myHost' mit der IP-Nummer 129.1.1.10, subneted und der Netmask 255.255.255.0. Für den Naming-Service muß 'OTHER' gewählt werden. Hat das System keine Netzwerkkarte (z.B. bei x86-Systemen) muß die Datei /etc/inet/netmasks per Hand angelegt werden. Der notwendige Eintrag ist:
129.1.0.0  255.255.255.0
      

/etc/hostname.le0 entfernen.
Das System soll das Ethernet ignorieren.
Kein /etc/defaultrouter anlegen!
Der aspppd wird selbständig den Default-Router eintragen.
Solaris 7 benötigt ein /etc/defaultdomain, in das
freenet.de
      
eingetragen wird. Ansonsten beschwert sich keyserv während des Bootens.
In /etc/resolv.conf:
domain freenet.de
nameserver 62.104.196.134
nameserver 62.104.191.241
      

Mit cp /etc/nsswitch.files /etc/nsswitch.conf und der Änderung von /etc/nsswitch.conf
hosts:      files dns
      
kann der DNS-Nameservice aktiviert werden. Dazu weiter unten noch eine Anmerkung.
/etc/hosts anpassen:
127.0.0.1       localhost       loghost
129.1.1.10      myHost
# Router
62.104.218.32	mch2-d1-1.mcbone.net
62.104.218.33	mch2-d1-2.mcbone.net
62.104.218.34	mch2-d2-1.mcbone.net
62.104.218.35	mch2-d2-2.mcbone.net
62.104.218.36	mch2-d3-1.mcbone.net	ppp
62.104.218.37	mch2-d3-2.mcbone.net
62.104.218.38	mch2-d4-1.mcbone.net
62.104.218.39	mch2-d4-2.mcbone.net
62.104.218.40	mch2-d5-1.mcbone.net
62.104.218.41	mch2-d5-2.mcbone.net
# Nameserver
62.104.196.134	ffm2-tux.mcbone.net
62.104.191.241  proxy.mcbone.net
     

Da PPP unter Solaris die UUCP-Dienste zum Verbindungsaufbau benötigt, müssen die folgenden UUCP-Konfigurationen vorgenommen werden:

In /etc/uucp/Dialers hinzufügen (Anpassen für anderes Modem bzw. für /etc/uucp/Devices einen passenden Eintrag aussuchen!):

#
# USR Sportster 28.8 Vi (oder USR Sportster 33.6 Voice)
#
#sp288vi =,-,   "" \dA\pTE1V1X4Q0S2=255S12=255&A0&H1&M4&B1\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
sp288vi =,-,    "" \dA\pTZ\r\c OK\r \dA\pTE1V1X4Q0S2=255S12=255&A0&H1&M4&B1\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff
      

In /etc/uucp/Devices hinzufügen (Anpassen für anderes Modem bzw. für /etc/uucp/Systems einen passenden Eintrag aussuchen!):
ACUUSR cua/b - Any sp288vi
      

In /etc/uucp/Systems hinzufügen:
ppp Any ACUUSR 38400 0101901929 "" P_ZERO
      
Dabei ist ppp das lokale Alias für freenet.de.
/etc/asppp.cf anpassen:
ifconfig ipdptp0 plumb myHost ppp up
#
path
        interface ipdptp0          
        inactivity_timeout 1800    # Approx. 30 minutes
        peer_system_name ppp       # The name we log in with (/etc/uucp/Systems)
        default_route
        will_do_authentication pap # PAP
        pap_id mobilcom            # login
        pap_password internet      # password
        negotiate_address on       # static or dynamic IP
        ipcp_async_map 0
#       debug_level 9              # uncomment for ppp negotiation debugging
      
default_route zeigt an, daß der Default-Router eingetragen werden soll.
negotiate_address on stellt dynamisches PPP ein. Login und Password sind Dummy-Werte.
/etc/init.d/inetinit modifizieren:
# We don't want to be a router!
# The PPP will set the default router!
defrouters="PPP default"
      
zwischen
# Set NIS domainname if locally configured.
...
      
und
# Run routed/router discovery only if we don't already have a default
...
      
einfügen, ansonsten wird das System zum Router.
Nach einem Reboot sollte nun alles funktionieren. Ein ping ppp startet nun den Aufbau der PPP-Verbindung. Nach erfolgreichem Verbindungsaufbau wird ein Router als Default-Gateway eingetragen. Mit netstat -r kann der Router ermittelt werden. Ist die Verbindung für 30 Minuten inaktiv, wird die Verbindung selbständig abgebrochen.
Als eine Art Notstopp können die Befehle
/etc/init.d/asppp  stop
route -f
/etc/init.d/asppp  start	# falls gewünscht
      
mit root-Berechtigung ausgeführt werden. Ist der zugeordnete Router nicht in /etc/hosts enthalten, kann route -f etwas länger dauern. Abhilfe: Die fehlenden Router nachtragen oder route mit der zusätzlich Option -n aufrufen.
Beobachten lassen sich die Pakete, die gesendet und empfangen werden mit
snoop -t a -d ipdptp0
      

Anmerkungen:
Referenzen:

[ www.thole.org | Manfred Thole ]


Manfred Thole, manfred@thole.org
Last modified: Sat Jan 24 23:46:21 MET 2004