Am Fri, 04 May 2012 19:21:44 +0200 schrieb Achim Theobald ath.mailman@muffti.de:
(..)
Auf dem Server läuft dhcpd, dns, ntpd usw. Ebenso ist er als Router konfiguriert mit IP-Forwading. Iptables ist aktiv mit den entsprechenden Ports freigeschaltet. Alle Client beziehen Ihre IP vom Server, der ist auch als Gateway für Sie angegeben. Läuft halt so....
(..)
Alle Client hängen im Subnetz 192.168.1 an eth1 (Server IP: 192.168.1.100) Den DSL-Router wollte ich dann an eth0 (Subnetz 192.168.0 mit Server IP: 192.168.0.100) hängen. Soweit so gut... Nur wie mache ich das jetzt mit dem Routing und dem Forwarding?
Am Server muss ip-forwarding eingeschaltet werden, wenn Du nicht alles über Proxys abwickeln willst. Das ist eine grundsätzliche Design- und Security-Entscheidung.
Das Routing hängt davon ab. was die "Router" können. Wenn der DSL-Router kein dynamisches Routing kann und zumindest ein Teil des Verkehrs nicht über Proxies, sondern via IP-forwarding abgewickelt werden soll, musst Du ihm eine statische Route zum Client-Netzwerk mit der eth0-Adresse als Gateway eintragen, sonst finden die Pakete zwar den Weg hinaus, aber nicht mehr zurück. Für Linux gibt es routing-Daemons wie Quagga, ehem. Zebra. Vorzugsweise OSPF, notfalls auch RIP. Wenn das nicht möglich ist, musst Du entweder ausschließlich mit Proxies (egal ob transparent oder non-transparent) oder mit NAT alias IP-masquerading am Server arbeiten.
Eigentlich hättest Du auch bisher ein dynamisches Routing gebraucht, weil mit Server und DSL-Router zwei Router im selben Netz mit den Clients waren. Vermutlich war in Deinem Netz "ICMP redirect" erlaubt, sonst hätte das nicht funktioniert. Sicheres Netzwerk-Design verbietet solche Krücken, weil man damit halt auch unerlaubte Router integrieren kann und außerdem hat es in Deinem alten Setup die iptables-Regeln ausgehebelt. Aber das musst Du insbesondere am Client korrigieren.
Für die Clients soll sich natürlich nichts ändern.
Wenn diese via DHCP bereits die Server-Adresse .1.100 als Default-Gateway bekommen, dann kann das unverändert bleiben.
Was trage ich nun bei eth1 als Gateway ein?
Nichts. Es kann nur ein Default-Gateway im System geben.
Für eth0 wird dann wohl als Gateway die (neue) IP vom DSL Router eingetragen.
Richtig.
Wie funktioniert das mit iptables?
"Auch"... aber eigentlich kommt Centos-6 für diese Zwecke mit einem Tool namens system-config-firewall (bzw. -tui) daher. Für die meisten Setups inkl. IP-masquerading reicht das aus. Man sollte aber nur das konfigurieren, was man sicher versteht und nicht nur, was man vermutet.
Gruß, Tobias.