puh, hab echt in den keller watscheln müssen, um ein pire auszubuddeln...
liebe leute,
in meiner geistigen umnachtung is diese bemerkung vom rwhome komplett untergegangen:
>"...die epicentro firmware versionen unterstützen nat-loopback..."ja, aber nur pseudo natloopback vulgo bouncing/reflecting. nixi true natloopback wie bei den sts/tgs.
nichtsdestotrotz ist meine aussage im abschnitt #2 dieses posts...
viewtopic.php?f=20&t=56636&#p468869...kompletter schwachsinn
:
ich komm noch drauf zurück.
die details:
0. hab ein kleines testbed aufgesetzt, das an einem tikerl hängt, weil man bei den tikerls sehr einfach mitsniffen und so das geschehen auf dem wartungsrechner, pire und server gleichzeitig mitverfolgen kann.
1. mein setup:
- e1-e6 des tikerl sind bridged, da passiert also überhaupt nix.
- e1: wartungsrechner mit der ip 10.0.0.145/24.
- e4: PRGAV4202N2 mit der fw. E_3.0.10 und der ip 10.0.0.138/24.
- e6: webserver mit standardport tcp/80 und der ip 10.0.0.1/24.
2. der test
- ich hab einen ddns-account bei spdns.de mit dem host ***.spdns.org, der zu 217.*.*.* aufgelöst wird.
- ich setze am pire eine weiterleitung für den tcp/80 auf den server 10.0.0.1, i.e. pub-ip:80 = 217.*.*.*:80 -> 10.0.0.1:80.
- ich greife aus dem lan mit dem wartungsrecher 10.0.0.145 auf den server über den hostname
http://***.spdns.org und net über die private ip 10.0.0.1 zu. letzteres funkt sowieso- zumindest bei der E_3.0.10, bei der *sensationellen* E_3.2.3 aber halt nimmer lt. osiris.
3. die traces
- ich geh den 3-way-handshake für den tcp/80 des server anhand der traces durch.
- zeilen, die mit "# ***" beginnen, sind von mir eingefügte kommentare.
- Code: Alles auswählen
> too sni pa p d
# ***
# *** SYN ***
# *** ein syn-packerl mit (src=10.0.0.145/dst=217.*.*.*:80) vom wartungsrechner kommt über e1 rein.
0 time=5.285 num=1 direction=rx interface=e1 src-address=10.0.0.145:51237 dst-address=217.*.*.*:80 (http) protocol=ip
ip-protocol=tcp size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=54557 fragment-offset=0 ttl=64 tcp-flags=syn
# *** das tickerl leitet das packerl unverändert über den e4, an dem das pire hängt, zum pire weiter
1 time=5.285 num=2 direction=tx interface=e4 src-address=10.0.0.145:51237 dst-address=217.*.*.*:80 (http) protocol=ip
ip-protocol=tcp size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=54557 fragment-offset=0 ttl=64 tcp-flags=syn
# *** am pire passiert das bouncing, das aus 2 schritten besteht:
# *** zuerst in der prerouting chain das dnat von 217.*.*.*:80 auf 10.0.0.1:80
# *** danach in der postrouting chain das masquerading der ip 10.0.0.145 auf 10.0.0.138, sodaß das routing dreieck voll genommen wird.
# *** ingesamt wird damit aus (src=10.0.0.145/dst=217.*.*.*:80) (src=10.0.0.138/dst=10.0.0.1:80).
# *** das derart modifizierte packerl kommt wieder über den e4 retour...:
2 time=5.287 num=3 direction=rx interface=e4 src-address=10.0.0.138:51237 dst-address=10.0.0.1:80 (http) protocol=ip ip-protocol=tcp
size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=54557 fragment-offset=0 ttl=64 tcp-flags=syn
# *** der ccr übernimmt das packerl und leitet es über den e6 in richting server weiter:
3 time=5.287 num=4 direction=tx interface=e6 src-address=10.0.0.138:51237 dst-address=10.0.0.1:80 (http) protocol=ip ip-protocol=tcp
size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=54557 fragment-offset=0 ttl=64 tcp-flags=syn
# ***
# *** SYN-ACK ***
# *** das syn-ack vom server mit (src=10.0.0.1:80/dst=10.0.0.138) kommt über den e6 rein und...:
4 time=5.287 num=5 direction=rx interface=e6 src-address=10.0.0.1:80 (http) dst-address=10.0.0.138:51237 protocol=ip ip-protocol=tcp
size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=0 fragment-offset=0 ttl=64 tcp-flags=syn,ack
# *** ...wird vom tikerl unverändert über den e4 zum pire geschickt:
5 time=5.287 num=6 direction=tx interface=e4 src-address=10.0.0.1:80 (http) dst-address=10.0.0.138:51237 protocol=ip ip-protocol=tcp
size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=0 fragment-offset=0 ttl=64 tcp-flags=syn,ack
# *** am pire wird das dnat/masquerading wieder rückabgewickelt. aus (src=10.0.0.1:80/dst=10.0.0.138) wird (src=217.*.*.*:80/dst=10.0.0.1)
# *** und das "restaurierte" packerl kommt über den e4 retour...:
6 time=5.288 num=7 direction=rx interface=e4 src-address=217.*.*.*:80 (http) dst-address=10.0.0.145:51237 protocol=ip
ip-protocol=tcp size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=0 fragment-offset=0 ttl=64 tcp-flags=syn,ack
# *** ...und wird vom tikerl über den e1 zum rechner weitergeleitet:
7 time=5.288 num=8 direction=tx interface=e1 src-address=217.*.*.*:80 (http) dst-address=10.0.0.145:51237 protocol=ip
ip-protocol=tcp size=60 ip-packet-size=60 ip-header-size=20 dscp=0 identification=0 fragment-offset=0 ttl=64 tcp-flags=syn,ack
# ***
# *** ACK ***
# *** das spielchen vom syn wiederholt sich usw...
8 time=5.288 num=9 direction=rx interface=e1 src-address=10.0.0.145:51237 dst-address=217.*.*.*:80 (http) protocol=ip
ip-protocol=tcp size=52 ip-packet-size=52 ip-header-size=20 dscp=0 identification=54558 fragment-offset=0 ttl=64 tcp-flags=ack
9 time=5.288 num=10 direction=tx interface=e4 src-address=10.0.0.145:51237 dst-address=217.*.*.*:80 (http) protocol=ip
ip-protocol=tcp size=52 ip-packet-size=52 ip-header-size=20 dscp=0 identification=54558 fragment-offset=0 ttl=64 tcp-flags=ack
10 time=5.289 num=13 direction=rx interface=e4 src-address=10.0.0.138:51237 dst-address=10.0.0.1:80 (http) protocol=ip
ip-protocol=tcp size=52 ip-packet-size=52 ip-header-size=20 dscp=0 identification=54558 fragment-offset=0 ttl=64 tcp-flags=ack
11 time=5.289 num=14 direction=tx interface=e6 src-address=10.0.0.138:51237 dst-address=10.0.0.1:80 (http) protocol=ip
ip-protocol=tcp size=52 ip-packet-size=52 ip-header-size=20 dscp=0 identification=54558 fragment-offset=0 ttl=64 tcp-flags=ack
unterm strich also ein bouncer/reflector ("pseudo natloopback") und und kein true natloopback. der begriff "pseudo natloopback" ist leider eine unglückliche formulierung, weil eine loop suggeriert wird, die bei einem bouncer gar nicht vorhanden ist. ein bouncer ist nun mal ein routing dreick und eben keine loop.
so, und jetzt nur noch den dreck dieses posts aufwischen:
viewtopic.php?f=20&t=56636&#p468869ich schreibe da, und
!! DIESE AUSSAGE IST FALSCH !!:
"...2. pseudo natloopback, i.e. ein bouncer/reflector am lan-intf, kann nicht konfiguriert, weil die firewall des pires zu unflexibel ist..."RICHTIG IST::
bei den e-fws. des pire wird beim setzen einer portweiterleitung im hintergrund automatisch der entsprechende bouncer eingerichtet, sodaß der zugriff auf lokale server über öffentliche ips möglich ist- falls die fw. halt net komplett verbuggt ist.dank dir, rwhome.
zurück zu deinem thema osiris,
hab dein prob mit leuten diskutiert, die was von der materie verstehen, und die sind unisono der meinung, daß nach einem zwangsupgrade auf die E_3.2.3 ein reset vorzunehmen ist, weils sonst, mal ganz abgesehen von den inherenten hoppalas der 3.2.3er, zu "lustigen" effekten kommen kann. die ausgangskonfig wird nämlich nicht immer sauber übernommen...
das kann natürlich *sehr unangenehm* werden, wenn du vor der zwangsbeglückung eine offene fw. laufen hattest und da die konfig an deine anforderungen sehr individuell angepaßt hast.
praktikable workarounds:
- einfach und billig:
am pire auf su gehen und ein spielzeug, das die bezeichnung "router" verdient, als dialer nachschalten.
- einfach und nimmer ganz so billig:
wenn du kein zweites gerät laufen lassen willst, dann bleibt dir praktisch nur noch cisco übrig. mit bestimmten dsl-treibern sind manche modelle bei der ta white listed. und bei den ciscos kannst du nicht nur so ziemlich jeden furz ein- und verstellen, du bist mit einem service contract auch unabhängig von der ta, weil du dir damit *bei cisco* jederzeit die neueste und komplett offene sw. runterziehen kannst.
lg
zid
liebste jutta, *twitscher*, *twitscher*, *flöt*, *flöt*, *flöt*
ich hab wie üblich mist gebaut, net haun.
könntest du bitte den abschnitt #2 dieses posts...:
viewtopic.php?f=20&t=56636&#p468869...bis auf die iptables-zeilen, die stimmen ausnahmsweise, ausgrauen und mit einem "//edit" auf die richtigstellung in diesem post verweisen?
dank dir
& lg
zid