Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Katika nakala mbili za kwanza, niliibua suala la otomatiki na kuchora mfumo wake, katika pili nilifanya mafungo katika uvumbuzi wa mtandao, kama njia ya kwanza ya kusanidi usanidi wa huduma kiotomatiki.
Sasa ni wakati wa kuteka mchoro wa mtandao wa kimwili.

Ikiwa hujui kuanzisha mitandao ya kituo cha data, basi ninapendekeza sana kuanzia makala kuhusu wao.

Masuala yote:

Mbinu zilizoelezewa katika mfululizo huu zinafaa kutumika kwa aina yoyote ya mtandao, ukubwa wowote, na aina yoyote ya wachuuzi (sio). Walakini, haiwezekani kuelezea mfano wa ulimwengu wote wa matumizi ya njia hizi. Kwa hivyo, nitazingatia usanifu wa kisasa wa mtandao wa DC: Kiwanda cha Kloz.
Tutafanya DCI kwenye MPLS L3VPN.

Mtandao wa Uwekeleaji hufanya kazi juu ya mtandao halisi kutoka kwa seva pangishi (hii inaweza kuwa VXLAN ya OpenStack au Tungsten Fabric au kitu kingine chochote kinachohitaji muunganisho wa kimsingi wa IP kutoka kwa mtandao).

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Katika kesi hii, tunapata hali rahisi kwa otomatiki, kwa sababu tuna vifaa vingi ambavyo vimeundwa kwa njia ile ile.

Tutachagua DC ya spherical katika utupu:

  • Toleo moja la kubuni kila mahali.
  • Wachuuzi wawili wanaounda ndege mbili za mtandao.
  • DC mmoja ni kama mwingine kama mbaazi mbili kwenye ganda.

yaliyomo

  • Topolojia ya kimwili
  • Kuelekeza
  • Mpango wa IP
  • Laba
  • Hitimisho
  • Viungo muhimu

Ruhusu Mtoa Huduma wetu LAN_DC, kwa mfano, aandae video za mafunzo kuhusu kunusurika katika lifti zilizokwama.

Katika megacities hii ni maarufu sana, kwa hivyo unahitaji mashine nyingi za mwili.

Kwanza, nitaelezea mtandao takriban kama ningependa iwe. Na kisha nitarahisisha kwa maabara.

Topolojia ya kimwili

Maeneo

LAN_DC itakuwa na DC 6:

  • Urusi (RU):
    • Moscow (msk)
    • Kazan (kzn)

  • Uhispania (SP):
    • Barcelona (bcn)
    • Malaga (MLG)

  • Uchina (CN):
    • Shanghai (sha)
    • Xi'an (sia)

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Ndani ya DC (Intra-DC)

DC zote zina mitandao ya muunganisho ya ndani inayofanana kulingana na topolojia ya Clos.
Ni aina gani za mitandao ya Clos na kwa nini wako tofauti Ibara ya.

Kila DC ana rafu 10 zenye mashine, zitahesabiwa kama A, B, C Na kadhalika.

Kila rack ina mashine 30. Hawatatuvutia.

Pia katika kila rack kuna kubadili ambayo mashine zote zimeunganishwa - hii ni Juu ya swichi ya Rack - ToR au vinginevyo, kwa upande wa kiwanda cha Clos, tutakiita Jani.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao
Mchoro wa jumla wa kiwanda.

Tutawaita Sehemu za-janiYAmbapo Sehemu za - kifupi cha barua tatu DC, na Y - nambari ya serial. Kwa mfano, kzn-jani11.

Katika nakala zangu nitajiruhusu kutumia maneno Leaf na ToR badala ya ujinga kama visawe. Hata hivyo, lazima tukumbuke kwamba hii sivyo.
ToR ni swichi iliyowekwa kwenye rack ambayo mashine zimeunganishwa.
Leaf ni jukumu la kifaa katika mtandao halisi au swichi ya kiwango cha kwanza kulingana na topolojia ya Cloes.
Yaani, Jani != ToR.
Kwa hivyo Jani linaweza kuwa swichi ya EndofRaw, kwa mfano.
Walakini, ndani ya mfumo wa kifungu hiki bado tutazichukulia kama visawe.

Kila swichi ya ToR kwa upande wake imeunganishwa kwa swichi nne za ujumlishaji wa kiwango cha juu - mgongo. Rack moja katika DC imetengwa kwa Spines. Tutaipa jina vivyo hivyo: Sehemu za-mgongoY.

Rack sawa itakuwa na vifaa vya mtandao kwa kuunganishwa kati ya DC - 2 ruta na MPLS kwenye ubao. Lakini kwa ujumla, hizi ni ToR sawa. Hiyo ni, kutoka kwa mtazamo wa swichi za Spine, ToR ya kawaida na mashine zilizounganishwa au router kwa DCI haijalishi kabisa - tu kusambaza.

ToR maalum kama hizo huitwa Makali-jani. Tutawaita Sehemu za-dariY.

Itaonekana hivi.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Katika mchoro hapo juu, kwa kweli niliweka makali na jani kwenye kiwango sawa. Mitandao ya kawaida ya safu tatu Walitufundisha kuzingatia kuongeza (kwa hivyo neno) kama viunga. Na hapa inageuka kuwa "uplink" ya DCI inarudi chini, ambayo kwa baadhi huvunja kidogo mantiki ya kawaida. Kwa upande wa mitandao mikubwa, wakati vituo vya data vimegawanywa katika vitengo vidogo zaidi - POD's (Point Of Delivery), onyesha tofauti Ukingo-PODkwa DCI na ufikiaji wa mitandao ya nje.

Kwa urahisi wa mtazamo katika siku zijazo, bado nitachora Edge juu ya Spine, wakati tutakumbuka kuwa hakuna akili kwenye Spine na hakuna tofauti wakati wa kufanya kazi na Leaf ya kawaida na Edge-leaf (ingawa kunaweza kuwa na nuances hapa. , lakini kwa ujumla Hii ni kweli).

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao
Mpango wa kiwanda chenye majani makali.

Utatu wa Leaf, Spine na Edge huunda mtandao wa Underlay au kiwanda.

Jukumu la kiwanda cha mtandao (soma Underlay), kama tulivyofafanua tayari toleo la mwisho, sana, rahisi sana - kutoa muunganisho wa IP kati ya mashine zote ndani ya DC sawa na kati yao.
Ndio maana mtandao unaitwa kiwanda, kama vile, kwa mfano, kiwanda cha kubadilisha ndani ya masanduku ya kawaida ya mtandao, ambayo unaweza kusoma zaidi juu yake. SDSM14.

Kwa ujumla, topolojia hiyo inaitwa kiwanda, kwa sababu kitambaa katika tafsiri kinamaanisha kitambaa. Na ni ngumu kutokubaliana:
Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Kiwanda ni L3 kabisa. Hakuna VLAN, hakuna Matangazo - tuna watayarishaji programu wa ajabu sana katika LAN_DC, wanajua jinsi ya kuandika programu ambazo zinaishi katika dhana ya L3, na mashine za mtandaoni hazihitaji Uhamiaji wa Moja kwa Moja na uhifadhi wa anwani ya IP.

Na mara nyingine tena: jibu la swali kwa nini kiwanda na kwa nini L3 iko tofauti Ibara ya.

DCI - Muunganisho wa Kituo cha Data (Inter-DC)

DCI itapangwa kwa kutumia Edge-Leaf, yaani, ndio sehemu yetu ya kutoka kwenye barabara kuu.
Kwa unyenyekevu, tunadhani kwamba DCs zimeunganishwa kwa kila mmoja kwa viungo vya moja kwa moja.
Hebu tuondoe muunganisho wa nje kutoka kwa kuzingatia.

Ninajua kuwa kila wakati ninapoondoa kipengee, ninarahisisha mtandao kwa kiasi kikubwa. Na tunapobadilisha mtandao wetu wa kufikirika, kila kitu kitakuwa sawa, lakini kwa kweli kutakuwa na viboko.
Hii ni kweli. Bado, lengo la mfululizo huu ni kufikiria na kufanyia kazi mbinu, si kutatua matatizo ya kufikirika kishujaa.

Kwenye Edge-Leafs, chini huwekwa kwenye VPN na kusambazwa kupitia uti wa mgongo wa MPLS (kiungo sawa cha moja kwa moja).

Huu ndio mchoro wa kiwango cha juu tunachopata.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Kuelekeza

Kwa routing ndani ya DC tutatumia BGP.
Kwenye shina la MPLS OSPF+LDP.
Kwa DCI, yaani, kupanga muunganisho chini ya ardhi - BGP L3VPN juu ya MPLS.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao
Mpango wa jumla wa uelekezaji

Hakuna OSPF au ISIS (itifaki ya uelekezaji marufuku katika Shirikisho la Urusi) kwenye kiwanda.

Hii inamaanisha kuwa hakutakuwa na Ugunduzi Kiotomatiki au hesabu ya njia fupi zaidi - mwongozo pekee (kiotomatiki - tunazungumza juu ya otomatiki hapa) kusanidi itifaki, ujirani na sera.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao
Mpango wa uelekezaji wa BGP ndani ya DC

Kwa nini BGP?

Juu ya mada hii kuna RFC nzima jina lake baada ya Facebook na Arista, ambayo inaelezea jinsi ya kujenga kubwa sana mitandao ya kituo cha data kwa kutumia BGP. Inasoma kama hadithi za uwongo, ninaipendekeza sana kwa jioni isiyo na uchungu.

Na pia kuna sehemu nzima katika nakala yangu iliyowekwa kwa hili. Nikupeleke wapi na Ninatuma.

Lakini bado, kwa kifupi, hakuna IGP inayofaa kwa mitandao ya vituo vya data kubwa, ambapo idadi ya vifaa vya mtandao huingia kwenye maelfu.

Kwa kuongeza, kutumia BGP kila mahali itakuruhusu usipoteze muda kuunga mkono itifaki kadhaa tofauti na ulandanishi kati yao.

Mkono kwa moyo, katika kiwanda chetu, ambacho kwa kiwango cha juu cha uwezekano hautakua haraka, OSPF itakuwa ya kutosha kwa macho. Hizi ni kweli shida za megascaler na titans za wingu. Lakini wacha tufikirie kwa matoleo machache tu tunayohitaji, na tutatumia BGP, kama Pyotr Lapukhov alivyosia.

Sera za Uelekezaji

Kwenye swichi za Leaf, tunaleta viambishi awali kutoka kwa violesura vya mtandao vya Underlay hadi BGP.
Tutakuwa na kikao cha BGP kati ya kila mmoja jozi ya Leaf-Spine, ambapo viambishi hivi vya Underlay vitatangazwa kwenye mtandao huku na huko.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Ndani ya kituo kimoja cha data tutasambaza vipimo ambavyo tuliagiza kwa ToRe. Kwenye Edge-Leafs tutazijumlisha na kuzitangaza kwa DC za mbali na kuzituma kwa TORs. Hiyo ni, kila ToR itajua jinsi ya kupata ToR nyingine katika DC ile ile na mahali pa kuingilia ni kufika kwenye ToR katika DC nyingine.

Katika DCI, njia zitatumwa kama VPNv4. Ili kufanya hivyo, kwenye Edge-Leaf, kiolesura kuelekea kiwanda kitawekwa kwenye VRF, wacha tuiite UNDERLAY, na kitongoji kilicho na Spine kwenye Edge-Leaf kitatokea ndani ya VRF, na kati ya Edge-Leafs kwenye VPNv4- familia.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Pia tutapiga marufuku kutangazwa tena kwa njia zilizopokelewa kutoka kwa miiba kurudi kwao.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Kwenye Leaf na Spine hatutaagiza Loopbacks. Tunazihitaji tu ili kubainisha Kitambulisho cha Kidhibiti.

Lakini kwenye Edge-Leafs tunaiingiza kwenye Global BGP. Kati ya anwani za Loopback, Edge-Leafs itaanzisha kipindi cha BGP katika IPv4 VPN-familia na kila mmoja.

Tutakuwa na uti wa mgongo wa OSPF+LDP kati ya vifaa vya EDGE. Kila kitu kiko katika eneo moja. Usanidi rahisi sana.

Hii ndio picha iliyo na uelekezaji.

BGP ASN

Edge-Leaf ASN

Edge-Leafs itakuwa na ASN moja katika DC zote. Ni muhimu kwamba kuna iBGP kati ya Edge-Leafs, na tusishikwe na nuances ya eBGP. Hebu iwe 65535. Kwa kweli, hii inaweza kuwa nambari ya AS ya umma.

Mgongo ASN

Kwenye Mgongo tutakuwa na ASN moja kwa DC. Wacha tuanze hapa na nambari ya kwanza kabisa kutoka anuwai ya AS ya kibinafsi - 64512, 64513 Na kadhalika.

Kwa nini ASN kwenye DC?

Hebu tugawanye swali hili katika sehemu mbili:

  • Kwa nini ASNs ni sawa kwenye miiba yote ya DC moja?
  • Kwa nini wanatofautiana katika DC tofauti?

Kwa nini ASNs sawa kwenye miiba yote ya DC moja?

Hivi ndivyo AS-Njia ya njia ya Underlay kwenye Edge-Leaf itaonekana kama:
[leafX_ASN, spine_ASN, edge_ASN]
Unapojaribu kuitangaza tena kwa Spine, itaitupa kwa sababu AS yake (Spine_AS) tayari iko kwenye orodha.

Hata hivyo, ndani ya DC tumeridhika kabisa kwamba njia za Underlay zinazopanda kwenye Edge hazitaweza kwenda chini. Mawasiliano yote kati ya majeshi ndani ya DC lazima kutokea ndani ya ngazi ya mgongo.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Wakati huo huo, njia zilizojumlishwa za DCs zingine kwa hali yoyote zitawafikia ToRs kwa urahisi - AS-Path yao itakuwa na ASN 65535 pekee - idadi ya AS Edge-Leafs, kwa sababu hapo ndipo zilipoundwa.

Kwa nini wanatofautiana katika DC tofauti?

Kinadharia, huenda tukahitaji kuburuta Loopback na baadhi ya mashine pepe za huduma kati ya DCs.

Kwa mfano, kwenye mwenyeji tutaendesha Reflector ya Njia au VNGW sawa (Virtual Network Gateway), ambayo itafungwa na TopR kupitia BGP na kutangaza kitanzi chake, ambacho kinapaswa kupatikana kutoka kwa DC zote.

Kwa hivyo hii ndivyo AS-Path yake itaonekana kama:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

Na kusiwe na nakala za ASN popote pale.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Hiyo ni, Spine_DC1 na Spine_DC2 lazima ziwe tofauti, kama vile leafX_DC1 na leafY_DC2, ambayo ndiyo hasa tunayokaribia.

Kama unavyojua, kuna udukuzi unaokuruhusu kukubali njia zilizo na ASNs rudufu licha ya utaratibu wa kuzuia kitanzi (allowas-in kwenye Cisco). Na hata ina matumizi halali. Lakini hili ni pengo linalowezekana katika uthabiti wa mtandao. Na mimi binafsi nilianguka ndani yake mara kadhaa.

Na ikiwa tutapata fursa ya kutotumia vitu vya hatari, tutatumia fursa hiyo.

Jani ASN

Tutakuwa na ASN ya kibinafsi kwenye kila swichi ya Leaf kwenye mtandao.
Tunafanya hivyo kwa sababu zilizotolewa hapo juu: AS-Njia bila vitanzi, usanidi wa BGP bila alamisho.

Ili njia kati ya Majani kupita vizuri, Njia ya AS inapaswa kuonekana kama hii:
[leafX_ASN, spine_ASN, leafY_ASN]
ambapo leafX_ASN na leafY_ASN itakuwa nzuri kuwa tofauti.

Hii pia inahitajika kwa hali hiyo na tangazo la kitanzi cha VNF kati ya DCs:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

Tutatumia ASN ya 4-byte na kuizalisha kulingana na ASN ya Spine na nambari ya kubadili ya Leaf, yaani, kama hii: Mgongo_ASN.0000X.

Hii ndio picha na ASN.
Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Mpango wa IP

Kimsingi, tunahitaji kutenga anwani kwa viunganisho vifuatavyo:

  1. Chini ya anwani za mtandao kati ya ToR na mashine. Lazima ziwe za kipekee ndani ya mtandao mzima ili mashine yoyote iweze kuwasiliana na nyingine yoyote. Kubwa inafaa 10/8. Kwa kila rack kuna /26 na hifadhi. Tutatenga /19 kwa DC na /17 kwa kila mkoa.
  2. Unganisha anwani kati ya Leaf/Tor na Spine.

    Ningependa kuwapa algorithmically, yaani, kuhesabu kutoka kwa majina ya vifaa vinavyohitaji kuunganishwa.

    Hebu iwe ... 169.254.0.0/16.
    Yaani 169.254.00X.Y/31Ambapo X - Nambari ya mgongo, Y - Mtandao wa P2P /31.
    Hii itakuruhusu kuzindua hadi racks 128, na hadi Miiba 10 kwenye DC. Anwani za kuunganisha zinaweza (na zitarudiwa) kutoka DC hadi DC.

  3. Tunapanga makutano ya Spine-Edge-Leaf kwenye nyati ndogo 169.254.10X.Y/31, wapi sawa X - Nambari ya mgongo, Y - Mtandao wa P2P /31.
  4. Unganisha anwani kutoka Edge-Leaf hadi uti wa mgongo wa MPLS. Hapa hali ni tofauti - mahali ambapo vipande vyote vimeunganishwa kwenye pai moja, kwa hivyo kutumia tena anwani sawa haitafanya kazi - unahitaji kuchagua subnet inayofuata ya bure. Kwa hivyo, wacha tuchukue kama msingi 192.168.0.0/16 na tutawatoa walio huru kutoka humo.
  5. Anwani za Rudi nyuma. Tutatoa safu nzima kwa ajili yao 172.16.0.0/12.
    • Jani - / 25 kwa DC - racks 128 sawa. Tutatenga /23 kwa kila mkoa.
    • Mgongo - / 28 kwa DC - hadi 16 Mgongo. Wacha tutenge /26 kwa kila mkoa.
    • Edge-Leaf - /29 kwa DC - hadi masanduku 8. Wacha tutenge /27 kwa kila mkoa.

Iwapo hatuna masafa ya kutosha yaliyotengwa katika DC (na hakutakuwa na yoyote - tunadai kuwa viboreshaji zaidi), tunachagua tu safu inayofuata.

Hii ndio picha iliyo na anwani ya IP.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Loopbacks:

Kiambishi awali
Jukumu la kifaa
Mkoa
Π”Π¦

172.16.0.0/23
makali
 
 

172.16.0.0/27
ru
 

172.16.0.0/29
msk

172.16.0.8/29
kzn

172.16.0.32/27
sp
 

172.16.0.32/29
bcn

172.16.0.40/29
MLG

172.16.0.64/27
cn
 

172.16.0.64/29
sha

172.16.0.72/29
sia

172.16.2.0/23
mgongo
 
 

172.16.2.0/26
ru
 

172.16.2.0/28
msk

172.16.2.16/28
kzn

172.16.2.64/26
sp
 

172.16.2.64/28
bcn

172.16.2.80/28
MLG

172.16.2.128/26
cn
 

172.16.2.128/28
sha

172.16.2.144/28
sia

172.16.8.0/21
jani
 
 

172.16.8.0/23
ru
 

172.16.8.0/25
msk

172.16.8.128/25
kzn

172.16.10.0/23
sp
 

172.16.10.0/25
bcn

172.16.10.128/25
MLG

172.16.12.0/23
cn
 

172.16.12.0/25
sha

172.16.12.128/25
sia

Chini:

Kiambishi awali
Mkoa
Π”Π¦

10.0.0.0/17
ru
 

10.0.0.0/19
msk

10.0.32.0/19
kzn

10.0.128.0/17
sp
 

10.0.128.0/19
bcn

10.0.160.0/19
MLG

10.1.0.0/17
cn
 

10.1.0.0/19
sha

10.1.32.0/19
sia

Laba

Wachuuzi wawili. Mtandao mmoja. ADSM.

Mreteni + Arista. Ubuntu. Mzee mzuri Eve.

Kiasi cha rasilimali kwenye seva yetu pepe huko Mirana bado ni chache, kwa hivyo kwa mazoezi tutatumia mtandao ambao umerahisishwa hadi kikomo.

Automation kwa wadogo. Sehemu ya pili. Muundo wa mtandao

Vituo viwili vya data: Kazan na Barcelona.

  • Miiba miwili kila mmoja: Mreteni na Arista.
  • Torasi moja (Leaf) katika kila - Juniper na Arista, na mwenyeji mmoja aliyeunganishwa (hebu tuchukue Cisco IOL nyepesi kwa hili).
  • Nodi moja ya Edge-Leaf kila moja (kwa sasa tu Mreteni).
  • Swichi moja ya Cisco ili kuwatawala wote.
  • Mbali na masanduku ya mtandao, mashine ya kudhibiti mtandao inafanya kazi. Kuendesha Ubuntu.
    Inaweza kufikia vifaa vyote, itaendesha mifumo ya IPAM/DCIM, rundo la hati za Python, Ansible na kitu kingine chochote tunachoweza kuhitaji.

Usanidi kamili ya vifaa vyote vya mtandao, ambavyo tutajaribu kuzaliana kwa kutumia automatisering.

Hitimisho

Je, hilo pia linakubaliwa? Je, niandike hitimisho fupi chini ya kila makala?

Kwa hivyo tulichagua ngazi tatu Mtandao wa Kloz ndani ya DC, kwa kuwa tunatarajia trafiki nyingi za Mashariki-Magharibi na tunataka ECMP.

Mtandao uligawanywa katika kimwili (chini) na virtual (overlay). Wakati huo huo, nyongeza huanza kutoka kwa mwenyeji - na hivyo kurahisisha mahitaji ya safu ya chini.

Tulichagua BGP kama itifaki ya uelekezaji wa mitandao ya mtandao kwa uimara wake na unyumbulifu wa sera.

Tutakuwa na nodi tofauti za kuandaa DCI - Edge-leaf.
Uti wa mgongo utakuwa na OSPF+LDP.
DCI itatekelezwa kulingana na MPLS L3VPN.
Kwa viungo vya P2P, tutakokotoa anwani za IP kulingana na majina ya kifaa.
Tutaweka mipangilio ya nyuma kulingana na jukumu la vifaa na eneo lao kwa kufuatana.
Viambishi awali vya chini - kwenye swichi za Leaf pekee kwa kufuatana kulingana na eneo lao.

Wacha tuchukue kuwa sasa hivi hatuna vifaa vilivyosakinishwa.
Kwa hivyo, hatua zetu zinazofuata zitakuwa kuziongeza kwenye mifumo (IPAM, hesabu), kupanga ufikiaji, kuunda usanidi na kuutumia.

Katika makala inayofuata tutashughulika na Netbox - mfumo wa hesabu na usimamizi wa nafasi ya IP katika DC.

Asante

  • Andrey Glazkov aka @glazgoo kwa kusahihisha na kusahihisha
  • Alexander Klimenko aka @v00lk kwa kusahihishwa na kuhaririwa
  • Artyom Chernobay kwa KDPV

Chanzo: mapenzi.com

Kuongeza maoni