Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

14.12.2010, 10:11

Zwei unterschiedliche Netze an einem Server Ping und DNS Problem.

Hallo,

ich habe momentan ein Problem mit meinem Gentoo Server welcher in zwei unterschiedlichen Netzen hängt.

Ich habe
eth0 in 172.16.x.x / 16 und eth1 in 172.23.x.x / 16

DNS Problem:
Im DNS Server wird für den DNS Name immer die IP aus dem 172.23.x.x Netz eingetragen. Warscheinlich weil dieses Interfaces als letztes gestartet wird.
Ändere ich die IP manuell auf 172.16.x.x und starte das Interface eth1 neu, änder sich wieder die IP auf 172.23.x.x.
Kann ich das irgendwie unterbinden?

Ping Problem:
Sobald eth1 aktiv ist, kann ich die Adresse 172.16.x.x aus dem 23er Netz nicht Pingen, Warum?
Wie kann ich dieses Problem beheben?


Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tatz« (15.12.2010, 10:35)


2

14.12.2010, 10:35

DNS-Problem:
Ich habe aktuell ein ähnliches Problem offen. Siehe <hier>. Wie ist bei Dir der Soll-Zustand? Soll immer der DNS-Server aus 172.16.x.x genutzt werden?

Ping-Problem:
Das Routing ist nicht standardmäßig aktiv. Normalerweise beschäftigt man sich mit Routing gleichzeitig mit der Firewall.Suche also nach iptables Howto's.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

14.12.2010, 11:07

DNS Problem:
Es soll immer nach der IP aus dem 16er Netz aufgelöst werden. Nur die Karte aus dem 23er Netz übermückt den DNS eintrag...

Ping Problem:
Ich erreiche die NIC welche im 16er Netz hängt ausschließlich aus dem 23er Netz nicht. Andere PCs im 16er Netz funktionieren.
Routing muss ich auf dem Server nicht einrichten, da ich hier Router verwende die den Job übernehmen.
Oder hab ich dich falsch verstanden :)?

Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

4

14.12.2010, 11:53

Zu DNS:
Bei Openrc gibt es für die /etc/conf.d/net den Parameter

Quellcode

1
dhcp_eth0="nodns"
Fü Baselayout 1 müsste es was ähnliches geben.

Ping:
Damit die Rechner aus dem 23er Netz die 16er IP erreichen, muss der Server bereits routen.
Ohne das Routing sind es zwei getrennte Netze.
Ach ja, damit die Rechner im 23er Netz wissen, dass die 16er IP hinter 172.23.x.y ist, müsste dort auch die Routing Tabelle angepasst werden.
Ich würde diese Bastelei nicht auf mich nehmen. Stelle lieber sicher, dass alles, worauf die Rechner aus dem 23er Netz zugreifen sollen auch auf der 23er IP/Interface erreichbar ist.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

14.12.2010, 13:26

MIt der Option dhcp_eth1="nosendhost" konnte ich das DNS Problem beheben.

Zitat von »bell«


Damit die Rechner aus dem 23er Netz die 16er IP erreichen, muss der Server bereits routen.
Ohne das Routing sind es zwei getrennte Netze.
Ach ja, damit die Rechner im 23er Netz wissen, dass die 16er IP hinter 172.23.x.y ist, müsste dort auch die Routing Tabelle angepasst werden.
Ich würde diese Bastelei nicht auf mich nehmen. Stelle lieber sicher, dass alles, worauf die Rechner aus dem 23er Netz zugreifen sollen auch auf der 23er IP/Interface erreichbar ist.

Die Clients im 23er Netz, haben ein Default Gatway eingetragen welches das 16er Netz erreicht.

Leider weiß ich bei meinem Ping Problem nicht weiter...
Warum erreich ich in einem geroutetem Netz (Routing funktioniert.) eth0 nicht, dass gibt doch keinen sinn?...

Reden wir aneinander vorbei :)? Sprichst du von einem nicht geroutetem Netz? < Mein Netz ist geroutet.

Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

6

14.12.2010, 14:00

Du hast also ein Router zwischen den beiden Netzen und einen Server, der ebenfalls mit zwei Anschlüssen an beiden Netzen hängt?

Kannst Du aus dem 23er Netz andere Rechner aus dem 16er Netz anpingen?
Kannst Du den Server an der 16er IP anpingen, wenn Du den vom 23er Netz abklemmst?

Ich vermute, Du erreichst schon die IP, jedoch laufen die Rück-Pakete nicht mehr die selbe Strecke, da der Server ja selbst im 23er Netz hängt und über dieses Interface die Rück-Pakete sendet.
Der Rechner im 23er Netz kann die Hin- und Rück- Pakete nicht mehr zu einander zuordnen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

7

14.12.2010, 14:21

Jap, ein Router ist dazwischen.

<Server 16/23>=========<Router>----------<23>
Müsste so aussehen ;).

Ich kann vom 23er in das 16er Netz alles Pingen auser die eth0 (172.16.x.x) von diesem Server.
Ich kann vom 16er in das 23er Netz alles Pingen.

Zitat von »bell«


Kannst Du den Server an der 16er IP anpingen, wenn Du den vom 23er Netz abklemmst?
Sobald ich die eth1 (172.23.x.x) deaktiviere funktioniert der Ping.

Zitat von »bell«


Ich vermute, Du erreichst schon die IP, jedoch laufen die Rück-Pakete nicht mehr die selbe Strecke, da der Server ja selbst im 23er Netz hängt und über dieses Interface die Rück-Pakete sendet.
Der Rechner im 23er Netz kann die Hin- und Rück- Pakete nicht mehr zu einander zuordnen.
Das denke ich auch. Kann ich dies durch die Metric beeinflussen? Oder gibt's eine andere Möglichkeit?


Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

8

14.12.2010, 14:44

Mir fallen erstmal nur drei Möglichkeiten ein, die alle unschön sind.
- Auf dem Server auf eth1 verzichten. und alles über den Router laufen lassen.
- Den Server aus dem 23er Netz nur über die 23er IP zugreifen (Wie es ist)
- Die Netze mit MASQUERADE auf dem Router stärker von einander trennen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

9

14.12.2010, 15:27

Puhhh, dass sind ziemlich bescheidene Möglichkeiten.
Das muss doch anderst auch zu lösen sein... Ist ja keine seltenheit das ein Server mehrere Netzwerkkarten hat.

Ich benötige einfach zwei Netzwerkkarten in unterschiedlichen Netzen.
DIe Routen per MASQUERADE auf dem Router ändern möchte ich auch nicht unbedingt.

Dennoch danke für deine super Hilfe, vllt finden wir ja noch eine bessere Möglichkeit.

Sag mal, warum funktioniert "ifconfig eth1 metric 5" nicht > Meldet: siocsifmetric operation not supporte

Edit: Btw ich habe gerade versucht per ifmetric die Metric der Route zu ändern. Funktioniert dennoch nicht.
Die Metric per metric_ethx in /etc/conf.d/net zu ändern hilft ebenfals nicht.

Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Tatz« (14.12.2010, 15:44)


10

14.12.2010, 16:35

Hab gerade eine gute Anleitung gefunden: Policy Based Routing
Im Prinzip musst Du auf Deinem Server irgendwie folgendes Abbilden:

Bei Eingehenden Paketen merken, über welches Interface sie kamen.
Bei Ausgehenden Paketen über das Connection tracking das Ursprungs-Interface rausfinden und abhängig davon routen.

Ob das so möglich ist, weiss ich nicht. Ist auf jeden Fall heavy.

Ich würde beim Vorschlag 2 bleiben: Für Rechner aus dem 23er Netz ist es ein 23er Server, für die Rechner aus dem 16er Netz ist es ein 16er Server.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

11

14.12.2010, 21:15

Falls PBR noch in Frage kommt, sollte es damit gehen:

Kernel Option:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  │ CONFIG_NF_CONNTRACK_MARK:                                                                                                           │  
  │                                                                                                                                     │  
  │ This option enables support for connection marks, used by the                                                                       │  
  │ `CONNMARK' target and `connmark' match. Similar to the mark value                                                                   │  
  │ of packets, but this mark value is kept in the conntrack session                                                                    │  
  │ instead of the individual packets.                                                                                                  │  
  │                                                                                                                                     │  
  │ Symbol: NF_CONNTRACK_MARK [=y]                                                                                                      │  
  │ Prompt: Connection mark tracking support                                                                                            │  
  │   Defined at net/netfilter/Kconfig:64                                                                                               │  
  │   Depends on: NET [=y] && INET [=y] && NETFILTER [=y] && NF_CONNTRACK [=m] && NETFILTER_ADVANCED [=y]                               │  
  │   Location:                                                                                                                         │  
  │     -> Networking support (NET [=y])                                                                                                │  
  │       -> Networking options                                                                                                         │  
  │         -> Network packet filtering framework (Netfilter) (NETFILTER [=y])                                                          │  
  │           -> Core Netfilter Configuration                                                                                           │  
  │             -> Netfilter connection tracking support (NF_CONNTRACK [=m])                                                            │  
  │   Selected by: NETFILTER_XT_TARGET_CONNMARK [=m] && NET [=y] && INET [=y] && NETFILTER [=y] && NETFILTER_XTABLES [=m] && NF_CONNTRA │


Alle Verbindungen aus 23er Netz, die über eth0 reinkommen mit 'connmark' markieren.

Ausgehende "related,established" Pakete (Verbindungen) in das 23er Netz, die markiert sind, über den Router als Gateway, anstatt direkt über eth1 routen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

12

15.12.2010, 10:34

Merci! PBR war die Lösung!

Ich habe zwei Regeln für beide Netzte erstellt.
In einem Route ich das 16er Netz über das 23er Gateway und im anderen umgekehrt.

Warum das nur so funktioniert wundert mich, aber es klappt :).

Für alle die das selbe oder ein änliches Problem haben:

Quellcode

1
2
3
4
5
ip rule add from 172.16.0.0/16 table 1
ip rule add from 172.23.0.0/16 table 2

ip route add 172.23.0.0/16 table 1 via 172.16.1.1 dev eth0
ip route add 172.16.0.0/16 table 2 via 172.23.1.1 dev eth1


Greetz! Tatz
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

13

15.12.2010, 11:43

Funktioniert denn der "Normale" Zugriff noch? also die 16er IP aus dem 16er Netz und 23er IP aus dem 23er Netz?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

14

15.12.2010, 11:50

Jap, läuft alles.

Edit: Das könnte auch bei deinem Problem helfen. Du könntest für die beiden Netzt unterschiedliche Routeneintäge verwenden!

Greetz!
Apple - Think Different

Zitat von »Linus Torvald«

We all know Linux is great…it does infinite loops in 5 seconds.

15

15.12.2010, 12:02

Die Lösung ist Nett! Und viel einfacher, als ich mir diese vorgestellt habe!
Nichts mit Markieren, stimmt, die Rück-Pakete haben ja die IP des Empfänger-Interfaces.
Die ersten zwei Befehle können also auch direkt die IP der beiden Interfaces haben, anstatt der Netz-Segmente.

Bei meinem Problem wird es leider nicht helfen, da es sich um ein DNS und um kein Routing-Problem handelt.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.