Interfazea nahi zenuen izen-espazioan agertzen da, aplikazioa hari lotuta dago, eta hala ere ez da inoiz tunel-trafikorik agertzen. Hau Linux kernelaren WireGuard gailu baten ezaugarria da, izen-espazio batean sortu eta bestera mugitu zena: interfazea mugitu zen eta bere UDP socket zifratua ez. Biek leku egokian egon behar dute barneko trafikoak garrantzia izan baino lehen. Egiaztapena azkarra da, bat ez beste bi testuingururi begiratu behar zaiela jakinda.

Sintoma: izen-espazio egokia, paketerik ez

Izen-espazioaren barruan, tunela osasuntsu ikusten da. Gailua badago, helbideak esleituta daude eta parearen konfigurazioa han dago. Kanpotik, esperotako UDP trukea ez da inoiz agertzen zu zaintzen ari zinen interfazean, eta kontrako aldeak jakinarazten du ez dela eskuko ezer gertatu.

Arrazoia zera da: aplikazioaren barneko paketeak mugitutako gailura iristen dira, eta gailuak beste sare-testuinguru bati dagokion socket baten bidez bidaltzen saiatzen da. Erabiltzen duen azpiko bidea, eta hari aplikatzen zaizkion suebaki-arau guztiak, gailua sortu zen izen-espaziokoak dira.

Hori ez da mugimenduko akats bat eta ez da parearen konfigurazio okerra. Kernelaren inplementazioak horrela egiten du, eta WireGuarden izen-espazioen dokumentazioak sorrera-araua zuzenean deskribatzen du.

Zergatik du socket-ak jaioterria

WireGuard gailu batek UDP socket bat du bere garraio zifraturako, eta socket hori gailua sortzen den izen-espazioan irekitzen da. Interfazea estekak mugitzeak ikusgai dagoen gailua lekuz aldatzen du, baina garraioa hasi zen lekuan uzten du. Orduan bi objektuek jabe desberdinak dituzte.

Ondorioa erraz pasatzen da oharkabean, bi erdiak leku desberdinetan aztertzen direlako. Barneko bidea aplikazioa exekutatzen den izen-espazioan erabakitzen da, eta kanpoko bidea socket-a bizi den lekuan erabakitzen da. Bakarra egiaztatzeak ondorio ziurra baina okerra ematen du. Biak egiaztatzeak ikerketa pasa bakar batean amaitzen du normalean.

Sortu ezazu socket-a nahi duzun tokian

Konponbidea gailua helmugako izen-espazioaren barruan sortzea da, kanpoan sortu eta mugitu beharrean. Suposatuz onartutako izen-espazio bat badagoela eta izena erabilia ez dagoela:

ip netns exec vpn-apps ip link add wg-demo type wireguard
ip netns exec vpn-apps wg show

Orain interfazea eta bere socket-a testuinguru horretakoak dira, beraz azpiko bidea eta aplikagarriak diren iragazte-arauak han konfiguratutakoak dira. Diseinuak alde argia beste leku batean behar badu, jarri azpiko interfazea lehenengo izen-espazioan eta sortu tunela ondoren. Ordena diseinuaren parte da, ez inplementazio-xehetasun bat.

Har itzazu sare-administrazioko komando gisa, ez errezeta gisa. Gailu bat sortzen dute eta egoera erakusten dute; gakoek, pareek, helbideek eta bideek konfigurazio onartu batetik etorri behar dute oraindik, eta inoiz ez litzateke existitzen den ekoizpen-interfaze bat adibide batean ordezkatu behar.

Irakurri bidearen bi aldeak

Gailua leku egokian dagoenean, egiaztatu bi erabakiak bereizita. Hasi barneko bilaketarekin aplikazioaren testuingurutik, eta gero egiaztatu kanpoko bidea socket-aren jabe den testuingurutik:

ip netns exec vpn-apps ip route get 10.30.0.9
ip netns exec vpn-apps wg show
tcpdump -ni any udp port 51820

Barneko bilaketak tunelaren bidez ebazten badu eta kanpoko harrapaketak truke zifratua erakusten badu, bi erdiak bat datoz. Harrapaketa hutsik badago, socket-a oraindik beste leku batean dago, edo bere izen-espazioko azpiko bideak ez du helmuga-puntua lortzen.

Beste egiaztapen bat erregistroan sartzen da: nola sortzen den gailua berrabiarazi ondoren. Interfazea sorrera-testuinguru desberdinarekin birsortzen duen kudeatzaileak socket-aren jaioterria aldatzen du. Behin funtzionatu zuen eskuzko mugimendua ez da kudeatutako bidearen froga.

Erlazionatutako artikuluak