2947-es port engedélyezése oda-vissza a hálózat minden gépén

 ( bzs | 2016. december 31., szombat - 23:23 )

Sziasztok.

Adott egy eszközöm, ami 2947-es porton küld adatokat szerteszét, ide-oda.
Ez egy Access Pointként üzemel, minden kliens rácsatlakozik. Azt szeretném elérni, hogy minden kliens fogadja ezen adatokat TCP, UDP vagy mezei gpsd protokollal.
A cél egy NMEA-mondatokat küldő kütyü összehozása, csak hát a tűzfalak ugye minden Unixban alapból zárva vannak.

Eddog ilyet eszeltem ki:

iptables -I INPUT -p udp -s 192.168.12.1 --dport 2947 -j ACCEPT
meg ez:

IPT="/sbin/iptables"

IF_WLAN="wlan0"
TCP_IN_PORTS="60000"
UDP_IN_PORTS="0"
NMEA_PORTS="2947"

# GPS NMEA bridge wlan-on
$IPT -A INPUT -i $IF_WLAN -p udp -m multiport --dports $NMEA_PORTS -m state --state NEW -j ACCEPT;

(AP ip címe 192.168.12.1)

de ez nem elég. Nem jön a zadatfolyam. Vagy mégis jó, csak nem látom?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

"Adott egy eszközöm, ami 2947-es porton küld adatokat szerteszét, ide-oda. Ez egy Access Pointként üzemel"
Access-point vagy wifis router? Az AP egy Layer2 eszköz.

Kicsit zavaros a dolog. A wifis router küldene minden, a saját wifijére csatlakozó kliensének UDP-n és TCP-n valamit?

" a tűzfalak ugye minden Unixban alapból zárva vannak."
"IPT="/sbin/iptables"
Unix vagy Linux? Linuxon az alapértelmezett a teljes nyitottság a filter tábla INPUT, OUTPUT és FORWARD láncában is.

"Nem jön a zadatfolyam. Vagy mégis jó, csak nem látom?"
Ha nálad nem így van, akkor az eldobás előtt logold le a forgalmat.

Igen, a wifis router küldene minden, a saját wifijére csatlakozó kliensének UDP-n és TCP-n valamit.

A kliensek unixok. Kinux és android. Dózeres klienssel nem foglalkozom.

az adatfolyamot még megnézem tcpdumppal.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Idézet:
Igen, a wifis router küldene minden, a saját wifijére csatlakozó kliensének UDP-n és TCP-n valamit.

Biztos? Tudtommal a gpsd a 2947/tcp porton figyel, es amikor csatlakozik hozza egy kliens program, annak kuldi a GPS(ek)tol kapott infokat.

Neked a routered tuzfalan kell beengedni a 2947/tcp-re erkezo kapcsolatokat:

iptables -A INPUT -p tcp --dport 2947 -m state --state NEW -j ACCEPT

(disclaimer: fejbol irtam)

Mar egy jo ideje nem foglalkoztam a gpsd-vel, de ugy emlekszem, hogy miutan csatlakozol, neked kell kerni az adatfolyam elinditasat, magatol nem kuld semmit. Hogy meg erdekesebb legyen a dolog, jopar eve (talan a 2.95-os verzio kornyeken?) csinaltak egy inkompatibilis protokoll-valtast, tehat gpsd-verzio fuggo, hogy milyen paranccsal tudod elinditani az adatfolyamot.

Jo szorakozast... ;-)

Biztos. Szemléltető ábra itt:

http://www.housenaos.it/wp-content/uploads/2015/09/VisioneInsieme.png

sajnos az iptables-próba után sem jön adat..

---
--- A gond akkor van, ha látszólag minden működik. ---
---

"Biztos. Szemléltető ábra itt"
Nagyon biztos? Az ábrán középen van a wifi routered, ugye? Ez az ábra nem arról szól, hogy melyik oldalon milyen protokoll és porton hallgatnak az eszközök. Viszont a nyilak iránya kifejezetten a wifi router felé mutatnak, azaz jó eséllyel a többi eszköz nyit kapcsolatot a router felé, és nem a router a számára ismeretlen eszközök IP-i felé.

"az iptables-próba után sem jön adat"
A tcpdump mit mondott? Egyáltalán milyen paramétereket állítottál és melyik készülékeken (IP, protokoll, port)?

Nem jó képet tettem ide az imént.
http://vyacht.net/opencart/image/data/system-overview-mkIII.png
http://img.nauticexpo.com/images_ne/photo-g/55653-6022161.jpg
namegez:
https://i.ytimg.com/vi/zLR2EiMS1uo/hqdefault.jpg

Talán így. Lényeg, hogy egy hajón minden eszköznek biztosítsa az NMEA-mondatokat, ennyi. Ez pedig nagyrészt küldés, a kliensek csak fogadnak.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Idézet:
Ez pedig nagyrészt küldés, a kliensek csak fogadnak.

Mondom meg egyszer: a kliens kezdemenyezi a kapcsolatot, es csak ezutan tolja le a gpsd az adatfolyamot a kliens torkan.

Lasd meg a libgps dokumentaciojat, azon belul is a gps_open() fuggveny leirasat es a lap vegen a peldaprogramot.

tcpdump -i wifi_interfesz_neve -n dst port 2947

Ha itt nem látsz semmit, akkor nem a kliens tűzfal fogja meg az adatfolyamot, meg sem érkezik a kliensre.