Am configurat un serviciu ppp dinamic pe o mașină Linux unde clienții se vor conecta și vor obține un IP privat.
Regulile pe care le-am configurat în iptables sunt în prezent:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_dynaddr=1
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
iptables -A INTRARE -i ppp+ -j ACCEPT
iptables -A FORWARD -i ppp+ -j ACCEPT
iptables -I PREROUTING -t nat -i ppp+ -p udp -s 10.0.10.3 -j DNAT --to 10.0.10.2
iptables -I PREROUTING -t nat -i ppp+ -p udp -s 10.0.10.2 -j DNAT --to 10.0.10.3
Funcționalitatea mea este ca oricine se conectează la interfața ppp să moștenească IP-ul gazdei și să aibă acces la internet și să poată comunica cu colegii din aceeași rețea. Succes!
Cu excepția pachetelor de difuzare. Orice trimis la 255.255.255.255 sau altele asemenea nu ajunge la nimeni. Pentru a atenua, am codificat regulile în îndrăzneţ de sus, însă aceasta nu este o soluție dinamică și se adună în funcție de numărul de clienți conectați.
Întrebarea mea este, ce pot face pentru a avea o soluție iptables „wildcard” la asta? Mai exact, am nevoie în mod ideal de o soluție cu o singură linie care să redirecționeze orice pachet udp de la interfețele ppp la alte interfețe ppp, fără a interfera cu celelalte reguli sau pachete tcp.
Multumesc anticipat.
Editați | ×
M-am cedat și am încercat să codific regulile pentru 100 de IP-uri pentru ca cel puțin să funcționeze normal.Chiar și în cel mai scurt format pe care l-am putut găsi, am întâlnit problema că numai primul regula va intra în vigoare pentru un anumit pachet, ceea ce înseamnă că nu pot crea mai multe reguli pentru același pachet și nu pot crea o regulă catch-all pentru un singur IP pentru întreaga rețea, deoarece va trimite pachetul în cauză la sursă ca bine, ceea ce duce la un eșec similar:
Captură de ecran a regulilor
Editare 2
M-am pliat deoarece niciuna dintre soluțiile pe care le-am identificat până acum pentru iptables nu este scalabilă sau aplicabilă în scenariul meu, din păcate. Voi păstra această întrebare deschisă în cazul în care cineva are vreo modalitate de a realiza acest lucru într-una sau câteva rânduri în iptables sau altfel.
Între timp, nu ezitați să examinați următoarele documente relevante pentru cazul meu specific, dacă sunteți curios sau dacă vă aflați în aceeași categorie:
Redirecționarea pachetelor Cisco Broadcast
Retransmisie UDP
Tutorial NAT
Documentația DNAT IP Range
În cele din urmă, iată soluția pe care am implementat-o în prezent:
https://github.com/udp-redux/udp-broadcast-relay-redux