Sadarka waddadaada wuxuu ku soo noqdaa isagoo la diiday, taladana aad hesho waxay leedahay daaran gudbinta IP. Labadan arrimood waxay ku kala jiraan marxalado kala duwan oo mushkiladda ah. Gudbintu waxay go'aamisaa haddii martigeliyuhu karti u leeyahay inuu baakadaha u dhaqaajiyo inta u dhaxaysa interface-yada; wax fikrad ah kama qabto haddii meesha aad qortay ay tahay shabakad ansax ah. Marka hore hagaaji prefix-ka, sababtoo ah gudbintu ma badbaadinayso cinwaan iyo mask isku diidan.

Waxa uu parser-ku dhab ahaan ka cabanayo

Meesha loo qoray cinwaan iyo mask waa inay sharraxdo shabakad, shabakadduna waxay ku bilaabataa bits-ka martigeliyaha oo eber laga dhigay. Marka cinwaanka aad bixiso uu weli qiimo ku qaado qaybta martigeliyaha, labada waxay gudaha isku khilaafsan yihiin: 172.20.130.0 waxay u ekaanaysaa nadiif sababtoo ah waxay ku dhammaataa eber, laakiin eber-ka octet-ka afaraad maaha waxa kaliya ee muhiim ah. Halkan bits-ka wareegsan waxaa haysta octet-ka saddexaad.

Qalabku siyaabo kala duwan ayay u maareeyaan khilaafkaas. Parser-yada adag waxay diidaan sadarka oo magacaabaan bits-ka martigeliyaha. Parser-yada jilicsan waxay maskaan cinwaanka oo rakibaan wax aadan codsan, taas oo ka sii xun, sababtoo ah habaynta hadda waxay marinaysaa xad aadan waligaa u jeedin. Qaybta ipaddress ee Python waxay si toos ah u bandhigtaa doorashada: falanqaynta shabakadda ee adag waxay kicisaa khalad, strict=False-na waxay maskaanaysaa bits-ka martigeliyaha. Macmiilkaagu wuxuu noqon karaa mid adag, jilicsan ama isku khilaafsan noocyada dhexdooda, markaa akhri fariinta halkii aad ku kalsoonaan lahayd caado.

Tusaalaha gacanta ku samee

Qaado tunnel u baahan inuu gaaro 172.20.130.0 oo leh mask /20. /20 wuxuu octet-ka saddexaad ka amaahdaa afar bits, sidaas darteed octet-kaas waxaa lagu tiriyaa oo kaliya tallaabooyin 16 ah: 0, 16, 32 iyo sii socoshada ilaa 240. Qiimaha 130 wuxuu ku dhex dhacaa 128 iyo 143, taas oo macnaheedu yahay shabakadda ku wareegsan waxay ka bilaabataa 172.20.128.0, ma aha 172.20.130.0 oo octet-ka ugu dambeeya eber laga dhigay.

Marka la qoro, block-ku wuxuu ka socdaa 172.20.128.0 ilaa 172.20.143.255 wuxuuna hayaa 4,096 cinwaan. In qiimayaashaas la siiyo parser aan adagayn waxay tusaysaa beddelka uu adiga kaa yeeli lahaa:

$ python3 -c "import ipaddress; n=ipaddress.ip_network('172.20.130.0/20', strict=False); print(n, n.num_addresses)"
172.20.128.0/20 4096

Go'aanso meesha aad dhab ahaan u jeeday

Sadarka la diiday badanaa wuxuu qariyaa mid ka mid ah saddex ujeeddo, adiga oo kaliya ayaa dooran kara. Haddii tunnel-ku u baahan yahay block-ka oo dhan, qor 172.20.128.0/20, cinwaanka shabakadda caadiga ah. Haddii tunnel-ku u baahan yahay oo kaliya qaybta 130, mask-ku khalad buu ahaa iyo 172.20.130.0/24 waa qaabka daacad ah. Haddii bartilmaameadku yahay hal mishiin, waddada martigeliyaha IPv4 waa /32 mana jiro xisaab mask ah oo ku lug leh.

Mid kastaa wuxuu oggol yahay qadar gaadiid oo kala duwan, waana sababta dhabta ah ee aan mask-ka loo ballaarin ilaa cabashada joogsato. /16 waxay aqbashaa sadarka casi meel kasta waxayna u dirtaa gaadiidka meelo aadan waligaa u jeedin inaad tunnel-ka ku marinaysid. Qor prefix-ka ugu cidhiidhiga ah ee ujeeddada waafaqsan, ka dibna ku xaqiiji hop-ka xiga ee aad filaysid, ma aha aamusnaanta parser-ka.

Sababta gudbintu waligeed xal u aan ahayn

Waddada la diiday waligeed ma gaarto wadada gudbinta, sidaas darteed beddelka net.ipv4.ip_forward ma beddeli karo natiijada. Dejintaas waxay muhiim tahay mar dambe, marka martigeliyuhu ay tahay inuu baakadaha u gudbiyo inta u dhaxaysa interface-yada, oo daaran ka hor inta shaxda sax noqon waxay beddeshaa oo kaliya marxaladda xigta ee guuldaraysanaysa.

Iskla meel ayaa laba waxyaabood oo kale badanaa lagu eedeeyaa. Waddada waa la aqbali karaa oo weli waxay ka guuldarraysan kartaa waddo gaar ah, oo qaanuunka firewall-ka ayaa laga yaabaa inuu tuuro gaadiidka ka dib raadin sax ah. Marxaladaha kala sooc: naxwe, rakibid, xulasho, shaandhayn. Ka shaqaynta marxaladda khaldan waxay u ekaanaysaa wax soo saar sababtoo ah isbeddel kastaa wax buu dib u bilaabaa.

Hubi waddada la rakibay iyo dariiqa ay guulaysato

Marka macmiilku aqbalo sadarka, eeg waxa uu rakibay iyo waddada kernel-ku u doorto cinwaan matalaad ah oo ku yaal block-ka gudihiisa. Haddii prefix-ka la rakibay ka duwan yahay wixii aad qortay, normalizer ayaa adiga kaa shaqeeyay.

Weydii cinwaan xubin iyo mid block-ka dibaddiisa ah, si isbarbardhiggu u noqdo mid macne leh oo aan ahaan hal sadar oo qalbi-qabatin leh:

ip -4 route show 172.20.128.0/20
ip -4 route get 172.20.140.10
ip -4 route get 172.20.200.10

Weydinta saddexaad waa inay ka baxdo tunnel-ka haddii prefix-kaagu sax yahay, haddii ayna ka bixin, waddada aad dhistay way ka ballaaran tahay inta aad u malaynaysid. Qor waxa prefix-ku qaban lahaa ka hor inta aadan taaban dejinta xigta, sababtoo ah waddada la falanqeeyo iyo dariiqa shaqeeya waxay ahaanayaan indho-indheyn kala duwan.

Maqaallo la xiriira