/etc/init.d networking
- paulderfinne
- Beiträge: 507
- Registriert: 23.08.2004 12:44:02
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Osternohe
/etc/init.d networking
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?
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?
Re: /etc/init.d networking
systemd übernimmt den Job nun (sofern nicht anders konfiguriert), entsprechend benutzt man systemctl für solche Sachen.
- paulderfinne
- Beiträge: 507
- Registriert: 23.08.2004 12:44:02
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Osternohe
Re: /etc/init.d networking
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?
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?
Re: /etc/init.d networking
Code: Alles auswählen
# systemctl restart networking.service
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.
Re: /etc/init.d networking
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:
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
Konfigurieren tut man das dann unter im Ordner /etc/systemd/network/
Nutzt man den NetworkManager wäre es entsprechend:
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
Dann wäre das
Code: Alles auswählen
systemctl restart systemd-networkd
Nutzt man den NetworkManager wäre es entsprechend:
Code: Alles auswählen
systemctl restart NetworkManager.service
rot: Moderator wanne spricht, default: User wanne spricht.
- paulderfinne
- Beiträge: 507
- Registriert: 23.08.2004 12:44:02
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Osternohe
Re: /etc/init.d networking
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.
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.
Re: /etc/init.d networking
Das ist wiederum eine andere Baustelle.paulderfinne hat geschrieben:Allerdings zeigt mir ein ifconfig noch die alte IP-Adresse.
Linux kann schon extrem Lange mehrere IP Adressen auf einem Interface haben. ifconfig zeigt aber immer nur eine an.
Deswegen gibt es jetzt iproute2. 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.
- paulderfinne
- Beiträge: 507
- Registriert: 23.08.2004 12:44:02
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Osternohe
Re: /etc/init.d networking
Oh, danke für diese Info. Man lernt ja nie aus.
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.wanne hat geschrieben:Linux kann schon extrem Lange mehrere IP Adressen auf einem Interface haben
Re: /etc/init.d networking
Code: Alles auswählen
# systemctl stop networking
# ip addr flush dev eth0
# systemctl start networking
Re: /etc/init.d networking
Dafür gibt es Routingtabellen.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?
Anzeigen kannst du die mit
Code: Alles auswählen
ip route list
Code: Alles auswählen
ip -6 route list
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
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 ipcalc
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.
Re: /etc/init.d networking
Nein, das gibt leider Kuddelmuddel.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?
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
Code: Alles auswählen
$ ip route get 10.0.0.10
10.0.0.10 dev eth0 src 10.0.0.2
cache