Netzwerk starten über Skripte

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Netzwerk starten über Skripte

Beitrag von TheNoOne » 23.01.2006 13:45:29

Hi,

ich wollte meine Netzwerkkarte über Shellskripte einrichten, da ich meinen Rechner voraussichtlich in unterschiedlichen Netzen benutzen werden muss und auf diese Weise schnell neue Einstellungen umsetzen kann.

Das Problem ist halt dass es nicht funktioniert :(
#!/bin/sh

ifconfig eth0 down
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
ifconfig eth0 10.1.14.35 netmask 255.255.0.0 broadcast 10.1.255.255
route add default gw 10.1.14.254
ifconfig eth0 up
Das ist das Skript. Die Einstellungen für die Netzwerkkarte stimmen schon. Wenn ich ifconfig eth0 eingeb, wird alles richtig ausgegeben auch die MAC-Adresse. Nur komm ich halt nicht ins Netz.

Muss wohl irgendwie mit dem route Befehl zum Gateway zu tun haben, weil kein Ping-Versuch irgendwo ankommt. Ich kann weder den Gateway anpingen, noch mich selbst (localhost).

Was mach ich nur falsch???
Zuletzt geändert von TheNoOne am 23.01.2006 14:35:09, insgesamt 1-mal geändert.

Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

Beitrag von Wikinator » 23.01.2006 14:12:46

DHCP? Dann musst du zusätzlich noch ein:

Code: Alles auswählen

dhclient <interface>
machen.
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Beitrag von TheNoOne » 23.01.2006 14:34:44

Nein. Kein DHCP! Ich kenn wie gesagt meine IP-Adresse, Netzmaske, Netzadresse, Broadcast und die IP des Gateways.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 23.01.2006 15:08:56

die ip-Adresse gehört anscheinend ans Ende.
So funkt es bei mir:

Code: Alles auswählen

#!/bin/sh 

ifconfig eth0 down 
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
ifconfig eth0 netmask 255.255.0.0 broadcast 10.1.255.255 10.1.14.35
route add default gw 10.1.14.254 
ifconfig eth0 up
Gruß
gms

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: Netzwerk starten über Skripte

Beitrag von herrchen » 23.01.2006 15:13:13

TheNoOne hat geschrieben:noch mich selbst (localhost).
ist das interface "lo" konfiguriert?
Was mach ich nur falsch???
du hast dich nicht mal nach einem tool in den Debianpaketen umgesehen:

"netenv" z.b. ist genau für diesen zweck.

herrchen

ps. warum änderst du die MAC?

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 23.01.2006 15:21:42

was gibt denn

Code: Alles auswählen

ifconfig -a
aus?

Benutzeravatar
swar0g
Beiträge: 289
Registriert: 12.12.2002 22:07:17
Wohnort: Hannover

Re: Netzwerk starten über Skripte

Beitrag von swar0g » 23.01.2006 17:54:37

TheNoOne hat geschrieben:Hi,

ich wollte meine Netzwerkkarte über Shellskripte einrichten, da ich meinen Rechner voraussichtlich in unterschiedlichen Netzen benutzen werden muss und auf diese Weise schnell neue Einstellungen umsetzen kann.
Erfinde nicht das Rad neu. Es gibt eine Möglichkeit, sehr bequem auf verschiedene Profile in der /etc/network/interfaces zuzugreifen.

Code: Alles auswählen

#standard eth0 konfiguration
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0

iface ethd inet static
        address 192.168.0.100
        netmask 255.255.255.0
        pre-up iptables-clear
        up invoke-rc.d dhcp start
        up invoke-rc.d samba start
        down invoke-rc.d dhcp stop
        down invoke-rc.d samba stop

iface uni inet dhcp
        hwaddress ether 00:c0:9c:fc:11:78
        pre-up iptables-clear
        up enable_route3
        up invoke-rc.d ssh start
        up invoke-rc.d ntpdate start
        up ddclient -verbose 
        down invoke-rc.d ssh stop

#ein wirtuelles dhcp interface
iface dhcp inet dhcp



Dann startet man eth0=std bzw eth0=dhcp oder je nach dem, in welchem Netz man sich befindet.

Ganz praktisch erweist sich das Verfahren, wenn man mit einem Laptop + Wlan-Karte sehr oft unterwegs ist. So kann man schon die vielen essid's, WEP Passwörter, Dienste, bla für verschiedene Netzwerke sofort einsatzbereit halten.

Auf jeden Fall man interfaces durchlesen!
d3 d0 c1 d3 c9 20 cd c9 d2 2c 20 d5 c2 c5 ca 20 d3 c5 c2 d1 0a

MacLeod
Beiträge: 7
Registriert: 24.01.2006 10:20:21

Beitrag von MacLeod » 24.01.2006 13:48:05

fehlt da nicht die zuweisung auf eth0 fürs default gw?
route add default gw 10.1.14.254 eth0
so funkt das bei mir jedenfalls

MacLeod

Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Beitrag von TheNoOne » 24.01.2006 22:54:08

Also erst mal riesen Dankeschön für die Antworten!!!

@herrchen:
Das mit dem localhost anpingen geht jetzt! Du hattest recht, lo war nicht konfiguriert, bzw das 'auto lo' hat aufgrund meiner früheren Pfuschversuche in /etc/network/interfaces gefehlt.

@nil:
ifconfig -a bringt folgendes: (nur der eth0-Ausschnitt)

Code: Alles auswählen

eth0
Protokoll: Ethernet  Hardware Adresse <meine-MAC>
inet Adresse: 10.1.14.35 Bcast:10.1.255.255 Maske:255.255.0.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets 23644 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
Killisionen:0 Sendewarteschlangenlänge:1000
RX bytes2371184 (2.2 MiB)  Tx bytes:5400 (5.2 KiB)
Interrupt:23 Basisadresse:0x8400
@swar0g:
Hmm... deine Lösung find ich echt cool, aber ich steig da überhaupt nicht durch.
Bei meinen Wlan-Verbindungen mach ich das auch so über solche kleinen Shell-Skripte und ich will eigentlich auch nur das es läuft. Muss nicht die 100%-Sysadmin Lösung sein.

@McLeod:
Habs mal so wie du geschrieben hast eingegeben aber tut auch nicht :-(


Wenn ich versuch den Gateway anzupingen dann kommt halt folgende Fehlermeldung:

Code: Alles auswählen

From 10.1.14.35 icmp_seq=99 Destination Host Unreachable
Die Ausgabe von route sieht so aus:

Code: Alles auswählen

Kernel IP Routentabelle
Ziel      Router       Genmask      Flags Metric Ref     Use Iface
10.1.0.0  *            255.255.0.0  U     0      0       0   eth0
default   10.1.14.254  0.0.0.0      UG    0      0       0   eth0
(Bei der letzten Zeile wartet der immer ne Ewigkeit)

Hmm.. werd vielleicht mal dieses netenv ausprobieren.

MacLeod
Beiträge: 7
Registriert: 24.01.2006 10:20:21

Beitrag von MacLeod » 25.01.2006 10:42:14

dein gateway ist ja in einem anderen subnet! warum benutzt du für eth0 eine anderes subnet als beim gateway, dann kanns auch nicht klappen.
du mußt dann schon eth0 auch ins gleiche subnet bringen, also, 10.1.14.x und nicht 10.1.1.x dann klappts das auch...


cu
MacLeod

Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Beitrag von TheNoOne » 25.01.2006 10:55:43

Sorry. Blick ich nich :oops:

Meine IP ist doch 10.1.14.35 und die des Gateway 10.1.14.254
Wenn ich jetzt die Netzmaske 255.255.0.0 verwende bin ich doch im selben Netz, oder?

Vielleicht bin ich auch nur zu doof in dem Thema, aber was genau muss ich da jetzt ändern???

Benutzeravatar
swar0g
Beiträge: 289
Registriert: 12.12.2002 22:07:17
Wohnort: Hannover

Beitrag von swar0g » 25.01.2006 11:50:18

TheNoOne hat geschrieben:Also erst mal riesen Dankeschön für die Antworten!!!

@swar0g:
Hmm... deine Lösung find ich echt cool, aber ich steig da überhaupt nicht durch.
Bei meinen Wlan-Verbindungen mach ich das auch so über solche kleinen Shell-Skripte und ich will eigentlich auch nur das es läuft. Muss nicht die 100%-Sysadmin Lösung sein.
Is keine Sysadminlösung. Es ist eine eher nicht benutzte und nicht beachtete Möglichkeit. Die ist aber so gewaltig gut und einfach, dass die alle anderen Lösungen, inklusive Windows & Co in den Schatten stellt.

Also, nochmal. Du hast z.B. ein Wireless Lan Interface wlan0.

Seine Configuration in der /etc/network/interfaces lautet

Code: Alles auswählen

iface wlan0 inet dhcp
    wireless-essid MYHOMEESSID
Du aktivierst dein Interface, falls es nicht auf automatisch gestellt wurde, mit ifup wlan0

So weit so gut. Nun kommst du manchmal deinen Kumpel benutzen, der bei sich zuhause auch ein Wireless LAN Netzwerk hat, sein Access Point vergibt aber keine Adressen über dhcp. Die essid des Kumpels ist auch eine andere. Eigentlich müsstest du den Eintrag in der /etc/network/intrefaces Datei komplett umschreiben. Dieses Ewige die Einträge umzuschreiben hat dich dazu getrieben, /etc/network/intefaces aufzugeben und die Netzwerkkarte manuel über Scripte einzurichten.

Nun. Jetzt kommt die tolle möglichkeit ins Spiel, dass man den Defaulteintrag in der Konfigurationsdatei für wlan0 behält! Stattdesen legt man direkt dadrunter ein virtuelles Interface mit dem Namen profilename

Code: Alles auswählen

iface profilename inet static
        wireless-essid WIRELESSESSIDVOMKUMPEL
        wireless-key a93ad2231c1blabla
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        #Nameserver anpassen
        up echo 'nameserver 192.168.0.1' > /etc/resolv.conf
Jetzt, wenn du nicht zuhause, sondern beim Kumpel bist, tippst du statt
ifup wlan0
ifup wlan0=profilename


Das ist alles! Das tolle ist nun, du kannst profilename2 für einen anderen Kumpel dadrunter anlegen, oder besser, seinen Namen. Wenn du nahmenbehaftete virtuelle Intefaces einrichtest, fällt es dann wesentlich leichter, die zu benutzen. Dann musst du nur überlegen, wo du dich grad befindest. Uni? ifup wlan0=uni. Freundin? ifup wlan0=freundin. Und so fort bis zum Umfallen.

Willst du weiterhin noch Scripte zum Netzwerkeinrichten schreiben?

Die Faulheit treibt die Entwicklung voran. :D :wink: :wink: :)
d3 d0 c1 d3 c9 20 cd c9 d2 2c 20 d5 c2 c5 ca 20 d3 c5 c2 d1 0a

MacLeod
Beiträge: 7
Registriert: 24.01.2006 10:20:21

Beitrag von MacLeod » 25.01.2006 11:54:40

TheNoOne hat geschrieben:

Code: Alles auswählen

Kernel IP Routentabelle
Ziel      Router       Genmask      Flags Metric Ref     Use Iface
10.1.0.0  *            255.255.0.0  U     0      0       0   eth0
default   10.1.14.254  0.0.0.0      UG    0      0       0   eth0
hm.. wenn das "route" sagt, dann schließe ich daraus, das die eth0 im 10.1.0.x subnet ist
und das gateway halt im 10.1.14.x .... also, kann nicht gehen.

ich würde nun
route add -net 10.1.14.0 netmask 255.255.0.0 eth0
versuchen :wink:

und ev. die 10.1.0.0 aus der routing tabelle löschen


MacLeod

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 25.01.2006 12:42:38

MacLeod hat geschrieben: hm.. wenn das "route" sagt, dann schließe ich daraus, das die eth0 im 10.1.0.x subnet ist
und das gateway halt im 10.1.14.x .... also, kann nicht gehen.

ich würde nun
route add -net 10.1.14.0 netmask 255.255.0.0 eth0
versuchen :wink:

und ev. die 10.1.0.0 aus der routing tabelle löschen
hast du schon einmal die Subnetmask betrachtet ?
TheNoOne hat geschrieben:

Code: Alles auswählen

Ziel      Router       Genmask      Flags Metric Ref     Use Iface
10.1.0.0  *            [b]255.255.0.0[/b]  U     0      0       0   eth0

Benutzeravatar
iamnew
Beiträge: 26
Registriert: 20.01.2006 14:12:42

Beitrag von iamnew » 25.01.2006 13:26:12

hallo,

kannst du nicht mal deine /etc/network/interfaces posten?
bei deinen befehlen am anfang habe ich auch so meine schwierigkeiten.
wie viele interfaces hast du denn und welche einstellung hat den dein router? stimmt die netzmaske mit 255.255.0.0 oder hat der evtl. die 255.255.255.0?
/iamnew

--------------------------------------------------------------------------------------
who only looks out of WINDOWS, lost the touch with reality!

MacLeod
Beiträge: 7
Registriert: 24.01.2006 10:20:21

Beitrag von MacLeod » 25.01.2006 13:43:28

gms hat geschrieben: hast du schon einmal die Subnetmask betrachtet ?
:oops: autsch, stimmt ja!... :roll:

Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Beitrag von TheNoOne » 25.01.2006 20:21:18

Hmm... ok. Ich glaub ich bin ein Stückchen weitergekommen:
Ich hab mal auf meinem alten Desktoprechner die selbe Konfigurationsschritte durchgeführt und da klappts merkwürdigerweise.
Der Unterschied ist eigentlich nur, dass der alte Desktoprechner ne 100MBit-Netzwerkkarte drinhat und mein Laptop, auf dem ich das gerne zum Laufen bringen würde ne Gigabit-Netzwerkkarte.
Beim Laptop steht da bei 'ifconfig eth0' auch immer was von ipv6 und einpaar Hexziffern (sieht aus wie ne MAC-Adresse). Kann man das irgendwie deaktivieren, so dass die Netzwerkkarte nur 100MBit verwendet?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 25.01.2006 20:28:07

Kannst du mittels "ethtool" setzen (gleichnamiges Paket)
Ich würde den Fehler aber auch eher bei ipv6 vermuten, bei mir funktionierte dein Script ja auch und ich habe auch kein ipv6. Wie du ipv6 abschalten kannst findest du im wiki

Gruß
gms

Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

Beitrag von TheNoOne » 25.01.2006 22:31:14

Hmm... IPv6 abgeschaltet, wie in der Anleitung beschrieben (Modul wird jetzt nicht mehr geladen) und trotzdem funktioniert des nicht.

Die Ausgabe von route auf dem Rechner wo's läuft:

Code: Alles auswählen

Ziel        Router         Genmask      Flags  Metric  Ref  Use  Iface
localnet    *              255.255.0.0  U      0       0    0    eth0
default     10.1.14.254   0.0.0.0      UA     0       0    0    eth0
und auf dem Laptop steht da anstatt von localnet 10.1.0.0, aber des müsste ja des gleiche sein.

Ich weiß auch nicht weiter. Wenn ich auf dem Laptop Windows starte komm ich in das Netz rein?!?! Das einzige, was mir da aufgefallen ist, ist dass bei der Netzwerkeinstellungen bei dem Gateway "Automatisch" unter "Metrik" steht... was auch immer das bedeuten mag.

Tja... riesen Fragezeichen meinerseits...

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 25.01.2006 23:10:55

warum steht denn da das UA beim Gateway ?. Das ist mir nicht geläufig. Ich habe nur unter "man route" gesehen, daß das A für "installed by addrconf" steht. Mittels google findet man zu addrconf einiges im Zusammenhang mit ipv6

Wenn du nach deiner manuellen Konfiguration "ifconfig" anschaust, wird dort ein Interrupt bei den eth0 Settings angezeigt, bzw. hast du mit "lsmod" auch überprüft ob dein Netzwerkmodul auch geladen wurde ?

Ich würde es doch einmal über /etc/network/interfaces versuchen:

Code: Alles auswählen

auto eth0
iface eth0 inet static
   address 10.1.14.35
   network 10.1.0.0
   netmask 255.255.0.0
   gateway 10.1.14.254
Gruß
gms

Antworten