eth0:0 ni lebo, si kifaa: rekebisha ulinganifu wa SNAT
Kihesabu cha sifuri kinamaanisha kwamba kanuni inataja kiolesura kisichoweza kuwepo. Soma kifaa halisi, rekebisha ulinganifu wa -o kisha uchague anwani iliyotafsiriwa kwa makusudi.
Kanuni ya NAT ambayo ilipaswa kuipa kundi moja la wateja wa VPN anwani yake ya umma inasimama kwa pakiti sifuri, wakati kundi hilo hilo linaendelea kutoka kwa chanzo kisicho sahihi. Kanuni kwa kawaida haikosei anwani; inakosea kiolesura. -o eth0:0 inaelekeza kwenye kifaa kisichokuwepo, kwa sababu eth0:0 ni lebo iliyounganishwa na anwani kwenye eth0. Kuangalia vihesabu ndiyo njia ya haraka zaidi ya kuthibitisha hilo, na marekebisho ni madogo kuliko uchunguzi unavyodokeza.
Angalia jinsi kernel inavyoita kifaa
Soma maoni mawili kwa mbali kabla ya kubadilisha chochote:
ip link show
ip address show dev eth0
ip route get 203.0.113.20
Orodha ya viungo inaonyesha violesura. Orodha ya anwani inaweza kuonyesha anwani ya pili ya IPv4 inayobeba lebo eth0:0, na kifaa cha anwani hiyo bado ni eth0. Mwongozo wa anwani wa iproute2 unachukulia lebo kama jina la anwani, si kiungo cha pili, na ndiyo tofauti ambayo tatizo lote linategemea.
Historia inaeleza mkanganyiko. Sintaksia ya zamani ifconfig eth0:0 ilionekana kweli kama kiolesura kipya, na hati za wakati huo bado zinarejelea kimoja. Katika mfumo wa leo, alias ni lebo juu ya anwani, na hakuna kitu kwenye njia ya uelekezaji au netfilter kinachokichukulia kama mahali pa kutoka tofauti.
Angalia kanuni ililingana na nini hasa
Soma vihesabu pamoja na orodha ya kanuni, si kwa kumbukumbu:
iptables -t nat -L POSTROUTING -v -n --line-numbers
Kanuni ambayo kihesabu chake cha pakiti kinabaki sifuri wakati trafiki inayolingana inapita haitathminiwi, na sharti la kiolesura cha kutoka linalotaja eth0:0 ni sababu ya kawaida. Kifaa cha kutoka kilichochaguliwa na njia ni eth0, kwa hivyo sharti linalotafuta jina lingine haliwi kweli kamwe, hata kernel ichague anwani gani ya chanzo.
Badilisha sharti kuwa kifaa halisi na uache lebo nje yake. Ikiwa unahitaji kutofautisha makundi mawili ya wateja yanayoshiriki kifaa hicho, yatofautishe kwa kiambishi cha chanzo, si kwa jina la kiolesura lisiloweza kuwepo. Kanuni mbili zenye ulinganifu -s usioingiliana zinasomeka na kujaribiwa; kanuni moja yenye kifaa cha kubuni si mojawapo. Kila kanuni ipewe maoni yanayotaja kundi, kwa sababu baada ya miezi sita kiambishi peke yake hakitamwambia mtu yeyote kwa nini kiko hapo.
Angalia njia iliyochagua kifaa
NAT ya postrouting hufanya kazi baada ya njia kuwa imechagua kiolesura cha kutoka, kwa hivyo kiolesura kwenye kanuni lazima kiwe kile kilichochaguliwa na njia. Muulize kernel moja kwa moja kwa ip route get kwa anwani ya mteja inayowakilisha na usome kifaa na chanzo anachoripoti.
Ikiwa jibu linataja eth0, sehemu ya kiolesura ya kanuni imekwisha. Ikiwa linataja kifaa cha handaki, pakiti haifikii kanuni unayohariri, na utafutaji unahamia kwenye jedwali la uelekezaji na vipaumbele vyake. Kanuni isiyolingana kamwe kwa sababu pakiti ilitoka mahali pengine inaonekana kwenye matokeo ya vihesabu kama kanuni yenye kifaa kilichoandikwa vibaya. Thibitisha ni hali ipi kati ya mbili uliyonayo kabla ya kuhariri chochote, kwa sababu ya pili inahitaji mabadiliko ya uelekezaji na si mabadiliko ya maandishi.
Chagua chanzo kilichotafsiriwa kwa makusudi
Kifaa kikiwa sahihi, anwani ya chanzo ni uamuzi tofauti. Hii ni mfano tu wa kundi la IPv4 na anwani ya mfano:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
-j SNAT --to-source 203.0.113.20
Kuandika anwani kwenye --to-source hakumfanyi mtu kuielekeza nyuma kwako. Mtoa huduma wa juu au mmiliki wa anwani lazima awasilishe majibu ya anwani hiyo kwa mwenyeji huyu, na anwani lazima iwe moja ambayo umeidhinishwa kuitumia. Ikiwa sivyo, kanuni italingana na kutafsiri na majibu yataenda mahali pengine.
Kubadilisha anwani ya chanzo si sawa na kubadilisha kiungo cha juu. Wakati hitaji halisi ni njia nyingine ya kimwili, sera ya uelekezaji lazima ichague njia hiyo kwanza; kisha SNAT inaandika upya chanzo kwenye kifaa chochote kilichochaguliwa na sera. Lebo zaidi kwenye eth0 hazitoi njia wala idhini.
Thibitisha kwa muunganisho ulioufungua hivi punde
Fungua muunganisho mpya wa mteja badala ya kutumia tena uliopo. Ufuatiliaji wa miunganisho huhifadhi tafsiri iliyorekodiwa wakati mtiririko ulipoanza, kwa hivyo kikao cha zamani kinaweza kuendelea kutumia anwani ya chanzo iliyotangulia na kufanya kanuni mpya sahihi ionekane imevunjika. Tazama kihesabu kikiongezeka, kisha angalia chanzo kilichotafsiriwa kwenye waya au upande wa mbali.
Kwa makundi kadhaa yanayoshiriki kiolesura kimoja, ipe kila moja ulinganifu wa chanzo ulio wazi na anwani yake ya tafsiri, ziweke kwenye usanidi unaosimamiwa wa firewall na uandike mpangilio inavyotathminiwa. Kisha andika ulichothibitisha: kifaa kutoka ip route get, kihesabu kilichosogea, na chanzo kilichoonwa na upande wa mbali. Rekodi hiyo inajibu ripoti ijayo bila kurudia mkanganyiko wa lebo.