Gaadiidka Docker iyo VM ee ka dambeeya OpenVPN: waddo mise dib u lambarayn?
Kontaynarada iyo martida ku sugan martigeliyaha leh macmiil OpenVPN ayaa lumiya waddada soo noqoshada ama waxay isku dhegaan horgalaha tunnel-ka. Saddex su'aalood ayaa dooranaya xalka.
Martigeliyaha waxa uu ku baar-baaro tunnel-ka, kontaynarada agtiisa waxba ma gaadho. In port laga soo saaro kontaynara ay ku shaqeyso macmiilkeeda VPN ayaa ka sii xun: codsigu wuu yimaadaa oo jawaabtu waligeed ma baxdo. Labaduba waa go'aamo waddo oo martigeliyaha, Docker-na waa uun farriin-side.
Saddex su'aalood ayaa go'aaminaya labadaas kiis midkee aad eegto, waxayna qaataan ilaa hal daqiiqo.
Laba ciladood oo isku eg
Kii ugu horreeyay waa dhibaatada waddada soo noqoshada. Port la soo saaray waxa loo tarjumaa kontaynarada, codsigu wuu yimaadaa, jawaabtana waxa lagu waddaa waddada caadiga ah ee martigeliyaha, taas oo OpenVPN macmiilku u jeediyay tun0. Jawaabtu waxay ka baxdaa ciwaan aan saaxiibka fog filayn, waana la tuuraa. Kii labaad waa isku dhicidda horgalaha: buundada caadiga ah ee Docker waxay leedahay 172.17.0.0/16, tunnel shirkadeedna waxa uu riixaa isla baaxaddaas.
Mid waxa lagu hagaajiyaa shaxda waddo, kan kalena iyada oo buundada dib loo lambaraynayo. In wax la beddelo ka hor inta aanad ogaan midkee mid yahay waa sida kontaynara shaqaynaya loo jebiyo.
Ku go'aanso saddex su'aalood
Su'aal kowaad: ciladdu ma baaba'daa markaad joojiso VPN-ka? Haddii wax walba shaqeeyaan tunnel-ku daman, ka shakiyay waddada soo noqoshada. Su'aal labaad: ip route show table all ma taxayaa isla horgalaha laba jeer, mar buundada iyo mar tun0? Taasi waa isku dhicidda. Su'aal saddexaad: ciwaanka la saameeyay ma kontaynara, marti NAT mise marti buundaysan?
Su'aasha saddexaad waa muhiim sababtoo ah mid kasta wuxuu leeyahay hagaajin sax ah oo kala duwan, hagaajinta kontaynaradana marti libvirt ku dabaqidda waxay lumisaa fiid.
ip route
ip route show table all | grep -E '172\.1[7-9]|10\.8'
docker network inspect bridge --format '{{.IPAM.Config}}'Waddada soo noqoshada: shax loogu talagalay hal ciwaan isha
Marka gaadiidka kontaynarada ay tahay in uu ka baxo interface-ka jireed halka martigeliyaha laftiisu isticmaalayo tunnel-ka, waddo ku salaysan isha ayaa ah isbeddelka ugu yar. Ku dar qaanuun u dhigma ciwaanka kontaynarada oo u dir shax gaar ah. Wax kale martigeliyaha kuma dhaqaaqo.
ip rule add from 172.22.0.3 lookup 10
ip route add default via 172.22.0.1 table 10Baakad kasta oo ishiisu tahay ciwaankaas waxa uu marka hore eegaa shaxda 10, shaxda 10-na waxay u dirtaa albaabka buundada halkii tunnel-ka.
Ku xaqiiji ip route get 1.1.1.1 from 172.22.0.3. Jawaabtu waa in ay sheegto interface-ka buundada, ma aha tun0. Qaanuunnada sidan lagu daro waxay baaba'aan marka dib loo bilaabo, sidaas darteed geli unit-ka ama jillaabka shabakadda ee leh kontaynarada.
Qaabkaas oo kale waxa uu u shaqeeyaa kontaynara WireGuard, halkaas oo waddada jawaabtuna u baahan tahay qaanuun cad.
Isku dhicidda horgalaha: dib u lambaray buundada
Shaxda waddo waxay u dirtaa hal horgale hal meel. Haddii VPN-ku riixo 172.17.0.0/16 halka buundada Docker ay hore ugu taal, waxa guuleysta mitirikta hoose: Docker waxa uu dhigtaa waddadiisa xidhiidhsan mitir 0, waddada la riixayna waxay timaaddaa 50. Markaas tunnel-ku waxa uu u muuqdaa mid jaban halka Docker sii shaqaynayo, ama taa lidkeeda, iyada oo ku xidhan nidaamka rakibaadda. Dib u lambaray buundada halkii aad la diriri lahayd mitirka.
{
"bip": "10.200.0.1/24",
"default-address-pools": [{"base": "10.201.0.0/16", "size": 24}]
}Dib u bilow Docker isbeddelka ka dib oo dib u samee shabakadaha lagu dhisay barkada hore. Beddelka mitirka waxa uu khilaafka u rarayaa bilowga xiga oo keliya.
VM-yadu waxay mar kale u baahan yihiin jawaab kale
Martida libvirt ee shabakadda NAT caadiga ah waxay dhaxashaa waddada martigeliyaha oo waxay joojisaa gaaritaanka dibadda marka tunnel-ka martigeliyaha uu yeesho waddada caadiga ah. U beddelka martida qalab buundaysan ama macvtap waxay siinaysaa waddo u gaar ah shabakadda jireed. virt-manager ku dar hardware, dooro Network, dhig isha qalabka martigeliyaha macvtap, hayso virtio oo ah moodel, ka dibna jooji interface-ka NAT hore.
Martida macvtap badanaa ma gaadhi karto martigeliyaheeda. Taasi waa dhaqan la filayay ee ma aha cilad, waana in ay ku jirtaa qoraalka aad ka tagto.
Marti uun u baahan LAN-ka martigeliyaha, macmiilka iibiyaha waxa laga yaabaa in uu leeyahay furaha maqan: Mullvad mullvad lan set allow waxa uu soo celiyaa gaaritaanka maxalliga ah isaga oo aan taaban libvirt. Marka kontaynara ay tahay in lagu gaadho tunnel-ka oo keliya, ku xidh portka la soo saaray ciwaanka tunnel-ka, -p 10.8.0.5:8080:8080, halkii laga soo saari lahaa ciwaan kasta.