/etc/init.d networking

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
paulderfinne
Beiträge: 464
Registriert: 23.08.2004 12:44:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Osternohe

/etc/init.d networking

Beitrag von paulderfinne » 02.12.2016 12:30:57

Hallo liebe Debianer.

Ich habe hier einen Stretch mit neuestem upgrade laufen. Bisher wechselte ich zwischen Netzwerken immer, indem ich im Unterverzeichnis /etc/network die unterschiedlichen Netzwerke in die Datei interface reinschreibe. Dann starte ich das Netzwerk mit /etc/init.d/networking restart. Das funktioniert aber plötzlich nicht mehr. Scheinbar greift /etc/init.d networking nicht mehr auf die o.e. Dateien zu.

Hat da jemand Ahnung, was sich da geändert hat? Wie startet man neuerdings ein neues Netzwerk?

DeletedUserReAsG

Re: /etc/init.d networking

Beitrag von DeletedUserReAsG » 02.12.2016 12:34:47

systemd übernimmt den Job nun (sofern nicht anders konfiguriert), entsprechend benutzt man systemctl für solche Sachen.

Benutzeravatar
paulderfinne
Beiträge: 464
Registriert: 23.08.2004 12:44:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Osternohe

Re: /etc/init.d networking

Beitrag von paulderfinne » 02.12.2016 14:40:11

Vielen Dank niemand für die schnelle Antwort.

Kannst du mir den entsprechenden Befehl schreiben? Also den, der /etc/init.d networking restart entsprechen würde.

Edit: Ich habe nun diesen Link gefunden: https://www.debinux.de/2014/12/debian-b ... t-systemd/

Das würde aber (wenn ich das richtig verstehe) bedeuten, dass ich meine /etc/network gar nicht mehr nicht mehr nutzen kann und die interfaces Datei nach /etc/systemd/network kopieren müsste.

Wenn aber systemd das alles übernimmt, warum funktioniert mein Netzwerk dann nach einem Neustart?

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: /etc/init.d networking

Beitrag von dufty2 » 02.12.2016 17:18:47

Code: Alles auswählen

# systemctl restart networking.service
Viele Wege führen nach Rom. systemd bringt quasi seinen eigenen "NetworkManager" mit namens "systemd-networkd" mit.
Wenn man jenen nicht haben will (und auch den klassischen NetworkManager" nicht), muss man halt beide deaktivieren und dafür "networking.service" verwenden.
Dann kann man seine "interface"s unter /etc/network weiterverwenden.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: /etc/init.d networking

Beitrag von wanne » 03.12.2016 01:47:31

Hier nochmal etwas ausführlicher:
Systemd ist verdammt groß und kann verdammt viel. Unter anderem Dienste (In systemd-Sprech services in UNIX-Sprech daemons) starten und das Netzwerk konfigurieren.
Mit ersterem löst er Systemv-Init und damit den Ordner init.d ab.
Mit letzterem networking Diensts und damit die /etc/network/interfaces.
In Debian jessie kannst du wählen wo du systemd einsetzen willst und wo nicht.
Default ist dass man systemd zwar zum Dienste starten benutzt (Also auch für das starten des networking Dienstes.) Aber nicht nicht zum konfigurieren des netzwerkes. Da bleibt die /etc/network/interfaces default. Bzw. der NetworkManager wenn man Gnome nutzt glaube ich.
Will man das so machen startet man damit neu:

Code: Alles auswählen

systemctl restart networking
Man kann aber auch stattdessen das Netzwerk direkt von Systemd konfigurieren lassen. (Ich mag es ganz gerne. Im Moment nutzen das aber noch relativ wenige.)
Dann wäre das

Code: Alles auswählen

systemctl restart systemd-networkd
Konfigurieren tut man das dann unter im Ordner /etc/systemd/network/
Nutzt man den NetworkManager wäre es entsprechend:

Code: Alles auswählen

systemctl restart NetworkManager.service
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
paulderfinne
Beiträge: 464
Registriert: 23.08.2004 12:44:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Osternohe

Re: /etc/init.d networking

Beitrag von paulderfinne » 03.12.2016 09:54:32

Vielen Dank, Wanne für deine Ausführungen. So richtig klug werde ich trotzdem nicht draus. Also bei mir ist das jetzt so:
Wechsle ich das Netzwerk mit einem neuen /etc/network/interfaces und ein anschließndes /etc/init.d networking restart, dann bin ich in der Tat im neuen Netzwerk drin. D.H ich kann alle Adressen im Intra- und Internet pingen. Allerdings zeigt mir ein ifconfig noch die alte IP-Adresse. Genau das Gleiche passiert, wenn ich statt /etc/init.d networking restart ein systemctl restart networking abfeuere. Mache ich hingegen einen Neustart, dann geht das Netzwerk UND mein ifconfig zeigt die richtige IP-Adresse.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: /etc/init.d networking

Beitrag von wanne » 03.12.2016 10:07:20

paulderfinne hat geschrieben:Allerdings zeigt mir ein ifconfig noch die alte IP-Adresse.
Das ist wiederum eine andere Baustelle.
Linux kann schon extrem Lange mehrere IP Adressen auf einem Interface haben. ifconfig zeigt aber immer nur eine an.
Deswegen gibt es jetzt Debianiproute2. Das Ding kann deutlich mehr, verbaut sich besser in Scripte und die syntanx ist etwas eingängiger (insbesonderere ähnlich zu iOS, sodass sich Cisco und HP leute nicht weiter 2 merken müssen.) Dafür hat es eine etwas unübersichtlichere Ausgabe.
Zum anzeigen der IP wäre das
ip addr list
oder kurz

Code: Alles auswählen

ip a l
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
paulderfinne
Beiträge: 464
Registriert: 23.08.2004 12:44:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Osternohe

Re: /etc/init.d networking

Beitrag von paulderfinne » 03.12.2016 12:57:39

Oh, danke für diese Info. Man lernt ja nie aus.
wanne hat geschrieben:Linux kann schon extrem Lange mehrere IP Adressen auf einem Interface haben
Heißt das jetzt, dass wenn ich die ganzen ip-Adressen, die ich für die unterschiedlichen Netze brauch der einen Karte zuordnen, dass diese sich dann jeweils die brauchbare aussucht? Automatisch? Das würde mein Handling natürlich ungemein erleichtern. Und wenn ja, was muss ich in welche Datei schreiben? Will dich jetzt nicht stressen, wäre aber super, wenn du mir das sagen könntest.

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: /etc/init.d networking

Beitrag von dufty2 » 03.12.2016 13:55:20

Code: Alles auswählen

# systemctl stop networking
# ip addr flush dev eth0
# systemctl start networking
sollte Dir eine saubere Konfig liefern und kein Kuddelmuddel.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: /etc/init.d networking

Beitrag von wanne » 03.12.2016 15:06:30

paulderfinne hat geschrieben:Heißt das jetzt, dass wenn ich die ganzen ip-Adressen, die ich für die unterschiedlichen Netze brauch der einen Karte zuordnen, dass diese sich dann jeweils die brauchbare aussucht?
Dafür gibt es Routingtabellen.
Anzeigen kannst du die mit

Code: Alles auswählen

ip route list
bzw.

Code: Alles auswählen

ip -6 route list
Wenn du beim hinzufügen der ip Netzmaske mit angibst, macht er automatisch einen Eintrag.

Fügst du
2001:0db8:85a3:1111::12/64
Dazu sendet er automatisch alles was mit 2001:0db8:85a3:1111 anfängt direkt über die Adresse 2001:0db8:85a3:1111::12 (Bei IPv6 hat jede Ziffer 4Bit und zwischen 2 : stehen je 4 Ziffern => 16Bit. 4 Tupels sind also 64Bit)
Bei 2001:0db8:85a3:2222::12/56 wäre es entsprechen alles was mit 2001:0db8:85a3:22 anfängt.

Willst du dagegen, dass etwas über einen anderen Router läuft nutzt gibst du eine route an.
z.B

Code: Alles auswählen

ip route add 2001:0db8:85a3:3333::/64 via 2001:0db8:85a3:2222::1
geht alles was mit 2001:0db8:85a3:3333 anfängt über die Adresse 2001:0db8:85a3:2222::1 (die über 2001:0db8:85a3:2222::12 erreichbar ist, weil sie mit 2001:0db8:85a3:22 anfängt.)
Hast du mehrere Wiedersprüchliche angaben wir die mit dem größten Präfix genommen.

IP funktioniert weitestgehend gleich. Nur das man da die Adressen erst in Binär umrechnen muss, wenn man wissen will ob der Anfang gleich ist.
Ausnahemen sind die /8 /16 und /24. Die sind genau an den Punkten. 192.168.100.1/24 ist entsprechend das Netz 192.168.100/24
Für 192.168.100.1/18 wäre das dann:
((192*256+168)*256+100)*256+1=3232261121=
11000000101010000110010000000001b
Die ersten 18Bit davon sind
110000001010100001
Die kleinste Zahl die mit 110010001100100010 anfängt ist
11000000101010000100000000000000b=3232251904 die Größte
11000000101010000111111111111111b=3232268287
3232251904%256=0
3232251904/256%256=16
3232251904/256^2%256=168
3232251904/256^3%256=129
3232268287%256=255
3232268287/256%256=127
3232268287/256^2%256=168
3232268287/256^3%256=192
=> Das Netz ist 192.168.64.0-192.168.127.255
Wenn dir das von Hand zu anstrengend ist gibt es dafür Debianipcalc

Code: Alles auswählen

ipcalc 192.168.100.1/18

Ganz üblich ist die route 0/0. Da die ersten 0 Bits sind immer gleich. Entsprechend trifft das für alles zu.
Da kleiner als 0 nicht geht, wird sie nur für alles genutzt, wo nichts anderes zutrifft.
Typisch, wenn man genau einen Zugang zum Internet hat.
Sie wird auch default oder gateway oder default gateway genannt.
rot: Moderator wanne spricht, default: User wanne spricht.

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: /etc/init.d networking

Beitrag von dufty2 » 03.12.2016 15:44:06

paulderfinne hat geschrieben: Heißt das jetzt, dass wenn ich die ganzen ip-Adressen, die ich für die unterschiedlichen Netze brauch der einen Karte zuordnen, dass diese sich dann jeweils die brauchbare aussucht? Automatisch?
Nein, das gibt leider Kuddelmuddel.
Beispiel:
Zuerst 10.0.0.2/24, danach Wechsel mit 192.168.0.2/24:

Code: Alles auswählen

default via 192.168.0.1 dev eth0 onlink 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2
Die "10er" hat er nicht gelöscht, willst Du aber jetzt ins 10er zugreifen, würde er versuchen, nicht über das Gateway (192.168.0.1) zu gehen sondern "direkt":

Code: Alles auswählen

$ ip route get 10.0.0.10
10.0.0.10 dev eth0 src 10.0.0.2 
    cache

Antworten