Hallo an alle,
ich habe keine Lösung bei einem wahrscheinlich einfachen Problem bisher gefunden.
Was ist vorhanden: Ich habe ein Messgerät, welches ich über USB an einen Raspberry PI anschließe. Der USB Treiber ist eine USB->Ethernet Karte und erzeugt mir eine IP Adresse von 10.0.1.5 auf dem PI. Die IP Adresse des Messgerätes lautet: 10.0.1.4. Der Ethernetadapter heißt eth1 Jetzt wird der PI auch an ein beliebiges Netzwerk angeschlossen und bekommt dort mit DHCP eine IP zugewiesen. Die Schnittstelle hier ist eth0. Das derzeit genutzte Netz ist 192.168.1.xxx (soll aber später auch anders heißen können) Des weiteren existiert noch ein WLAN Adapter wlan0 (Hier ist das Netz 192.168.0.xxx wobei der PI 192.168.0.1 zugewiesen bekommt.)
Was will ich machen: Mein Plan ist es nun aus dem 192.168.1.xxx Netz auf die IP Adresse des PI zugreifen zu können und dann, durch routing, auf dem Messgerät zu landen. Das gleiche soll auch passieren, falls ich mich über WLAN auf dem PI einlogge. Weiterhin hätte ich aber gerne, dass bei Benutzung von Port 22 und 8080 ich den Port auf dem Pi ansprechen kann und das dann nichts weitergeleitet wird.
Was habe ich probiert: verschiedenes: Ich habe derzeit die ipforward Funktion eingeschaltet. Ich überwache parallel mit tcpdump die Verbindung eth1.
Mein bester Versuch war bisher
1 | sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.1.4:80 |
Hier hatte ich immerhin traffic auf eth1. Allerdings scheint der traffic noch ins leere zu gehen, bzw ich bin mir nicht sicher ob ich Antwort bekomme.
Folgende Antwort bekomme ich per tcpdump wenn ich direkt (also vom PI aus) auf das Messgerät zugreife (und so solltes es auch abgesehen von der EingangsIP final aussehen):
10:55:47.382535 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [S], seq 2241065743, win 29200, options [mss 1460,sackOK,TS val 3839828756 ecr 0,nop,wscale 7], length 0 10:55:47.389196 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [S.], seq 15260, ack 2241065744, win 16384, options [mss 2048], length 0 10:55:47.389278 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 1, win 29200, length 0 10:55:47.391249 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [P.], seq 1:254, ack 1, win 29200, length 253: HTTP: GET / HTTP/1.0 10:55:47.570948 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [.], seq 1:1461, ack 254, win 16131, length 1460: HTTP: HTTP/1.1 200 OK 10:55:47.571057 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 1461, win 32120, length 0 10:55:47.576455 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [.], seq 1461:2921, ack 254, win 16131, length 1460: HTTP 10:55:47.576535 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 2921, win 35040, length 0 10:55:47.580690 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [.], seq 2921:4381, ack 254, win 16131, length 1460: HTTP 10:55:47.580727 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 4381, win 37960, length 0 10:55:47.586188 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [.], seq 4381:5841, ack 254, win 16131, length 1460: HTTP 10:55:47.586215 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 5841, win 40880, length 0 10:55:47.605695 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [P.], seq 5841:6159, ack 254, win 16131, length 318: HTTP 10:55:47.605723 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 6159, win 43800, length 0 10:55:47.609135 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [F.], seq 254, ack 6159, win 43800, length 0 10:55:47.624600 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [.], ack 255, win 16130, length 0 10:55:47.628435 IP 10.0.1.4.http > 10.0.1.5.39612: Flags [F.], seq 6159, ack 255, win 16130, length 0 10:55:47.628485 IP 10.0.1.5.39612 > 10.0.1.4.http: Flags [.], ack 6160, win 43800, length 0
Wenn ich aber über die obige IP Regel arbeite (von dem externen Rechner 192.168.1.157) kommt
10:57:08.980184 IP 192.168.1.157.54531 > 10.0.1.4.http: Flags [S], seq 342281395, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:08.980748 IP 192.168.1.157.54532 > 10.0.1.4.http: Flags [S], seq 328434745, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:09.231035 IP 192.168.1.157.54535 > 10.0.1.4.http: Flags [S], seq 2215938131, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:11.978019 IP 192.168.1.157.54531 > 10.0.1.4.http: Flags [S], seq 342281395, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:11.978086 IP 192.168.1.157.54532 > 10.0.1.4.http: Flags [S], seq 328434745, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:12.230051 IP 192.168.1.157.54535 > 10.0.1.4.http: Flags [S], seq 2215938131, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 10:57:13.993304 ARP, Request who-has 10.0.1.4 tell 10.0.1.5, length 28 10:57:13.997337 ARP, Reply 10.0.1.4 is-at 00:00:af:02:2a:22 (oui Unknown), length 28 10:57:17.984061 IP 192.168.1.157.54531 > 10.0.1.4.http: Flags [S], seq 342281395, win 8192, options [mss 1460,nop,nop,sackOK], length 0 10:57:17.984123 IP 192.168.1.157.54532 > 10.0.1.4.http: Flags [S], seq 328434745, win 8192, options [mss 1460,nop,nop,sackOK], length 0 10:57:18.229960 IP 192.168.1.157.54535 > 10.0.1.4.http: Flags [S], seq 2215938131, win 8192, options [mss 1460,nop,nop,sackOK], length 0
Man erkennt, dass die Ports der Antwort in beiden Fällen sehr gross sind und ich gehe davon aus, dass diese derzeit noch geblockt werden. Ist das richtig?
Wie bekomme ich ein vernünftiges routing hin?
Mit dem Wlan habe ich mich bisher noch nicht auseinandergesetzt. Ich denke, dass ich hier auf eth0 routen muss. dann sollte doch alles gehen oder?
Danke für eure Hilfe
Schöne Grüße
Tschaka