Ubuntu Linux als Router verwenden

Mitglied: altmetaller

altmetaller (Level 3)

17.05.2020, aktualisiert 20.06.2020, 2776 Aufrufe, 21 Kommentare, 9 Danke

Hallo,

im Ubuntu Ubuntu Wiki findet man eine Anleitung, wie man einen Linux-PC als Router verwendet. Diese enthält ein paar Fallstricke. Da man bei der Fehlersuche auf diverse "Wahnsinnsvorschläge" (resolved deinstallieren, Upstream-DNS in resolv.conf eintragen, DNSStubListener deaktivieren usw.) stößt, erklärt diese auf das Wesentliche reduzierte Anleitung die "Best practice".

In meinem Beispiel hat der Linux-PC zwei Schnittstellen:

  • eth0: Internetanbindung
  • eth1: Hier hängen die Geräte, die den Rechner als Router nutzen sollen

Zur Vorbereitung bekommt eth1 eine statische IP-Adresse zugewiesen. In meinem Beispiel habe ich, dem Ubuntu-Wiki entsprechend, die 192.168.3.1/24 gewählt.

Konfiguration Server

Zuerst installiert man dnsmasq:
In der Datei /etc/dnsmasqd.conf werden folgende Einstellungen vorgenommen:
Als DHCP-Range verwenden wir 192.168.3.2 bis 192.168.3.254:
Ganz wichtig: Mit dieser Konfiguration kann der dnsmasq noch nicht starten, da er versucht, sich an Port 53 vom localhost zu klemmen. Dort residiert aber schon der resolved und der Port kann nur einmal belegt werden. "Best practice" ist hier, folgende zusätzliche Option in der /etc/dnsmasqd.conf zu setzen:
Damit wird erreicht, dass der Service nur an Schnittstellen gebunden wird, die wir explizit angegeben haben. In unserem Beispiel also nur an eth1.

Zum Testen starten wir den dnsmasq manuell:
Ob er läuft bzw. warum er nicht startet, verrät uns folgender Befehl:
Wenn das funktioniert, möchten wir, dass dnsmasq bei jedem Systemstart automatisch geladen wird:
Ganz wichtig: Hier lautet der zweite Fallstrick, da die benötigten Schnittstellen beim Systemstart u.U. noch nicht aktiv sind. Wir holen uns die Startdatei wie folgt in den Editor:
Hier finden wir den Abschnitt [Unit], dort ergänzen wir folgende Beiträge:
Nach dem Speichern können wir das Ergebnis dieser Änderung in /etc/systemd/system/dnsmasq.service überprüfen.

Portweiterleitung

IP-Forwarding aktivieren:
Das Forwarding funktioniert nur bis zum nächsten Neustart. Möchte man es dauerhaft etablieren, entfernt man die Auskommentierung in der /etc/sysctl.conf

Wir benötigen Regeln für die iptables:

NAT aktivieren:
Zum (dauerhaften) Speichern der Regeln installieren wir das folgende Paket:
Während der Installation (und nur dann!) werden wir gefragt, ob wir die Regeln dauerhaft speichern sollen. Dies bejahen wird für IPv4.

Die Regeln werden übrigens in /etc/iptables/rules.v4 gespeichert. Das Format entspricht dem von iptables-save bzw. iptables-restore. D.h., wenn wir die Regeln irgendwann einmal erweitern, können wir sie wie folgt dauerhaft etablieren:

Liebe Grüße,
Jörg
Mitglied: it-frosch
18.05.2020 um 08:01 Uhr
Hallo Jörg,

sehr klare und verständliche Anleitung.
Warum korrigierst du die Anleitung nicht bei Ubuntuusers?
Wäre doch schade, wenn die Stolpersteine dort blieben.

grüße vom it-frosch
Mitglied: 142139
18.05.2020 um 12:53 Uhr
Also "Ubuntu als Router", das nenn ich sportlich!

Vor allen Dingen, weil der Netzwerkteil von Ubuntu dermassen vermasselt ist, dass schon ein normaler Betrieb meist auf Probleme stösst.
(und das Teil in vielen Dingen gegen diverse RFCs arbeitet).

Wer wirklich einen soliden, planbaren und wartungsfreien Router (bzw. Layer 3 Switch) will, wendet sich dem BSD Lager zu. Da funktioniert das Netzwerk so, wie es soll, nicht bei jeder Version ändert sich die Konfiguration um 100% (ich sag nur: "heute interfaces, morgen netplan, übermorgen?").
Mitglied: Lochkartenstanzer
18.05.2020, aktualisiert um 12:56 Uhr
Zitat von 142139:

Also "Ubuntu als Router", das nenn ich sportlich!

Vor allen Dingen, weil der Netzwerkteil von Ubuntu dermassen vermasselt ist, dass schon ein normaler Betrieb meist auf Probleme stösst.
(und das Teil in vielen Dingen gegen diverse RFCs arbeitet).

Wer wirklich einen soliden, planbaren und wartungsfreien Router (bzw. Layer 3 Switch) will, wendet sich dem BSD Lager zu. Da funktioniert das Netzwerk so, wie es soll, nicht bei jeder Version ändert sich die Konfiguration um 100% (ich sag nur: "heute interfaces, morgen netplan, übermorgen?").


Aber wenn schon, dann NetBSD natürlich. Open- und Free-BSD sind da "nicht so stabil".

lks

PS: Man kann auch mit debian ordentliche Router "bauen".
Mitglied: altmetaller
18.05.2020 um 21:13 Uhr
Hallo,

Zitat von 142139:

Also "Ubuntu als Router", das nenn ich sportlich!

Ehrlich gesagt weiß ich nicht, ob eine Anleitung der korrekte Ort ist, Qualitäten oder Nicht-Qualitäten der verwendeten Software bzw. Komponenten zu diskutieren.

Oder rennst Du auch beim Opel-Händler rein und erzählst den Kunden dort, dass dein VW ja ganz viel toller ist?!?

Liebe Grüße,
Jörg
Mitglied: 142139
18.05.2020, aktualisiert um 21:44 Uhr
ich will gar nicht diskutieren, ich will die Leute nur davor warnen.

(allerdings ist in diesem Falle ja weder Performance, noch hohe Sicherheit benötigt, als schnöder Router fürs Heimnetz mag Ubuntu vielleicht sogar ausreichen. Aber wehe, wenns etwas stressiger wird!)
Mitglied: altmetaller
18.05.2020, aktualisiert um 21:48 Uhr
Hallo,

Zitat von 142139:

ich will gar nicht diskutieren, ich will die Leute nur davor warnen.

Nö - Du möchtest "einfach nur um der Aufmerksamkeit" mitsabbeln. Die (pauschale) Aussage, dass Ubuntu bewusst gegen RFCs verstößt, ist schlichtweg unwahr.

Wie gesagt - wenn Du darüber sprechen möchtest, mach' gerne einen eigenen Thread auf und diskutiere das (z.B. anhand von Beispielen) konkret. Entweder hier, oder - noch besser - im Ubuntu-Forum. Aber sei bitte so nett und mülle die Anleitungen nicht mit deinen unbegründeten persönlichen Animositäten zu.

Die Threads hier sind auch öffentlich einsehbar und so ein Verhalten ist schlichtweg ein schlechtes Aushängeschild. Wir sind hier nicht im Quakenet oder im knuddelz-Chat.

Gruß,
Jörg
Mitglied: 142139
19.05.2020 um 07:31 Uhr
Können wir mit Kritik schlecht leben?
Ich "sabbel" hier nicht rum, ich fordere die Leute nur auf, die hier kundgetanen "Wahrheiten" zu hinterfragen und ggf. eine deutlich sinnvollere Lösung zu suchen (ich propagiere ja noch nichtmal WELCHE oder WO, wie neutraler hätten wir es gerne?)

Fakt ist, einen "Router" wie hier beschrieben, könnte man auch mit Windows-Bordmitteln aufsetzen. Tut aber niemand. Warum? Weil der Wasserkopf von Windows dafür viel zu groß ist. Und genau dasselbe trifft auf Ubuntu zu, ein großer, fetter Elefant, der mehr Arbeit macht, als die Funktion hergibt.
Mitglied: Lochkartenstanzer
19.05.2020, aktualisiert um 09:27 Uhr
Zitat von 142139:

Weil der Wasserkopf von Windows dafür viel zu groß ist. Und genau dasselbe trifft auf Ubuntu zu, ein großer, fetter Elefant, der mehr Arbeit macht, als die Funktion hergibt.

Naja, fast jeder denkt bei Ubuntu an den großen fetten Desktop. Aber Ubuntu gibt es auch als ein Minimalsystem, entweder per debootstrap oder als Minimalserver installiert, bei dem man nur das notwendigste installiert. Damit kann man schon was anfangen. Auch als "quick'n-dirty"-Router. Insbesondere wenn man mit Ubuntu firm ist aber sich in NetBSD erstmal einarbeiten müßte, ist Ubuntu dann in diesem speziellen Fall die bessere Wahl.

lks
Mitglied: altmetaller
19.05.2020 um 08:52 Uhr
Hallo,

danke, LKS!

Ich denke, er ist nur gefrustet, weil er netplan nicht auf Anhieb verstanden hat.

Ähnlich ging es mir mit dem systemd, nur blase ich meinen Frust nicht unreflektiert ins Internet.

Ich denke, genau das macht einen guten (besonnen) Administrator aus.

Gruß,
Jörg
Mitglied: 142139
19.05.2020, aktualisiert um 10:13 Uhr
Also, ich muss euch beiden wieder enttäuschen. Weder bin ich der Gefrustete, noch habe ich Netplan nicht verstanden, noch weis ich nicht um die "Server"version von Ubuntu (de facto weiss ich nichts über irgendwelche Desktopversionen, sowas gibts hier nicht).
Es sind einfach 35 Jahre Adminerfahrung im etwas größeren Umfeld. Da merkt man schnell, welche Kiste andauernd Ärger machen und Arbeit bereiten, und welche einfach still vor sich hinlaufen und sogar sich selbst überwachen und dem Admin freundlich auf einen potentiellen Fehler hinweisen.

Und da hat sich Ubuntu (warum auch immer) in den letzten Jahren in die total falsche Richtung entwickelt, inzwischen haben die "Entwickler" auch wohl teilweise den Überblick verloren, was da denn wirklich abgeht. Netplan war nur so ein Beispiel. Total krumpelige Konfiguration (das Sensibelchen erfordert schon fast ein eigenes Tool um die Konfiguration zu generieren, schon ein falsches Leerzeichen kann das AUS bedeuten), und sinnlos (es tut ja nix mehr / besser also die vorige Version). Das zieht sich überall durch.
Ubuntu will Geld mit Support verdienen, verstehe ich. Aber ich schicke meine Leute nicht alle 2 Jahre zu einer neuen Schulung, weil das Wissen der vorigen Version inzwischen so veraltert ist, dass sie von Grund auf neu lernen müssen.
Ist mir zu teuer. Es ist mir auch zu teuer, nach jedem Update mit neuen Problemen konfrontiert zu werden und erstmal die große Suchaktion starten zu müssen.

Das es auch deutlich anders geht, zeigen BSD Betriebssysteme seit 40 Jahren. Die Grundstrukturen sind gleich geblieben, die Konfiguration geht immer noch so, wie "damals" und die Kisten müllen sich nicht selber voll.
Das sind die Grundvorraussetzungen um sich SERVER nennen zu dürfen.

Wenn Du natürlich nur eine Kiste auf dem Schreibtisch vor Dir hast, ist es egal, wenn es ein paar hundert werden, lernst Du schnell, womit man besser schläft.
Mitglied: altmetaller
19.05.2020 um 10:39 Uhr
Hallo,

Du kannst es nicht lassen, oder?

Gruß,
Jörg
Mitglied: maretz
21.05.2020 um 21:03 Uhr
Wenn du wirklich 35 Jahre Admin-Erfahrung hast dann tust du mir mit deinen Kommentaren ehrlich gesagt eher leid. Denn die Zeit hat wohl nicht ausgereicht um zu lernen das es ANFORDERUNGEN gibt. Ist Ubuntu das beste System? Nein - genauswowenig wie Windows, BSD, Unix oder was auch immer. Es gibt nicht das beste System - sondern nur das was zu meinen Anforderungen passt. Aber scheinbar haben deine 35 Jahre nicht gereicht um sowas zu verstehen - sondern du bist irgendwo auf dem Level „Linux ist besser als Windows“, „Mac besser als PC“ usw. hängen geblieben... Schade eigentlich, aber du kannst die nächsten Jahre ja noch schauen ob du was lernen kannst..

Und übrigens: Nur weil etwas gleich bleibt ist es nicht immer automatisch BESSER. Ich arbeite übrigens mittlerweile auch einige Jahre mit Linux und schaffe es problemlos auch noch ohne Schulungen - und das sind nicht nur einfache Router die da stehen...
Mitglied: NetzwerkDude
28.05.2020 um 13:02 Uhr
Was spricht denn konkret gegen Ubuntu? Habs hier als Router laufen mit 2x10Gbit, etlichen VLANs und DMZs und die IPTables Rules haben zig Chains ind weißgott wieviele Zeilen an Config - kann keine Probleme feststellen.
Mitglied: altmetaller
28.05.2020, aktualisiert um 13:29 Uhr
Hallo,

Zitat von NetzwerkDude:

Was spricht denn konkret gegen Ubuntu? Habs hier als Router laufen mit 2x10Gbit, etlichen VLANs und DMZs und die IPTables Rules haben zig Chains ind weißgott wieviele Zeilen an Config - kann keine Probleme feststellen.

Nichts. Ich mache das seit 1998 so. Damals noch unter SuSe via ipchains mit Quake-Modul. Ich habe nie RfC-Verstöße festgestellt, die mich an irgend etwas gehindert haben. Schade finde ich,
  • Das diese Diskussion hier an dieser Stelle geführt wird
  • Dass es sich alles auf die Behauptung "Ubuntu ist Sch...." reduziert

Ich habe die Anleitung neulich noch mal "nachgeklickt", weil ich von "Ubuntu 18.04 LTS dev" auf "Ubuntu 20.04 Server stable" gewechselt bin. Nach 5 Minuten hatte ich eine funktionierende Router-VM für mein Testszenario.

Liebe Grüße,
Jörg
Mitglied: juppeck
11.06.2020 um 03:06 Uhr
Ob man nun Ubuntu oder NetBSD auf dem Schreibtisch stehen hat, ist wohl eine Frage der Anforderung. Ich habe vor 15 Jahren mal ein Suse Rechner verwendet, um die 60 Leased-Lines zu routen. Hat nie ärger gemacht und lief ca. 7 Jahre tadellos.
Heute würde ich es so nicht mehr verwenden, weil es viel bessere Lösungen und mit Redundanz gibt.

Die Frage würde ich erstmal mit "JA-EIN" beantworten wollen. Ja, weil Linux diese Aufgabe lösen kann. Nein, wenn man SLA zu erfüllen hat. Ja, wenn man einen Ausfall tolerieren kann.
Die Langzeitstabilität hängt in hohem Maß von der verwendeten Hardware ab. Ein einfacher Tisch-PC ist für Dauerbetrieb eher ungeeignet. Ihm fehlt es an Redundanzen und Kühlung.

Will man nur etwas Erfahrung sammeln oder etwas ausprobieren, warum nicht?

Die Frage ob man Linux oder NetBSD einsetzt, finde ich akademisch. Man nimmt dass Betriebssystem, mit dem man am besten umgehen kann, denn den Support dafür leistet niemand anders als Du.


Die 35 Jahre Admin-Erfahrung des Users "142139" und sein daraus resultierender Einwand ist für mich durchaus nachvollziehbar.
Gleich wohl finde ich den Einwand provokant formuliert, denn sie ruft sofort und mit Ansage, die pro/Kontra Debatte auf den Plan - mit den bekannten Verläufen. Davon niemand etwas.

Die permanenten Änderungen an der Unix-Struktur nerven auch mich, denn sie mindern die administrative Effizienz.

Dies macht aber Linux nicht schlechter und BSD nicht besser. Es ist ein Merkmal, welches sich zur Entscheidung pro/kontra nutzen lässt. Wer die Wahl hat, hat die Qual.

Was die Stabilität angeht, würde ich eher auf einen diskreten Layer-3 Switch setzten. Sie sind geeigneter für den Dauerbetrieb und bieten oft weitgehende Redundanzen und lassen sich gut in ihrem Stromverbrauch konfigurieren.

Zu Spielen und Testen spielen all diese Kritikpunkte gar keine Rolle. Man nimmt was man am besten bedienen kann.
Mitglied: bloodstix
19.06.2020 um 15:07 Uhr
Hi,

nette Anleitung. Aber wenn man schon eine Anleitung verbessert sollte man da nicht selber Fehler reinbauen.
Die Service-Files in /lib/systemd sollte man nicht anfassen. Overrides dafür legt man in /etc/systemd ab, da diese
nicht beim nächsten Update ggf. überschrieben werden!

Grüße
bloody
Mitglied: altmetaller
19.06.2020 um 16:07 Uhr
Hallo,

Zitat von bloodstix:

Die Service-Files in /lib/systemd sollte man nicht anfassen. Overrides dafür legt man in /etc/systemd ab, da diese
nicht beim nächsten Update ggf. überschrieben werden!

Danke für dein Feedback. So etwas ist ganz wichtig!

Ich habe mein Testnetz gerade ziemlich zerlegt und kann nicht selber schauen. Muss ich die /lib/systemd/system/dnsmasq.service nach /etc/systemd/system/dnsmasq.service umkopieren; oder liegt unterhalb von /etc/ ebenfalls eine dnsmasq.service, die ich "nur noch" abändern muss?

Liebe Grüße,
Jörg
Mitglied: bloodstix
19.06.2020 um 19:08 Uhr
Hallo @FA-jka,
schau dir dazu mal die Doku zu "systemctl edit <unitfileName>" bzw. "systemctl edit --full <unitfileName>" an.
Damit kannst du drop-in units erstellen. die landen automatisch dann beim ersteren in /etc/systemd/system/<unitfileName>.service.d/
bzw. beim letzteren in /etc/systemd/system/<unitfileName>.service

Grüße
bloody
Mitglied: altmetaller
19.06.2020 um 22:15 Uhr
Hallo,

dann muss ich erst mal ein Testszenario bauen. Hoffentlich denke ich bei Kleinem dran.

Gruß,
Jörg
Mitglied: altmetaller
20.06.2020 um 15:04 Uhr
Hallo,

ich habe das jetzt ausprobiert und die Anleitung angepasst - vielen Dank für deinen Beitrag!

Gruß,
Jörg
Mitglied: bloodstix
20.06.2020 um 18:29 Uhr
Hi,
ist doch prima,
jetzt hält es auch den Updates stand :D ...

Grüße
bloody
Titel: Ubuntu Linux als Router verwenden
Content-ID: 572675
Art des Inhalts: Anleitung
Ausgedruckt am: 14.07.2020 um 21:14:59 Uhr
URL: https://administrator.de/contentid/572675