.titleBar { margin-bottom: 5px!important; }

[OpenVPN/dnsmasq] Eigene DHCP Range für VPN-Clients einstellen?

Dieses Thema im Forum "Freetz" wurde erstellt von zirkon, 20 Feb. 2009.

  1. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die 7270 läuft mit OpenVPN im TAP-Modus. In Verbindung mit dnsmasq musste im Webif das Eingabefeld unter VPN IP-Adressen und Routing im VPN > DHCP-Range für Clients frei gelassen werden, da es anders einfach nicht funktionieren wollte (wird dabei vielleicht der "AVM DHCP" verwendet?). tap0 muss natürlich überbrückt sein, damit echtes Bridging realisiert werden kann.

    Nun wollte ich den OpenVPN-Clients trotzdem via dnsmasq eine eigene IP-Range zuweisen. Dazu den Eintrag bei DHCP Range wie folgt erweitert:
    Code:
    10.60.20.100,10.60.20.120,12h
    [COLOR="Red"]net:ovpn,10.60.20.200,10.60.20.220,6h[/COLOR]
    Leider erhalten VPN-Clients immer noch Leases aus dem ersten IP-Adressbereich (100-120). Funktioniert die Zuordnung über net:eek:vpn nicht oder woran kann es sonst liegen?
     
  2. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ich kenne zwar die dnsmasq-Schreibweise nicht, versuche nur so logisch nachzudenken:
    Die erste Zeile verstehe ich, als Globale Einstellung (also für alle). Deswegen wird sie auch angewendet. Mögliche Vorgehensweise:
    a. Nimm die erste Zeile weg und schau was passiert
    b. Tausche erste und zweite Zeile um, vielleicht klappt es damit
    c. finde für die erste Zeile auch so ein Argument wie
    Code:
    net:ovpn
    , nur für internes Netz

    MfG
     
  3. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Aus der "man dnsmasq" verstehe ich das so, dass was hier "ovpn" ist sollte die "Network-ID" sein, mit der die "range" der IP-Adressen die der DHCP-Server festlegt, noch genauer definiert wird:
    Code:
    [[net:][B][COLOR="Red"]network-id[/COLOR][/B],]<start-addr>,<end-addr>[[,<netmask>],<broadcast>][,<default lease time>]
     
  4. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    ja toll, aber wocher soll denn dnsmasq wissen, dass eine bestimmte MAC-Adresse zu diesem Network-id gehört? Gibt es denn bei dnsmasq überhaupt eine Möglichkeit zwischen den einzelnen devices zu unterscheiden? Von Linux aus kenne ich es so, dass wenn man z.B. "ifup eth0" antippt, dann wird gleich dhcp-client mitgestartet. Und zwar für diese eth0. ich glaube, mit dem dhcp-Server sollte das auch möglich sein.
    Wenn ich mich richtig erinnere, hat hier irgendwo im Forum jemand bereits versucht einzelne LAN-Ports zu trennen und sie dann mit separaten Netzen zu versorgen. Ob dabei auch noch DHCP-Server im Spiel war, kann ich mich aber nicht erinnern. Ich glaube, man sollte in der Richtung suchen: Der DHCP-Server soll zwischen den einzelnen IP-Devices unterscheiden können. Sonst wird es nichts mit DHCP.

    MfG
     
  5. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Ja, das sollte funktionieren. Zu der Network-ID steht Folgendes in der man dnsmasq:
    Mit den folgenden Konfigurationsmöglichkeiten für dnsmasq, kann die Zugehörigkeit der MAC-Adresse eines IP-Devices zur entsprechenden Network-ID hergestellt werden:
     
  6. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    ja, aber dann könnte zirkon gleich statische leases verwenden. Dafür braucht er keine Ranges. Man kann statische leases außerhalb des Range-Bereiches nehmen, das mache ich und es funktioniert.
    So wie ich zirkon aber verstanden habe kennt er nicht unbedingt alle MACs und will es voll dynamisch machen, also ohne leases.

    MfG
     
  7. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    #7 sf3978, 21 Feb. 2009
    Zuletzt bearbeitet: 21 Feb. 2009
    Wenn der DHCP-Server nur verschiedene Ranges im gleichen IP-Subnetz anbieten kann/darf und er die Clients (MAC-Adresse) nicht kennt, dann müssen die Clients irgendwie den Wunsch äussern, aus welcher Range sie eine IP-Adresse haben wollen/dürfen. D. h. man muss die Clients konfigurieren.
    Als Beispiel, in FreeBSD gibt es die /etc/dhclient.conf mit der Möglichkeit IP-Devices zu konfigurieren:
    Code:
    interface "re0"{
    	      send host-name "AVALON";
                  send dhcp-client-identifier 00:0b:f4:16:88:22;
    	      supersede domain-name-servers 192.168.1.1, XXX.XXX.XXX.XXX, YYY.YYY.YYY.YYY;
    	      fixed-address 192.168.1.135;
    	      option netmask 255.255.255.0;
    	      option broadcast-address 192.168.1.255;
                  media "Ethernet 1000baseTX <full-duplex>";
              }
     
  8. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Die Frage ist nur, ob dnsmasq dann mit diesen Anfragen klar kommt. Bei deiner Beispielkonfiguration sind schon ziemlich viele Sachen fest vorgegeben. Z.B. DNS-Server. Das ist zwar in der Linuxwelt Gang und Gebe, entspricht aber nicht der eigentlichen Idee von DHCP. Wenn man schon DHCP macht, sollte auch die Adresse von DNS-Server vom DHCP-Server an den DHCP-Client mitgeteilt werden und nicht vorher eingetragen werden. Würde in solch einem Falle die von dir vorgeschlagene klientseitige Wunsch-Konfiguration auch funktionieren?

    MfG
     
  9. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Ich habe diese Client-Configuration im Einsatz (auf FreeBSD):

    Code:
    interface "re0"{
    	      send host-name "******";
                         send dhcp-client-identifier 00:33:g0:65:0f:h4;
    	      supersede domain-name-servers 192.168.###.1, XXX.XXX.XXX.XXX, YYY.YYY.YYY.YYY;
              }
    und sie funktioniert. In der /etc/rc.conf gibt es dazu noch folgende Zeile:

    Code:
    ifconfig_re0="netmask 0xffffff00 broadcast 192.168.###.255 [B][COLOR="Red"]DHCP[/COLOR][/B]"
     
  10. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Code:
    daemon.info dnsmasq[12828]: DHCPDISCOVER(lan) 00:ff:00:ff:00:ff no address available
    Auch hier eine IP-Zuweisung aus dem "global-Bereich".


    Richtig, so war es gedacht, nachdem ich es so in ein oder zwei Linux-Foren gelesen habe und es wohl so funktionieren sollte. Auf einen Versuch wollte ich es dann natürlich ankommen lassen :) Wenn es sonst eine Möglichkeit gibt via OpenVPN die Adressvergabe zu regeln, ohne das dnsmasq meckert, wäre das natürlich auch nicht verkehrt.


    tap0 wäre das Device. Vielleicht geht es darüber?

    Da werde ich nochmal die Suche anschmeißen. Hatte die Themen dazu nur überflogen.


    Mit der Konfiguration des VPN beim Client sollte die Sache eigentlich geregelt sein. In den meisten Fällen ist dann auch noch Windows die Grundlage.
     
  11. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,613
    Zustimmungen:
    3
    Punkte für Erfolge:
    38
    Es geht ja hier nicht um separate Subnetze, es handelt sich ja um IP-Ranges im gleichen Subnetz (255.255.255.0) mit 254 IP-Adressen. Wenn separate Subnetze erlaubt sind, wäre die Sache ja einfacher.

    Z. B.: Mit der Netmask 255.255.255.128 (/25) stehn 2 Subnetze mit je 126 IP-Adressen zur Verfügung. Die Subnetze kannst Du über die die Netzwerkkennung und über die Broadcast-Adresse unterscheiden/auseinander halten. Die Daten für die Subnetze sind: Subnetz1: Kennung .0, Broadcast .127, Range/Hosts .1 - .126; Subnetz2: Kennung .128, Broadcast .255, Range/Hosts .129 - .254

    Damit sollte auch der DHCP-Server aus dnsmasq klar kommen.
     
  12. skrueger

    skrueger Neuer User

    Registriert seit:
    27 Apr. 2006
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    Ich habe das gleiche Problem mit der IP-Vergabe bei Openvpn! Habe bei Openvpn die Push-Option an und es wird auch eine IP nebst Route vergeben, aber wehe ein zweiter Client kommt dazu, dann bekommt der die selbe IP wie der erste Client und das funzt dann nicht mehr! Wie kann ich es nun angehen das jeder Client eine eigne IP bekommt?!

    Snip aus openvpn.conf
    Danke für dringende Hilfe

    Mfg SVen
     
  13. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Moin,

    ohne den Rest der Config kann man dazu wenig sagen. Bei dir bekommt der Client die IP vom OpenVPN und nicht vom dnsmasq?

    Die verschiedenen Clients benutzen auch sicher verschiedene Zertifikate? Ansonsten ist es natürlich klar und gewollt, dass das gleiche Zertifikat (= der gleiche Client) auch möglichst die gleiche IP bekommt...

    Mit den erweiterten Einstellungen kannst du übrigens sogar jedem Client eine eigene, "feste" IP vorgeben.

    Jörg
     
  14. skrueger

    skrueger Neuer User

    Registriert seit:
    27 Apr. 2006
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Und daran wird es sicher bei mir liegen, gleiche Zertifikate, jetzt wo du es sagst! Ich dachte das jeder Client trotzdem eine eigene IP bekommt!

    Ja die Option habe ich auch schon gesehen, nur leider bin ich am Anfang mit der Matherie und froh das ich so weit gekommen bin.

    Was müßte ich in der client-config zB. eintragen, damit jeder eien eigene IP bekommt, oder anders gefragt wie müßte ich mein config umstellen, damit jeder Client eine eigene IP bekommt?! Unter Linux ist es leichter für mich, da würde ich mir ein Script stricken mit ifconfig add... oder geht es auch Komfortabler?!

    Danke für hilfreiche Tips


    Mfg SVen
     
  15. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Also, wenn du für alle Clients unterschiedliche Client-Zertifikate nutzt, sollten die direkt von der Box verschiedene IPs per "pull" bekommen (dann aber "von der Box ausgewählt").

    Du könntest ansonsten auch per "ifconfig" in der Client-Config direkt den Clients direkt eine IP zuweisen (z.B. ifconfig 192.168.1.61 255.255.255.0) oder eben den Haken bei den Experteneinstellungen und dann "erweiterte Clienteinstellungen":
    Dann kannst du pro Client (identifiziert jeweils durch den Namen im Zertifikat) eine IP eintragen, die werden dann per push/pull zum Client kommen....

    Jörg
     
  16. isenberg

    isenberg Neuer User

    Registriert seit:
    8 Okt. 2005
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    1. Das Flag "ovpn" abhängig von der MAC-Adresse "00:ff:*:*:*:*" setzen:
    Code:
    dhcp-mac=ovpn,00:ff:*:*:*:*
    
    2. Den Netzwerkkarten mit dem Flag "ovpn" Adressen aus definierter IP-Range zuweisen:
    Code:
    dhcp-range=net:ovpn,<ip-Start>,<ip-Ende>
    
    Werden Gateway und DNS für die OpenVPN-Clients nicht benötigt dann zusätzlich noch:
    Code:
    dhcp-option=ovpn,3
    dhcp-option=ovpn,6