Kontaynerkaagu wali wuxuu ka jawaabayaa buundada kontoroolka, laakiin kasta oo baakad baxa ah waxay ku baxdaa macvlan-ka xafiiska. Waxba ma dhicin. Laba isku-xir mid kastaa wuxuu bixiyaa gateway, dariiqa caadiga ah ee kaliya wuxuu u tagay shabakadda aadan ula jeedin, marka adeeggu wuu shaqeeyaa iyadoo taraafikadu qaadanayso waddo dheer. Marka qof u fiirsado, caddayntu waa shaxda dariiqa ee ma aha fariin khalad.

Sharaxaadda caadiga ah waa in Docker si shil ah u doortay shabakadda. Ficillan go'aankii hore wuxuu raacayay nidaamka alfaabeed ee magacyada shabakadaha isku-xiran, taasoo ka dhigtay dariiqa natiijo dhinac ah oo sumad leh. gw_priority waxay ku beddeshaa lambar aad si ula kac ah u dooratay, qaadashadeeduna waxay qaadanaysaa qiyaastii hal daqiiqo marka qaabka la qoro.

Sababta dariiqa caadiga ah ugu dhaco shabakadda khaldan

Shabakad kasta oo adeeg ku biiro waxay soo bandhigi kartaa gateway u gaar ah, kontaynerkuna wali wuxuu ku dhammaadaa hal dariiqo caadi ah. Ka hor Compose 2.33.1 barbar dhaca waxaa lagu go'aamin jiray isku-dubaridka magacyada shabakadaha, sidaas darteed sumad sida control oo ka hor office timaadda ayaa go'aamin jirtay halka taraafikadu tagto. Waxba gudaha kontaynerka kama diiwaangeliyaan in go'aanku ahaa mid aan loo baahnayn, taasina waa sababta uu uga gudbo dib-u-eegista koodka oo uu mar dambe u soo baxo waddo qariib ah. In siyaasad lagu dhex geliyo faylka compose waa dariiqa kaliya ee doorashada looga dhigi karo mid la baari karo.

Laba shay ayaa runtii beddela shabakadda guuleysata: qiyamka gw_priority ee aad u qoondeyso, iyo shabakadaha isku-xiran. Ku dar shabakad saddexaad oo kooxda musharraxiinta way kordhaa; ka saar macvlan oo waxba kama hadho in lala tartamo buundada. Labada tallaabo midkoodna kama muuqdaa diiwaannada barnaamijka, sababtoo ah dariiqa caadiga ah ee khaldan marar dhif ah ayuu si buuxda u jebiyaa xiriirka. Wuxuu kaliya sameeyaa in jawaabuhu ka yimaadaan cinwaan aan dhinaca kale filayn.

Ku dheji gateway gw_priority

Compose wuxuu soo bandhigaa gw_priority isku-xir kasta oo adeeg-ilaa-shabakad laga bilaabo nooca 2.33.1, lambarka ugu weynaana wuu guuleystaa. Ma jiro fure gateway oo adeeg kasta leh, sidaas darteed qiimuhu wuxuu ku jiraa block-ka networks ee adeegga. Tusaalaha hoose wuxuu dariiqa caadiga ah siinayaa control halka office uu u furan yahay LAN-kiisa si toos ah ku xiran.

services:
  vpn:
    networks:
      control:
        gw_priority: 1
      office:
        gw_priority: 0

networks:
  control:
    driver: bridge
    ipam:
      config:
        - subnet: 172.30.50.0/24
  office:
    driver: macvlan
    driver_opts:
      parent: eno1.120
      macvlan_mode: bridge
    ipam:
      config:
        - subnet: 192.168.120.0/24
          ip_range: 192.168.120.192/27
          gateway: 192.168.120.1

U akhri block-ka laba kontorool oo gooni ah: gw_priority wuxuu go'aamiyaa dariiqa caadiga ah, qaybta ipam-na waxay go'aamisaa cinwaanka. Beddelka kaliya subnet wuxuu ka tagaa doorashada bixitaanka iyada oo aan la taaban, taasina waa habka ugu caansan ee sixidan nus loo dabaqo. Hayso mudnaanta shabakadda ay xukunto agteeda, si akhristaha xiga uusan u baahnayn inuu raadiyo go'aanka.

Ha ku khaldin gw_priority sifooyinka priority caadiga ah ee agteeda. Taasi waxay habeysaa abuurista xiriirada waxna kama sheegto dariiqa, sidaas darteed ma dooran karto gateway caadi ah mana hagaajiso magacyada interface-ka. Haddii qof ku taliyo in priority la kordhiyo si taraafikada loo haggo, taladu waa khalad xitaa marka nidaamka natiijada uu si shil ah u muuqdo mid sax ah.

Xaqiiji shabakadda runtii qaadda dariiqa caadiga ah

Ku hubi gudaha kontaynerka shaqeynaya, sababtoo ah shaxda dariiqa ee martigeliyaha waxay sharraxaysaa martigeliyaha ee ma aha booska magacyada ee adeeggu isticmaalo. Marka hore socodsii hubinta qaabeynta si khalad teeb ah ugu guuldareysto ka hor dib-u-bilow, ka dibna akhri dariiqa kontaynerku runtii rakibay.

docker compose config --quiet
docker exec vpn ip -4 route show default
docker exec vpn cat /proc/net/route

Natiijada saxda ah waxay sheegtaa qalabka buundada iyo 172.30.50.1; tan khaldan waxay sheegtaa 192.168.120.1 iyo qalabka macvlan. Haddii sawirku uusan lahayn baakadda iproute2, faylka /proc wali wuxuu soo sheegaa dariiqa caadiga ah, oo ujeeddadiisu tahay 00000000 iyo baytka gateway oo rogan. Isbarbardhig tiirka interface-ka docker inspect marka magacyada qalabku aanay caddayn.

Macvlan waa deked jireed, ma aha nuqul buundada

Macvlan wuxuu kontaynerka siinayaa aqoonsi labaad xagga fiilada, taasina waa waxa ka dhigaya gelitaanka qalabka maxalliga ah mid shaqeeya. Waxay kaloo macnaheedu tahay in dekedda switch-ka iyo hypervisor-ku ay tahay inay aqbalaan cinwaan MAC dheeraad ah, shabakado badan oo daruuro ahna si aamusan way diidaan. Tijaabi hal kontayner ka hor intaadan qorsheyn flot, sababtoo ah MAC la diiday wuxuu inta badan u muuqdaa sida xiriir sare yaalla oo aan waxba gudbin.

Dejinta macvlan_mode: bridge waa hab ka mid ah darawalka macvlan, ma aha buundada software-ka Docker, passthru-na waa hab gaar ah oo gaar ah oo aan ahayn caadi.Linux sidoo kale waxay ka hortagtaa kontayner macvlan inuu gaaro martigeliihiisa iyada oo loo marayo isla waalidkaas, taasina waa sababta buundada kontoroolka loo hayo halkii laga filayay in hal isku-xir labada shaqo qabto.

U magacow waalidka VLAN ka hor inta Compose uusan arkin

Docker wuxuu ula dhaqmaa waalid dhibic leh sida eno1.120 sida sub-interface 802.1Q wuxuuna iska abuuraa qalabka VLAN. Fududaanntaas waxay leedahay xad: magaca la soo saaray wuxuu ku xiran yahay magaca interface-ka jireed, magacyo dhaadheerna waxay natiijada ka riixi karaan wax ka baxsan waxa qalabka ku xeeran filayaan. In interface VLAN magac leh lagu abuuro qaabeynta shabakadda martigeliyaha oo parent loo tilmaamo waxay labada daraf ka dhigtaa kuwo la saadaalin karo.

Xusuuso in furaha networks hoostiisa uu yahay magac Compose, ma aha qalab Linux. Raadinta martigeliyaha interface la yiraahdo office way guuldareysanaysaa, sababtoo ah kernel-ku wuxuu kaliya arkaa interface-ka waalidka iyo lammaanaha veth ee kontaynerka gadaashiisa.

U samee meel VPN-ka oo ku yaal korka

Macaamiil VPN ah wuxuu isku xiraa ka dib marka shabakadahani jiraan, sidaas darteed wuxuu ku dari karaa dariiqooyin gaar ah, xeerar siyaasadeed iyo shaandhayn iyada oo aan loo eegin gw_priority. Qorshee horudhacyada fog ee ka soo horjeeda labada subnet maxalli ah, oo ay ku jiraan jawaabaha dariiqa kontoroolku u baahan yahay. Marka horudhac fog uu la yimaado LAN-ka xafiiska, hagaaji qorshaha cinwaanka halkii aad ka soo jeexi lahayd kala duwanaansho gaar ah oo dhan tunnel-ka.

Dib u hubi cinwaannada, dariiqooyinka iyo waddada adeegga ka dib marka VPN uu bilaabo iyo mar kale ka dib marka uu dib isku xiro, sababtoo ah dib isku-xirka ayaa ah halka dariiqa gacanta lagu daray uu lumo. Qor shaxda la filayo ka hor tijaabada ugu horreysa si isbarbardhigga dambe uu noqdo diff ee aan noqon layli xusuus. Ku hay milkiyadda joogtada ah ee shabakadda Compose oo u ogolow qaabeynta VPN inay haysato oo kaliya siyaasadeeda.

Maqaallo la xiriira