Puncte:1

„socat” nu afișează pachetele UDP primite, dar Wireshark o face

drapel gu
QF0

Link-ul este o imagine a unui Halda Wireshark a unui cadru Ethernet de 60 de octeți de intrare care conține un pachet UDP. Sarcina utilă a pachetului este un singur cuvânt „bună ziua” (îmi pare rău, nu am suficientă rep pentru a lipi imaginea direct).

Problemă: nu pot primi socat sau nc pentru a citi și afișa acest pachet (acest lucru nu este în întregime adevărat; vezi #1 de mai jos).

Rulez cititorul ca:

$ socat UDP:192.168.50.129:5000 -

Am încercat diferite formate de adrese legate de UDP, precum și acesta. Scriitorul este condus ca:

$ socat READLINE UDP:192.168.50.132:5000

Întrebare: cum afișez acest pachet primit, de preferință ca un singur cuvântBuna ziua?

Există, din păcate, câteva complicații:

#1

Dacă rulez cititorul ca # socat INTERFACE:ens4f0 - apoi eu do obțineți o afișare a cadrului primit (este afișat de două ori, dintr-un motiv oarecare). Există o ieșire binară și apoi cuvântul Buna ziua. Cu toate acestea, nu pot face acest lucru, deoarece în cele din urmă vor exista alte procese care vor folosi această interfață, așa că trebuie să înțeleg ce se întâmplă

#2

Cadrul de intrare are de fapt o adresă IP dst de 192.168.50.132; firewall-ul este setat să convertească acest lucru în 192.168.50.129, care este adresa la care ascultă cititorul:

  # iptables -t nat -A PREROUTING -i ens4f0 -j DNAT --to 192.168.50.129

Ieșirea Wireshark arată pachetul de intrare înainte de această conversie, deci arată adresa IP dst ca 192.168.50.132. Nu știu cu adevărat dacă funcționează sau nu - pot obține socat pentru a produce o descărcare hexagonală a ceea ce vede de fapt ens4f0?

#3

Acesta este cel dificil, dar sper că nu are legătură. Acesta este de fapt un test de loopback: un singur cadru se stinge ens4f0, este recircuit de hardware extern și este returnat nemodificat la ens4f0. NIC-ul are o adresă IP 192.168.50.129. am un ip neigh add comanda către care direcţionează accesul 192.168.50.132 afara din ens4f0 la hardware-ul extern; pachetul este returnat nemodificat, motiv pentru care am nevoie de iptables comandă pentru a converti adresa IP dst înapoi în ens4f0 abordare.

QF0 avatar
drapel gu
QF0
Bună @A.B: pentru XY, problema reală este practic numărul 3: efectuați un test de loopback folosind o singură placă de rețea. Loopback-ul trece printr-un kit de testare extern, dar poate fi considerat a fi un simplu cablu Ethernet loopback. Forțez traficul să meargă în exterior prin definirea unei adrese IP false (132) și `ip neigh add`. Știu că acest lucru funcționează, iar traficul extern este returnat la `ens4f0`. Problema este atunci să citești pachetul. Sper să fac asta cu NAT, schimbând adresa falsă (132) la adresa IP reală a cardului (129). Cu toate acestea, nu cred că NAT funcționează.
A.B avatar
drapel cl
A.B
Mi-am șters comentariul pentru că cred că fiecare dintre cele 3 puncte are probleme. utilizarea socat, folosind stateful nat cu un nat fără stat în fața sa, folosind traficul în buclă cu aceleași adrese, toate acestea într-un context de nat. descrierea nu se potrivește cu comanda. de exemplu: „paravanul de protecție este setat să convertească acest lucru în 192.168.50.129” nu se potrivește cu „--la 192.168.50.132” . Și pentru scopul pe care îl întrebam: pentru ce aplicație va fi utilă, nu cum se face, ci de ce se face.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.