Nu știu dacă este o eroare sau un comportament de rezervă intenționat, dar din ce se poate vedea aici, nu are nicio legătură cu wlan0
ruta locală pe care ați menționat-o sau toate gateway-ul implicit bla bla (fără supărare, dar aproape că nu are sens pentru mine) menționate în celălalt răspuns/„corect”.
În mod normal cum MASCARADĂ
funcționează este că alege adresa care este configurată pe outbound interfață (care este determinată de rutare, prin urmare POSTOUTARE
) pentru sursa NAT pe care o realizează. (Dacă sunt atribuite mai multe adrese pe interfață, probabil că va alege prima sau cea care este setată ca adresă sursă preferată în ruta corespunzătoare; nu sunt atât de familiarizat cu aceasta și asta nu este în afara domeniului de aplicare aici oricum). Nu are nimic de-a face cu adresa nexthop / gateway a rutei implicite. (NAT sursă nu funcționează oricum așa.)
Cu toate acestea, când vine vorba de interfață uite
, lucrurile par să devină puțin complicate. Mai exact, nu pare să aibă vreo legătură cu interfața în sine (în afară de faptul că va fi interfața de ieșire deoarece destinația este o adresă locală), ci mai degrabă faptul că, adresele din 127.0.0.0/8
blocul nu intră în domeniul de aplicare global
. Deși habar n-am ce se întâmplă în spatele scenei, se pare că traficul nu poate „apari” dacă gazda nu are niciun scop. global
Adresă IP configurată, dar încercați MASCARADĂ
.
Ceea ce pot vedea aici este, chiar dacă doar configurați o adresă care este valabilă pentru domeniu global
(de exemplu. 192.168.0.10/32
) pe orice interfață (inclusiv uite
), veți vedea că funcționează din nou. (Ruta locală pe care ați menționat-o va fi adăugată automat.Dar nu văd că adăugarea doar a traseului funcționează aici.)
Pentru cât merită, adresele și interfețele nu sunt puternic legate între ele în Linux (nu într-un mod simplu, cum ar fi, va răspunde la traficuri numai dacă adresa lor de destinație se potrivește cu adresa configurată pe interfața de intrare, chiar și atunci când redirecționarea IP este nu de îngrijorare). Deci s-ar putea să aibă ceva de-a face cu asta: în caz MASCARADĂ
nu pot alege un domeniu global
adresa din ceea ce sunt configurate pe interfața de ieșire, alege doar una dintre oricare (mă îndoiesc că prioritatea are ceva de-a face cu ruta implicită), dacă tot nu, pur și simplu refuză să funcționeze într-un fel.
În cazul în care aveți nevoie într-adevăr de o regulă care să permită MASCARADĂ
pe toate interfețele dar uite
, poti avea:
iptables -t nat -A POSTROUTING ! -o lo -j MASCARATĂ