Dhisidda server OpenVPN labaad waxay ku siinaysaa meel labaad oo macaamiishu ku xirmaan, oo aan waxba ka badanayn. Ma gelinayso macaamiishaas shabakadda serverka koowaad, iyo ikhtiyaarka la yiraahdo client-to-client wuxuu beddelaa kaliya gudbinta gudaha hal habraac server. Labada kooxood waxay noqdaan hal shabakad markaad si ula kac ah u dhex mariso iyaga, iyadoo leh milkiile jiho kasta. Wax kasta oo hoos ku qoran waxay u malaynayaan habka TUN ee meesha isticmaalaha iyadoo gudbintaas gudaha ah ay damin tahay, sidaas darteed kernel ayaa go'aanka qaata.

Khubarta: hal liis akoonto, hal shabakad

Xaqiijinta iyo gaaritaanku waa la isku qalaa maxaa yeelay labaduba waxay ku nool yihiin qaabeynta serverka. Isticmaale geli kara mid ka mid ah labada gateway wuxuu dibadda ka muuqdaa sida isticmaale hal nidaam leh laba albaab. Gudaha, server kastaa wuxuu cinwaanno ka bixiyaa kooxdiisa oo wuxuu dhigaa waddooyin kaliya macaamiisha uu dhammeeyo. Sidaas darteed macmiil ku sugan gateway A oo u diraya baakad macmiil ku sugan gateway B wuxuu weydiisanayaa meel uusan serverkiisu waligiis maqal. Baakaddu waxay tagtaa waddada caadiga ah ee A, way ka baxdaa tunnelka, oo waxay gaartaa firewall aan waligiis la weydiisan inuu oggolaado.

Sidaas darteed ku darista server labaad ma ku darayso redundant, ogaansho ama domain broadcast la wadaago. Waxay ku daraysaa shabakad la maro oo u baahan qorshe, qorshahuna wuxuu ka bilaabmaa cinwaanaynta.

Si gateway kasta u yeelo kooxdiisa iyo cinwaanka transit

Laba xaddi oo aan wax kale la isku dhejin karin, iyo xiriir transit yar oo u dhexeeya hostyada, waa qorshaha cinwaanka oo dhan. Transit ku hay qayb gaar ah oo aad maamusho, oo qor tirooyinka ka hor inta aan server kasta kirayn.

GatewayClient poolTransit address
gateway-a10.64.10.0/24172.28.44.1/30
gateway-b10.64.20.0/24172.28.44.2/30

Ka hortag damaca ah in labada server la siiyo isla koox si profile-yadu isku mid u ahaadaan. Waddada kernel ma sheegi karto hostka labaad kee ayaa hadda leh cinwaan aan loo cayimin gudaha xad la wadaago, sidaas darteed shaxda waddooyinku waxay tilmaami lahayd hal gateway macmiilka waxaa laga yaabaa inuu ku xiran yahay kan kale. Magacyada interface-ka waa caadooyin maxalli ah, ma aha xaalad la wadaago. Labada host halkan waxay qalabka tunnel u yaqaaniin tun0 iyo xiriirka transit transit0, taas oo caadi ah maxaa yeelay baakadna ma qaado magacyadaas.

Ku rakib waddada labada dhinac

Gateway kastaa wuxuu u baahan yahay waddo kooxda kale iyada oo loo marayo cinwaanka transit, gudbintuna waa inay furan tahay si midkood uu u noqdo hop. Marka hore xaqiiji shaxda hadda, ka dib ku dar gelinta oo ka dhig mid joogto ah iyada oo loo marayo maamulaha shabakadda hostka halkii laga isticmaali lahaa hook dib-u-xidhka.

sysctl net.ipv4.ip_forward
ip route add 10.64.20.0/24 via 172.28.44.2 dev transit0
ip route get 10.64.20.37

Tan ku muraayad hostka kale iyadoo kooxaha la beddelay. In si isdaba joog ah loogu daro isla waddada script aan xiriir la lahayn waa sida host ku ugu dhammaado nuqullo badan iyo isbeddel qarsoodi ah marka xigta qof shaxda akhriyo. Haddii xiriirka transit laftiisu tunnel yahay, waddadu waxay tilmaamaysaa topology-ga tunnelkaas hopkuna waa inuu ka badbaado dib-u-xidhkiisa. Cinwaan transit ah oo ku luma soddon ilbiriqsi wuxuu qaataa waddada u dhexaysa kooxaha, taas oo ah sifo naqshadeed mudan in la sheegto halkii la ogaan lahaa.

Riix waddada macmiilka adigoon iska dhigin milkiile

Macaamiishu waxay u baahan yihiin waddo kooxda fog, haddii kale nidaamkooda hawlgalka ayaa baakadda u dira gateway caadiga ah tunnelkuna waligiis ma arko. Qaabeynta serverka waa meesha dabiiciga ah ee loo geeyo.

push "route 10.64.20.0 255.255.255.0"

Ku dheji sadarka muraayadda qaabeynta serverka kale, ka dib dib u xidh macmiil tijaabo oo akhri shaxdiisa. Macmiil iska indhatiraya waddooyinka la riixay wuxuu u baahan yahay qaabeynkiisa la ansixiyay, waddo aan waligeed imanin ma aha xakamaynta gelitaanka. Ha siin macmiil iroute oo loogu talagalay kooxda oo dhan ee gateway kale. Dardaarankaas wuxuu u jiraa subnet ka dambeeya hal macmiil oo xiran, isticmaalkiisuna si loo qariyo waddo maqan oo u dhexeeya gateway-yada wuxuu abuuraa server u malaynaya inuu leeyahay cinwaanno uusan gaari karin.

Caddee hal codsi oo diid mid kale

Dooro hawl dhab ah, tusaale ahaan HTTPS oo ka socda macmiil ku sugan 10.64.10.21 una socda adeeg ku yaal 10.64.20.37, oo labada host si sax ah u oggolow taas. Firewall kastaa wuxuu aqbalaa codsiga dhinaca soo-gelidda iyo jawaabta la dabagalay dhinaca soo-noqoshada; siyaasadda adeega laftiisa ee meesha loo socdo wali waa inay aqbasho.

iptables -A FORWARD -i tun0 -o transit0 -s 10.64.10.21 -d 10.64.20.37 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i transit0 -o tun0 -d 10.64.10.21 -s 10.64.20.37 -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Marka waddooyin laba-geesood ah jiraan, NAT-ka isha waa mid aan loo baahnayn oo halkan si firfircoon wax u dhimaya: tarjumaadda isha waxay qarinaysaa macmiilka codsiga sameeyay waxayna jabisaa siyaasadda ku salaysan isha dhinaca meesha loo socdo. Hubi in qaanuunka masquerade ee jirada internet-ka uusan waliba qaban waddadan. Ka dib tijaabi diidmada. Adeeg ku hadha gudaha kooxda B waa inuu ahaadaa mid aan laga gaari karin kooxda A, lammaanaha macaamiisha isla gateway-na waa in la tijaabiyaa, maxaa yeelay siyaasadda gudbinta ee aad hadda beddeshay iyagana way khusaysaa.

Hal sixitaan oo kale oo moodelka maskaxda: xiriirka transit wuxuu qaadaa baakado gudaha ah oo la furey, sidaas darteed waa xad kalsooni ma aha dammaanad gaar ah. Haddii uu gudbo shabakad aadan maamulin, ku ilaali hopkaas tunnel sir ah oo la ansixiyay oo u mar topology-ga dhabta ah. TLS dhamaadka-ilaa-dhamaadka wali isagu wuxuu xaqiijiyaa barnaamijka, taas oo sababta adeega gudaha uu tahay inuu sii isticmaalo.

Maqaallo la xiriira