Du VPN-klientoj povas eliri tra du malsamaj publikaj IPv4-adresoj, kaj la regulo, kiu tion faras, estas pli mallonga ol plej multaj homoj atendas. Kion igas ĝin funkcii ne estas la sintakso de iptables, sed la stato de la pakaĵo kiam ĝi atingas la eliran ĉenon: la fontadreso tie ankoraŭ devas distingi la klientojn. Se antaŭa masquerade jam kunfandis ambaŭ sur unu adreso, neniu regulo por unuopa kliento povas restaŭri la distingon. Unue solvu tiun demandon, poste skribu la tradukon.

Kiu identeco supervivas ĝis la pordego

La regulo kongruas la fontadreson de la pakaĵo, ne VPN-uzantnomon kaj ne la nomon, kiun montras klienta aplikaĵo. Ĉio, kio tradukas la pakaĵon pli frue sur la vojo, decidas, kion via regulo ankoraŭ povas vidi. Rulu la tabelon nat laŭ ordo kaj trovu la punkton, kie la fonto ankoraŭ estas por unuopa kliento.

iptables -t nat -S POSTROUTING

Legu tiun liston de la supro. Regulo masquerade proksime al la supro reskribas la fonton por ĉiu kongrua fluo, kaj enskriboj por unuopa kliento metitaj post ĝi kongruas adreson, kiu jam ne ekzistas. Kiam du LAN-aparatoj dividas unu tunelon kaj alvenas kiel unu interna adreso, la dezajno devas ŝanĝiĝi antaŭ ol la fajroŝirmilo: tenu iliajn fontajn gamojn apartaj aŭ donu al ĉiu sian propran internan adreson.

Ligu la atribuon de la interna adreso al la aŭtentikigita kliento. Doni tiun adreson al alia aparato transdonas ankaŭ la eliran politikon, kaj fonta tradukado mem ne estas identecpruvo.

Tradukado ne povas elpensi adreson

Ĉiu publika adreso devas esti atribuita aŭ enkursigita al ĉi tiu elira punkto, kaj la respondoj devas retrovi sian vojon al ĝi. Regulo, kiu sendas trafikon de adreso, al kiu neniu enkursigas reen, estas forĵetata ĉe la malproksima fino aŭ respondata al gastiganto, kiu neniam petis ĝin. Nuba provizanto-instancaro kutime havas sian publikan adreson tradukita al privata interfaca adreso antaŭ ol la pakaĵo eliras, do la SNAT-fonto devas esti la adreso, kiun la provizanto akceptos, ne la valoro, kiun montras la konzolo. Legu la adresmodelon de la provizanto kaj sekvu ĝin anstataŭ kopii la publikan valoron en ĉiun pakaĵon.

Praktike tio signifas kontroli la enkursigitan prefikson en la konzolo de la provizanto antaŭ ol tuŝi la fajroŝirmilon, kaj uzi la privatan interfacan adreson kiel tradukfonton kiam la mapado estas unu-al-unu. La adresoj uzataj en la ekzemploj sube venas el la dokumentaj gamoj, do la unua afero por anstataŭigi estas la adresa teksto mem.

Enmetu antaŭ la ĝenerala masquerade

Konfirmu la eliran interfacon kaj la nunan ĉenon antaŭ ol aldoni ion ajn. La unua decidas, kiujn pakaĵojn la regulo povas kongrui, kaj la dua montras, kio jam staras antaŭ ĝi.

ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers

La unua komando nomas la interfacon, tra kiu pakaĵo al la interreto efektive eliras. La dua presas la ĉenon kun lininumeroj. La ĝenerala masquerade-enskribo estas la linio, super kiun vi devas resti.

iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78

La du reguloj supre kongruas po unu internan adreson, limigas la kongruon al la elira interfaco kaj agordas la fonton eksplicite. Enmetu anstataŭ aldoni: ĉe pozicio 1 ili estas taksataj antaŭ la masquerade-linio. La ordo inter la du ne gravas, ĉar iliaj fontoj diferencas. Anstataŭigu ens3 per tio, kion raportis la itinera komando, kaj tenu aliajn fajroŝirmilajn administrilojn for de la samaj hokoj, ĉar du iloj skribantaj unu tabelon estas la kutima kaŭzo, ke ĝusta regulo havas neniun efikon.

Pruvu la fonton per nova fluo

Stateful NAT ligas tradukon kiam fluo komenciĝas kaj reuzas ĝin por postaj pakaĵoj, do seanco malfermita antaŭ la ŝanĝo konservas sian malnovan fonton post la ŝanĝo. Nur nove iniciatita konekto pruvas la regulon.

conntrack -L -s 10.88.4.20 -p tcp --dport 443

Legu la respondan direkton de tiu enskribo: ĝia celo estas la adreso, kiun la malproksima finpunkto vidas kiel la fonton. Komparu ĝin kun la publika adreso, kiun vi intencis, kaj traktu enskribon portantan la malnovan adreson kiel pruvon de fluo, kiu komenciĝis tro frue, ne de rompita regulo. Petu la klienton malfermi novan konekton, poste ripetu la informpeton. Malplenigi la tutan spur-tabelon por devigi la teston interrompas ĉiun alian seancon sur la pordego.

Tradukado ankoraŭ ne elektas la itineron, ne tralasas la fluon tra la filtrilo nek publikigas envenantan servon. Malĝusta itinero kaj mankanta permesa regulo daŭre malsukcesas post perfekta SNAT-regulo. Kontrolu ankaŭ IPv6 kaj ajnan duarangan eliran vojon, poste notu la parojn interna-al-publika en la dokumentaro de la fajroŝirmilo, por ke la sekva ŝanĝo komenciĝu de la mapado anstataŭ de la regula teksto.

Rilataj artikoloj