Webserver-Veröffentlichung mit nur einer statischen IP



  • Hallo Leute,

    wir arbeiten uns gerade in die Materie ein.. sieht super aus. allerdings stehen wir vor dem ersten Problem:

    wir haben mehrere WAN-Anschlüsse, die allerdings alle nur über eine statische IP verfügen. Ein ausgehendes Load-Balancing funktioniert einwandfrei. Allerdings soll über jede statische IP später auf Ports 80 und 443 eine Webseite veröffentlicht werden - evtl. sogar mehrere Webseiten pro IP (HAProxy?). Ist dies mit jeweils nur einer statischen IP überhaupt möglich? - Was wäre das richtige Vorgehen?

    Vielen Dank für Eure Hilfe, Denk- und Leseanstöße ;)

    Gruß


  • Moderator

    Aloha,

    mir ist das gewünschte Szenario nicht klar. Natürlich könnt ihr über die WANs einen Webserver betreiben auch mit nur einer IP. Von der wird dann einfach per Port Forwarding der Webserver Port durchgeschleift oder alternativ auch über HAProxy, wobei ich den Sinn da nicht ganz sehe (haproxy würde Loadbalancing hinter der Firewall machen, da braucht ihr es aber vermutlich eher weniger).

    Das ander Problem was ich mir vorstellen kann sind die verschiedenen WANs. Euer Webserver und dessen Webseiten (können natürlich  - mit Einschränkungen bei SSL - auch mehrere sein) kann sinnvoll nur über eine IP erreichbar sein. Sinnvoll, da andere Möglichkeiten bspw. DNS Round Robin wären, beim Ausfall einer Leitung wäre es aber nicht sichergestellt, dass ein Client bspw. auch die IP vom DNS bekommt, die funktioniert. Das würde nur gehen, wenn ihr das entweder selbst skriptet (bspw. Eigenbau der die Leitungen überwacht und bei Ausfall den DNS Record entsprechend aktualisiert) oder wenn die IPs euch selbst gehören und ihr somit per BGP Routen announcen könntet - was ihr nicht könnt ;)

    Insofern wäre es sinnvoll zu wissen, was ihr habt und was ihr bauen wollt :)

    Grüße



  • Hallo!

    Verstehe ich das richtig, ihr habt mehrere WAN Anschlüsse und jeder dieser hat eine eigene IP?
    Und diese WANs habt ihr bereits über einen Switch zusammengeführt?

    Damit das Loadbalancing ausgehend auf diesen Mutli-WANs funktioniert, müsst ihr ja wohl auch schon für jeden Anschluss ein Gateway konfiguriert haben, oder? Hab das noch nicht gemacht, aber anders kann ich es mir nicht vorstellen.

    Wenn das alles so passt, um weitere IPs aufs WAN Interface von pfSense zu legen, sind unter Firewall > virtual IPs "IP Aliases" hinzuzufügen. Interface, IP und Netzmaske und einen Namen angeben, diese kann man dann in den NAT Regeln verwenden, um den Traffic auf die jeweiligen Server zu routen.

    Solange alle Webseiten, die mit derselben öffentlichen IP angesprochen werden, auf einem Server liegen, ist dafür kein Proxy nötig.
    Wie schon angemerkt, ist laut RFC pro IP nur 1 TLS Webseite (auf Port 443) möglich, dennoch unterstützen meines Wissens einige Webserver auch mehrere.

    Grüße


  • Moderator

    @viragomann

    Wenn die WANs auf einem Switch liegen, müssten Sie durch vorgeschaltete Router bedient werden, was den Sinn der pfSense an der Stelle ziemlich schmälern würde. Denn dann könnte man kein sinnvolles Loadbalancing mehr machen. Dazu muss die pfSense selbst die Interfaces terminieren, nicht ein Switch vornedran.

    Und ja es geht recht einfach, mehr als einen VHost mit SSL auf einem Webserver zu haben, selbst mit nur einer IP. Stichworte sind wildcard-Zertifikat (wenn sich der Rest der Domain nicht ändert) oder auch SNI (subject name identifier). Allerdings haben SNI Zertifikate das "Problem" dass es einige Browser gibt, die mit SNI nichts anfangen können (MS IE alt) und das deshalb mit Vorsicht zu genießen ist - je nach Clientel.

    Ansonsten ist ohne Auskunft des OPs schwer zu sagen, was er überhaupt konkret vorhat ;)



  • hallo.

    vielen dank für eure antworten. wir haben uns inzwischen weiter reingetüftelt =) das fehlende stichwort war NAT.

    ja, wir haben je internetleitung einen dezidierten netzwerkport an der pfsense. an jedem port hängt wiederum ein modem, das per PPPoE ins netz geht. Jede dieser Leitungen hat eine statische IP, welche wir JEWEILS auf eine HA-Proxy-VM geNATed haben. Hier wiederum sollen jeweils 2-3 webserver zu High Availabily-Zwecken hängen.

    So weit so gut, klappt auch alles ganz gut so weit.

    Jetzt hängen wir an folgenden, kleineren Fragestellungen:

    1. Ist es möglich die aufrufende Client-IP-Adresse bis ins Webserver (IIS)-Log durchzuschleifen? (Client -> pfsense -> HAProxy VM -> IIS)

    2. Damit unser Aufbau so funktioniert, mussten wir im IIS ein Outbound-URL-Rewrite vornehmen. HTTPS-Aufrufe werden im HAProxy mit einem "reqadd X-Forwarded-Proto:\ https" versehen. Der IIS prüft anhand dieses Feldes auf das verwendete Protokoll und antwortet entsprechend bei Bedarf per https. Allerdings scheint er diesen Rewrite NACH DER GZIP, DEFLATE-KOMPRIMIERUNG vornehmen zu wollen. Das funktioniert natürlich nicht wirklich.
    Unser Workaround: der IIS schickt seine Antworten unkomprimiert. Stattdessen übernimmt der HAProxy die Kompression. Technisch funktioniert, allerdings wohl auf Kosten der Performance - die Webseitenperformance per SSL ist ziemlich langsam. Jemand einen guten Tipp parat?

    Vielen Dank für eure Hilfe =) Gruß



  • zu 1. falls nicht der HAProxy dazwischenpfuscht (hab mich damit noch nicht beschäftigt) bekommt der Webserver klarerweise die IP Adresse mit, sonst weiss er ja nicht wohin er antworten muss ;)
    Daran ändert auch NAT nichts



  • tut er aber ;)

    gruß



  • d.h. er schreibt auch die http header um?


  • Moderator

    @badger: tut er im Normalfall eben nicht ;) Da du leider aber immer noch nicht wirklich das Setup klarer beschrieben hast, versuch ichs mal mir vorzustellen:

    • WAN1,2,3 hängen per Modem direkt an der pfS. Sprich: Es sind mindestens 4 Interfaces an der pfSense? WAN1/2/3 und LAN?
    • WAN1-3 bauen die Verbindung per PPPoE auf und bekommen eine statische IP zugewiesen?
    • Im LAN hängen mehrere VMs auf denen ein Webserver läuft? (Exemplarisch VM1,2,3)?
    • Konfigurationswunsch ist nun Zugriff über alle 3 WANs auf die VMs? Oder pro WAN eine VM (warum)?

    Was mir unklar ist, was ihr zu erreichen versucht:

    • Selbst bei pro WAN einer VM: Wie sollen die Webseiten darauf über alle 3 WANs verfügbar gemacht werden?
        - Custom WAN wrapper?
        - DNS RoundRobin?
        - Verschiedene DNS Namen (www1-3) mit externem Loadbalancer?
        - custom RFC2136 DNS?
    • Warum der HAProxy auf der pfSense?
        - internes Loadbalancing damit mal eine VM ausfallen kann?
        - externes Balancing? Wie wird dann aber ein Interfaceausfall gehandelt?

    Wäre schön dazu ein wenig Einsicht zu bekommen, dann wäre auch die Antwort einfacher, wie ihr das erreichen könnt, was ihr da versucht? :)