Pfsense in einer VM (KVM) auf Hetzner Root-Server
-
Ja, wenn diese Regel am WAN Interface steht, wäre alles erlaubt. Das heißt aber noch nicht, dass die Pakete nicht in der pfSense hängen bleiben. Für das richtige Routing musst du dann noch im NAT sorgen.
Mit der Konfig der Hetzner Server kenne ich mich nicht aus. Ist ein Debian, oder?
Wo ich gewisse Zweifel habe ist, ob es möglich ist, die Host-IP auf die virtuelle Bridge zu legen und auf der selben Bridge VMs in einem anderen Subnetz zu betreiben. Getestet habe ich es aber noch nicht.
Aber ich würde mich mit diesem Problem ans Hetzner Forum wenden. Da wird es doch schon Leute geben, die ähnliches erreichen wollten. -
Also ich habe das nun einmal auf meinem OpenSUSE Host getestet. Auf diesem sind über wickedd 2 Bridges definiert, die je einem Netzwerkinterface zugeordnet sind und eine IP im LAN haben.
2 VMs habe ich eine IP in einem anderen Subnetz außerhalb des LAN gegeben und beide können miteinander kommunizieren, auch dann, wenn ich eine VM an die andere Bridge anschließe und der Traffic damit über den externen Switch läuft.
Also grundsätzlich funktioniert die Sache über die (wickedd) Bridge, sollte dann bei anderen Systemen doch auch funktionieren.Im Zweifelsfall verwende Packet Capture um genaueres von den Vorgängen an den Interfaces der pfSense zu erfahren.
-
Was dir an der Stelle helfen könnte ist ein TPCDump auf der pfSense eingeschränkt auf den Host (84.132.162.215 bspw.) so dass du nur Pakete von dort loggst und schaust, wie die über die Firewall gehen. Und dann natürlich auch auf der .25 mal laufen lassen, ob die überhaupt antwortet, wohin sie antwortet und ob der Antwort Traffic da ankommt. Bei falschem Routing bspw. sieht man auf der pfSense nur die "S" Pakete (Syn) bzw. "S." und irgendwann ein "R" für Reset. Aber man sieht keine A oder SA Pakete fürs "Acknowledgen". Wenn du da mal loggst, wirst du es hoffentlich herausfinden, wo dein Problem liegt :)
Wenn ich auf dem Hostsystem TCP-Dump laufen habe auf die IP der VM-1 und dann mit SSH von aussen komme, erhalte ich nur immer wieder:```
17:38:45.737639 IP [ME-IP].27998 > [VM-1-IP].22: Flags [s], seq 407395059, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 384934721 ecr 0,sackOK,eol], length 0
17:38:45.738377 IP [VM-1-IP].22 > [ME-IP].27998: Flags [S.], seq 1963013495, ack 407395060, win 28960, options [mss 1460,sackOK,TS val 2249125 ecr 384934721,nop,wscale 7], length 0Auf der pfSense sehe ich exakt das selbe.
Ebenso auf der VM-1 selbst ... allerdings ist hier die VM-1-IP durch die interne IP 192.168.1.x ersetzt.
Im Hetzner Forum hatte ich bisher auch noch nicht mehr Glück.[/s]
-
Sorry, war krank. Wenn du auf beiden Systemen die Antwort Pakete von innen nach außen siehst, ist es doch gut? Evtl. ein Problem mit SSH selbst (Cipher o.ä.)? Oder betrifft das auch andere Ports?
-
Ne das betrifft alle Ports.
Von innen kann ich zwar Domains und IPs pingen aber alles andere geht genauso wenig. Das heißt, wenn ich über meine Desktop-VM eine Webseite ansteuer lädt er sich tot und beendet dann. Ein wget auf den anderen VM führt zu unendlichen retrys.
Zwischendurch hatte ich auch mal ein Konstrukt, bei dem ich die VMs von aussen pingen konnte … mehr ging dabei dann aber auch nicht. :(
-
Also so langsam verlier ich die Lust an dem Projekt. Es kann doch nicht so ein Hexenwerk sein. Alles was ich probiere funktioniert einfach nicht.
Ich habe nun mittels nc -k -l 8888 auf der pfsense und nc 192.168.1.1 8888 auf meiner desktop vm zumindest nachvollziehen können, dass diese Maschinen uneingeschränkt miteinander reden können.
Spiele ich das Spiel mit dem Hostsystem, also nc -k -l 8888 auf dem Hostsystem und nc [HOST-IP] 8888 auf der Desktop VM, geht es hingegen nicht.Also offensichtlich routet die pfsense nicht einmal korrekt zum Hostsystem. Eigentlich sollte sie auch direkt an Hetzner routen und Hetzner dann zurück zum Hostsystem, aber da geht wohl genauso wie bei jeglichen anderen Verkehr nach draussen irgendwas schief.
Ich kann nach wie vor keine HTTP-Verbindung aus dem internen Netz nach draussen öffnen.
Hat denn niemand eine Idee was hier los sein könnte? Kann das überhaupt noch ein pfSense Problem sein oder muss es in den Netzwerkeigenschaften sitzen?
Ich habe echt sooo viel recherchiert mittlerweile und so langsam echt überhaupt keine Lust mehr :'(
-
Also offensichtlich routet die pfsense nicht einmal korrekt zum Hostsystem. Eigentlich sollte sie auch direkt an Hetzner routen und Hetzner dann zurück zum Hostsystem, aber da geht wohl genauso wie bei jeglichen anderen Verkehr nach draussen irgendwas schief.
Deine Annahme ist nicht korrekt. Das Problem ist hier nicht die pfSense, sondern die Kombination aus deinem Routing und Hetzner (leider). Durch deren - nennen wir es unschönes - Routing und MAC Beschränkung auf Ports ist es einfach ein totaler Graus sowas aufzubauen, wenn nicht jedes Schräubchen korrekt ist.
Da ich leider weder dein genaues Setup bei Hetzner kenne, noch die Hostkonfiguration (bevor die pfSense kommt) etc. ist es hier einfach verteufelt schwer, dir zu sagen, dass es an X liegt. Wir hatten da damals mit einem einzelnen ESXi auch unsere Probleme bis dann (bevors die schicken Dokus im Wiki gab) mal die Technik mit uns zusammen den Kram richtig gedreht hat, single HostIP auf den Server selbst, zweite IP auf die Routing VM zeigend, prüfen, läuft, dann zusätzliches /29er Netz auf die Routing VM routen von Hetzner aus, testen, auf falsche IP geroutet gewesen, umrouten lassen, testen, kommt an pfSense an, hintendran VM hochziehen, testen, läuft.
Du siehst, das ist schon ein etwas größeres Projekt mit diversen Problemstellen. Da muss man sich durchbeißen :/
Ich würde nochmal ganz von vorne durchtesten. Deine IP die die pfSense hat checken. Raus und rein. Das zusätzliche Netz schauen, obs überhaupt an der pfSense sauber aufliegt UND ob der Rücktraffic auch sauber geht. Also bspw. testweise auf der pfSense selbst die IP mal nutzen und versuchen ob sie geht. Dann kann man sie auch ins Netz dahinter sauber durchreichen.
Also offensichtlich routet die pfsense nicht einmal korrekt zum Hostsystem.
Taucht die Verbindung überhaupt auf der pfSense auf? Ist sie freigegeben? Wie kommunizieren Hostsystem und pfSense? Eigentlich sollten sich die doch gar nicht direkt sehen können?
Kann das überhaupt noch ein pfSense Problem
s.o. ich denke es ist ein Problem im Detail des Netzaufbaus, denn der Rest hat mit anderen Hypervisoren schon sauber funktioniert (hab ich 3 Jahre betrieben). Und KVM sollte kein Problem machen.
Grüße
-
Sooooooo … ich habs ... bzw. es wurde mir jetzt im Hetzner-Forum zugetragen. Da ich es selbst immer hasse, wenn Fragen offen bleiben, also auch hier die Auflösung:
https://doc.pfsense.org/index.php/VirtIO_Driver_Support#Disable_Hardware_Checksum_Offloading
Man muss offenbar bei aktuellen VirIO-Treibern das Hardware Checksum Offloading explizit deaktivieren in den Advanced Settings der pfSense.
Dieses eine Häkchen hat mich jetzt Wochen gekostet … unglaublich :)
PS: Das Routing an und für sich war also grundsätzlich in Ordnung die ganze Zeit. :)
-
Danke für die Antwort.
War ja eine harte Nuss, die Sache.Ich denke, für meine Testzwecke verzichte ich weiterhin auf virtIO und bleibe bei E1000 NICs. Aber im Produktiv-Einsatz wird es wohl einen Performancevorteil bringen.
-
@Chrisi: Herzlichen Dank dass du uns hast teilhaben lassen an der Lösung, ich denke dass das vielen mit ähnlichen Problemen weiterhelfen kann, und sei es nur als Lösungsansatz!