• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Einrichtung von mehreren IP-Adressen

Themenstarter #1
Hallo liebes Forum,

ich beschäftige mich zum ersten Mal mit FreeBSD und mache gerade meine ersten Gehversuche.
Allerdings beschäftige ich mich seit vielen Jahren mit Linux, so dass mir der Umstieg (hoffentlich) nicht allzu schwer fällt. :-)

Ich betreibe einen vServer, der mit FreeBSD 12.0 läuft.
Von meinem Provider habe ich neben der Standard-IP-Adresse (194.59.204.10, wird per DHCP vergeben) zwei zusätzliche IPv4-Adressen zugewiesen bekommen:
- 46.38.230.10
- 46.38.230.11

Diese möchte ich auch einrichten (Hintergrund: Auf dem vServer soll ein Mailserver eingerichtet werden, und diesen möchte ich an eine bestimmte IP-Adresse binden - sowohl für eingehende als auch für ausgehende Pakete.

Im Augenblick gibt in in der /etc/rc.conf folgenden Eintrag:
Code:
ifconfig_vtnet0="DHCP"
Mir ist bekannt, dass man alias-Einträge anlegen kann:
Code:
ifconfig_vtnet0_alias0="inet 46.38.230.10 netmask 255.255.255.255"
ifconfig_vtnet0_alias1="inet 46.38.230.11 netmask 255.255.255.255"
So weit, so gut.

Ich habe aber gelesen, dass bei ausgehenden Verbindungen stets die IP-Adresse der "realen" Netzwerkkarte verwendet wird, in meinem Fall also 194.59.204.10. Das wäre bei einem Mailserver natürlich schlecht...

Wie kann ich erreichen, dass bei ausgehenden IP-Paketen nicht zwangsweise über die reale Netzwerkkarte laufen? Unter postfix selber gibt es u.a. die Parameter inet_interfaces und smtp_bind_address, diese würden aber ja nicht greifen...

Kann mir jemand weiterhelfen?

Danke und Gruß
 
#3
Wieso sollte sowas wie smtp_bind_address nicht greifen?
Kannst Du z.B. auch schon mit 'ping -I' oder 'ssh -b' (und tcpdump) direkt testen.

Ein NAT brauchst Du, wenn ein Programm kein solches binding kann, oder die
Pakete aus einem anderen Netz/Server kommen.
 
Themenstarter #4
Hallo zusammen,

erstmal vielen Dank für Eure Antworten.

Ich denke, dass ich etwas falsch verstanden habe.

Im Buch "Absolute FreeBSD" (3rd Edition) steht auf Seite 148:

Code:
Aliases and outgoing connections

"All connections from your FreeBSD system use the system's real IP address.
You might have 2.000 addresses bound to one network card, but when you ssh
from that machine, the connection comes from the primary IP address. Keep this
in mind when writing firewall rules and other access-Control filters. [ … ]"

Ich habe das so interpretiert, dass alle ausgehenden Verbindungen über die primäre IP-Adresse laufen.

In meinem Fall ist es aber so, dass ich mit ifconfig_vtnet0_alias0 und ifconfig_vtnet0_alias1 weitere IP-Adressen definiert habe. Und wenn ich z.B. postfix an eine dieser Adressen binde, dann gilt das sowohl für eingehende als auch für ausgehende Verbindungen.
Richtig?

Grüße
 
Themenstarter #6
Hallo CommanderZed,

hier die Ausgabe von netstat -nr:

Code:
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            194.59.204.1       UGS        eth0
46.38.230.10       link#1             UHS         lo0
46.38.230.10/32    link#1             U          eth0
46.38.230.11       link#1             UHS         lo0
46.38.230.11/32    link#1             U          eth0
127.0.0.1          link#2             UH          lo0
194.59.204.0/22    link#1             U          eth0
194.59.204.10      link#1             UHS         lo0
 

CommanderZed

OpenBSD User
Mitarbeiter
#7
Villeicht wird da bei V-Servern etwas umschokopopelt, aber ist es nicht idr. so das wenn ich das default-gateway nehme (Gibt da ja kein anderes) 194.59.204.1 er recht zwangsweise über die 194.59.204.10 rausgehen muss, da die 46.38.230.10/11 ja in einem anderen Subnetz sind und das Gateway entsprechend in dem Subnetz garnicht erreichen kann?
 

vto

Active Member
#8
@CommanderZed: Nein, es dürfen alle zugeordneten IPs über das gleiche Gateway raus.

In meinem Fall ist es aber so, dass ich mit ifconfig_vtnet0_alias0 und ifconfig_vtnet0_alias1 weitere IP-Adressen definiert habe. Und wenn ich z.B. postfix an eine dieser Adressen binde, dann gilt das sowohl für eingehende als auch für ausgehende Verbindungen.
Richtig?
Das gilt so nur für Postfix und nicht generell. Postfix stellt in der Dokumentation zur Option inet_interfaces klar, dass es bei Angabe einer einzelnen IP auch gleichzeitig diese für ausgehende Verbindungen nutzt.

Hintergrund:

Verfügt ein System über mehrere IP-Adressen - erst mal unabhängig davon, ob aufgrund mehrerer Interfaces oder ob über Aliase auf einem einzelnen Interface - können Dienste darauf Sockets erstellen, d.h. auf eingehende Anfragen auf einem tcp/udp Port lauschen (typ. listening oder binding genannt). Auf eingehende Verbindungen erfolgt die Antwort standardmäßig von der angesprochenen IP, sonst käme ja z.B. kein TCP 3-Wege-Handshake zustande.
Ausgehende Verbindungen erfolgen - sofern die Applikation nichts anderes vom Netzwerk-Stack anfordert - von der vom Routing "sinnvollsten" Adresse. Das kann bei Aliasen auf einem Interface also durchaus eine andere sein als gewünscht. Applikationen wie ping oder ssh - wie von double-p genannt - unterstützen das Anfordern einer expliziten Quell-Adresse.

Die Fragestellung läuft übrigens unter dem Begriff der "Source Address Selection" und ist insbesondere bei IPv6 relevant, da mehrere Adressen je Interface quasi Kernkonzept sind.