Hi,
wenn man ein Jail mit loopback-net IP (z.B. 127.0.0.2) betreibt dann
kann man einen TCP-Dienst darin relativ einfach mit einer "ipfw fwd"
Regel von der Außenwelt erreichbar machen. Bei einem UDP-Dienst (in
diesem Fall named) sieht es aber anders aus. named bindet an
127.0.0.2:53, Pakete kommen mit Ziel a.b.c.d:53 (UDP) an, eine ipfw
Regel leitet die an den named weiter. Der sieht dass die Pakete
Zieladresse a.b.c.d:53 haben, sendet dann via sendmsg() die Antworten
mit Quelladresse a.b.c.d:53 zurück und der Kernel meckert mit einem
EFAULT weil diese IP-Adresse im Jail nicht verfügbar ist (bei TCP
braucht es das alles nicht, da schickt man die Pakete einfach über den
Verbindungssocket zurück ohne sich um irgendwelche Adressen zu kümmern
und der Kernel übernimmt den Rest).
Was also tun? Destination-NAT (reverse NAT) um für einkommende Pakete
an UDP a.b.c.d:53 die Zieladresse auf 127.0.0.2:53 umzuschreiben. Nur
probiere ich das ganze nun schon ein paar Stunden ohne großen Erfolg.
Egal was ich mache, named sieht keine einkommenden Pakete.
Was ich versuche ist im Prinzip:
ipfw add 100 nat 1 udp from any to a.b.c.d 53
ipfw nat 1 config redirect_port udp 127.0.0.2:53 53 reverse
(wohlgemerkt, ohne irgendeine "ipfw fwd" Regel), alternativ
ipfw nat 1 config redirect_proto udp 127.0.0.2 a.b.c.d reverse
oder
ipfw nat 1 config redirect_addr 127.0.0.2 a.b.c.d reverse
aber nichts davon funktioniert bisher, irgendwo stehe ich also derzeit
auf dem Schlauch.
Hat irgendjemand vielleicht einen Tipp, einen minimalen Satz an
IPFW-Regeln die DNAT zu einem Jail machen? Oder wenn mir jemand
alternativ sagt dass (und wieso?) das bei einem Jail so gar nicht
funktionieren kann würde das wohl auch helfen.
Danke und noch erholsame Tage zum Jahreswechsel,
Harold
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 27 Dec 2017 - 23:35:04 CET