Încercați să adăugați această regulă:
iptables -A FORWARD --in-interface br -j ACCEPT
și în cele din urmă înlocuiți
sudo iptables -t nat -A POSTROUTING -o wan1 -j MASQUERADE
de
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
Un Wireshark (sau tshark, tcpdump) poate fi utilizat pentru diagnosticare pe ambele interfețe simultan.
Analiză extinsă
Pot exista multe motive pentru care routerul nu funcționează:
- Redirecționarea IP nu este activată
- Serverul DNS este inaccesibil pentru gazdele LAN
- Setarea NAT (traducere adrese de rețea) nu funcționează pentru gazdele LAN
- ...
Reporniți computerul pentru a aduce toate serviciile la starea lor normală.
Nu utilizați nume, ci adrese IP numerice pentru a testa ping până când verificați că toate celelalte teste enumerate mai jos sunt OK. Eliminați posibila problemă DNS simultană în acest fel.
Testul 1
Verificați starea de rutare IP (redirecționare) (rezultatul 1 înseamnă că redirecționarea este activată):
cat /proc/sys/net/ipv4/ip_forward
Testul 2
Verificați setarea corectă NAT (masquerade) pentru interfața dvs. LAN:
ping -c 3 8.8.8.8
ping -c 3 -I 192.168.3.1 8.8.8.8
Prima comandă de mai sus este un test de accesibilitate al adresei IP de destinație. Trebuie să obțineți 3 răspunsuri ping valide. A doua comandă testează dacă NAT funcționează pentru adresele IP LAN. Dacă nu primiți niciun răspuns, înseamnă că Masquerade nu poate traduce adresa sursă 192.168.3.1. și celelalte adrese din LAN (192.168.3.0/24) au aceeași problemă. Verificați cu mare atenție secțiunea NAT din setarea iptables. Continuați cu testele următoare dacă setarea NAT arată bine, dar nu primiți niciun răspuns ping.
Dacă răspunsul ping este OK, dar alte noduri de rețea din LAN încă nu pot trimite ping la 8.8.8.8, atunci soluția posibilă este să specificați adresa completă a rețelei (nu numai propria proprie). br
adresa de interfață 192.168.3.1) ca sursă pentru NAT:
sudo iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o wan1 -j MASQUERADE
Testul 3
Pachetele WAN de ieșire și adresele lor IP:
Verificați tcpdump
este instalat și instalați-l, dacă nu este prezent.
care tcpdump
sudo apt-get install tcpdump
Procesul descris vă va ghida să verificați funcționalitatea tcpdump și o captare a datelor din rețea. Puteți opri procesul de capturare apăsând Ctrl+C în fereastra instanței tcpdump care rulează. Deschideți a doua fereastră de terminal (T2). Primul (T1) va fi utilizat pentru generarea de trafic și verificarea răspunsului. Veți folosi cel de-al doilea terminal (T2) pentru a porni și opri sarcinile de capturare folosind tcpdump. Este posibil să utilizați un singur terminal pentru ambele sarcini, dar dacă nu sunteți familiarizat cu comutarea sarcinilor în prim-plan și în fundal, este mai sigur să utilizați două terminale.
T2
sudo tcpdump -i wan1 -n icmp și gazdă 8.8.8.8
T1
ping -c 2 8.8.8.8
Veți vedea cele două pachete de ieșire ICMP (cerere ecou) și două răspunsuri ecou de intrare. Urmăriți adresele IP sursă și destinație. Pachetul de ieșire are IP destinație 8.8.8.8 și sursa este adresa IP WAN publică. Le veți compara cu adresele afișate în pasul următor.
Apăsați tasta Enter în terminalul T2 pentru a crea un nou spațiu de linie acolo în ieșirea rulării tcpdump
. Vă ajută să separați datele vechi și noi capturate în fereastră.
T1
ping -c 2 -I 192.198.3.1 8.8.8.8
Ce vezi? Există aceste posibilități:
- nu sunt capturate pachete
- sunt afișate numai pachetele de ieșire și au o adresă IP sursă greșită (de exemplu, 192.168.3.1 în loc de adresa IP publică a interfeței WAN).
- atât pachetele de ieșire, cât și cele de intrare sunt vizibile.
Rupe tcpdump
în fereastra T2 (Ctrl+C).
Vă rugăm să copiați răspunsul de la T2 și să-l lipiți aici în răspunsul dvs. Adăugați răspunsul lui ruta ip
și în cele din urmă aceste comenzi:
ip neigh
sudo iptables-save
Descrieți rezultatele altor teste.