Iocage Jail Gateway mit VNET und VLAN, kein Internet Routing (FreeBSD 12.1 GENERIC)

Tranalogic

LU #373839
Guten Abend.

Ich hoffe, dass ich ein bereits ähnlich behandeltes Thema nicht übersehen habe. Ich suche schon seit Tagen eine Lösung via Google und auch in diversen Foren.

Zum System:
Wir haben in unserem Verein einen 19er Rack mit zwei Blades und einen Layer 3 Switch am Laufen. Der Switch stellt uns über dessen Ports via LACP zwei VLANs bereit. Auf unseren ersten Blade rennt eine Windows Server 2012 r2 Installation, auf dem Zweiten FreeBSD, welches sich derweil noch im Aufbau befindet, aber Fortschritte macht. Plan: Windows frei und einen ADDC via Samba rennen lassen. Tut hier aber jetzt zu meinem Problem nichts zur Sache.

Der Aufbau vom Netzwerk rennt in FreeBSD mit einem Lagg und aus diesem Lagg entsprießen die Interfaces lagg0.20 und lagg0.97. (das sind die zwei Vlans, welche wir initialisiert haben). Im VLAN 97 existiert auch unser Hardware Router 97.240, der als Gateway in das Internet dient.
Wir haben den 97.240 im FreeBSD Host als defaultrouter eingestellt. Weiters rennen im 97er VLAN schon ein paar Shared IP Jails, welche wir über Iocage managen.

Was will ich tun? Ich würde gerne ein Gateway als Jail für das 20er in das 97er VLAN einrichten.
Ich habe bereits eines mit Iocage angelegt, welches mit VNET arbeitet. Dazu habe ich, wie im Handbuch und im Jails Mastery Buch beschrieben, zwei Bridges erzeugt, welche jeweils die lagg0.x Interfaces als Member haben. Das Jail selbst hat gateway_enable=YES (der Host auch) und das net.inet.ip.forwarding=1 aktiviert, das Jail verbindet sich auch in das Internet. Wenn ich im 20er Netzwerk diesen "Gateway" auf meinem Laptop oder beliebigen Client als Standardgateway angebe, bekomme ich sogar Zugriff auf meine Jails im 97er Netzwerk.

Das Problem ist jedoch, weiter geht es nicht. Ich komme leider von einem Client nicht raus in das Internet. Bin ich direkt im 97er VLAN mit dem Client funktioniert es tadellos, die Jails und der Host, kommen auch ohne Probleme online. Nur der Client im 20er nicht. Ich habe auch schon probiert, die 8.8.8.8 DNS von Google anzugeben, keine Chance.

Meine Einstellungen im Jail:
Ich habe als defaultroute den 97.240 Router angegeben. Ich habe zwei epair Interfaces für vnet0 (bridge0->20erVLAN) und vnet1 (bridge1->97erVLAN)

Als Firewall benutze ich am Host pf. Ich sehe mich aber nicht durch, wie ich genau VNET, welches bei Aktivierung ein vnet0.x Interfaces wild anlegt, filtern kann.

Meine jetzigen PF Einstellungen zu dem "GATEWAY" sind sehr primitiv:

/etc/pf.conf
alle_97er_gw_ports = "{http, auth, https, 22, 13048, 50482, domain}"

nat on $if_vlan97 from lagg0.20:network to lagg0.97:network -> ($if_vlan97)

pass inet proto tcp from lagg0.20:network to lagg0.97:network port $alle_97er_gw_ports keep state
pass inet proto udp from lagg0.20:network to lagg0.97:network port domain keep state



Mir gefällt nicht, dass PF eigentlich das lagg0.x Interface komplett erlaubt, ich würde eigentlich unter anderem gern den 20->97er Traffic nur über das Jail Gateway laufen lassen.


Wenn ihr Lösungsvorschläge habt, bitte nicht zögern oder ihr habt Links zu dem Thema. Mir wäre sehr damit geholfen. Ich habe mich auch mit dem offiziellen FreeBSD Handbuch auseinander gesetzt, Thema Gateway, das war mehr als enttäuschend.

Danke für eure Mühe.

Liebe Grüße
 
Hast du auf dem Internet GW auch eine Rückroute gesetzt?

Sollte das nicht das Problem sein, würde es uns evtl. helfen wenn du das mal grob eine Zeichnung o.ä. machswt, so ganz steige ich da gerade nicht durch.

Was sagt ein ping und eine traceroute auf eine beliebige internaddresse von hosts in vlan20 und jeweils in vlan97 (Am besten direkt auf eine IP die dir bekannteweise sonst antwortet um hier DNS erstmal aussen vor zu lassen)
 
Wo hast Du die NAT-Regeln gesetzt? Das klingt nach dem FreeBSD Host, sollte aber in der Gateway-Jail passieren.
 
Vielen Dank für eure Mitteilungen. In der Anlage habe ich eine einfache Topografie hinzugefügt. CommanderZed, ich werde heute am Abend einmal eine Traceroute Richtung 97.240 (WAN Gateway) versuchen.

Die NAT Regel habe ich mit:
nat on $if_vlan97 from lagg0.20:network to lagg0.97:network -> ($if_vlan97)

gesetzt.
Ich finde diese aber sehr großzügig, vielleicht gibt es eine Möglichkeit, die auf die VNET Interfaces zu minimieren. AFAIK sind Firewall Regeln direkt im Jail nur mit ipfw möglich. Ich bin sowieso etwas verwirrt mit der Sache. Soweit ich gelesen habe, hat das Jail keine Möglichkeit den Kernel zu manipulieren, schon gut, NTP bestätigt das, nur kann ich mit Sysctl im Jail neue Parameter verteilen? Komisch.

Dass mit der Rückroute etwas nicht stimmt, glaube ich als unwahrscheinlich, da die Windows Maschine derweil als so eine Art Gateway fungiert. Ich werde mir aber trotzdem die Router Config ansehen.
 

Anhänge

  • topo.jpg
    topo.jpg
    76,5 KB · Aufrufe: 299
Guten Abend!

Ich habe nun traceroute und ping verwendet. Es können nur die vom Host angegebenen IPs im Jail angepingt/tracerouted werden, alles, das nicht vom Host generiert wird, verschwindet im Nirvana.

Als Routing ist in der Routingtabelle nur der Defaultrouter 97.240 angegeben. Vom Jail selbst, kann ich in das Internet.
 
Zurück
Oben