Mənim həyata keçirilməmiş layihəm. 200 MikroTik marşrutlaşdırıcısı şəbəkəsi

Mənim həyata keçirilməmiş layihəm. 200 MikroTik marşrutlaşdırıcısı şəbəkəsi

Hamıya salam. Bu məqalə donanmasında çoxlu Mikrotik cihazı olan və hər bir cihaza ayrıca qoşulmamaq üçün maksimum birləşmə etmək istəyənlər üçün nəzərdə tutulub. Bu yazıda insan faktorları səbəbindən təəssüf ki, döyüş şəraitinə çatmayan bir layihəni təsvir edəcəyəm. Qısacası: 200-dən çox marşrutlaşdırıcı, sürətli quraşdırma və kadr hazırlığı, regionlar üzrə unifikasiya, şəbəkələrin və xüsusi hostların süzülməsi, bütün cihazlara asanlıqla qaydalar əlavə etmək imkanı, giriş və girişə nəzarət.

Aşağıda təsvir olunanlar hazır vəziyyət kimi görünmür, amma ümid edirəm ki, şəbəkələrinizi planlaşdırarkən və səhvləri minimuma endirərkən sizin üçün faydalı olacaq. Bəlkə də bəzi məqamlar və həllər sizə tamamilə düzgün görünməyə bilər - əgər belədirsə, şərhlərdə yazın. Bu vəziyyətdə tənqid ümumi xəzinə üçün bir təcrübə olacaq. Odur ki, oxucu, şərhlərə nəzər salın, bəlkə də müəllif ciddi səhvə yol verib - camaat kömək edəcək.

Marşrutlaşdırıcıların sayı 200-300-dür, müxtəlif şəhərlərə səpələnmiş, müxtəlif keyfiyyətli internet bağlantıları ilə. Hər şeyi gözəl etmək və yerli adminlərə hər şeyin necə işləyəcəyini aydın şəkildə izah etmək lazımdır.

Yaxşı, hər hansı bir layihə haradan başlayır? Əlbəttə, ilə ТЗ.

  1. Müştəri tələblərinə uyğun olaraq bütün filiallar üçün şəbəkə planının təşkili, şəbəkənin seqmentləşdirilməsi (qurğuların sayından asılı olaraq filiallarda 3-dən 20-yə qədər şəbəkə).
  2. Hər bir filialda cihazların quraşdırılması. Müxtəlif iş şəraitində provayderin real ötürmə sürətinin yoxlanılması.
  3. Cihazın mühafizəsinin təşkili, ağ siyahının idarə edilməsi, müəyyən müddət ərzində avtomatik qara siyahı ilə hücumların avtomatik aşkarlanması, nəzarətə girişin qarşısını almaq və xidmətdən imtina etmək üçün istifadə olunan müxtəlif texniki vasitələrdən istifadəni minimuma endirmək.
  4. Müştəri tələblərinə uyğun olaraq şəbəkə filtri ilə təhlükəsiz VPN bağlantılarının təşkili. Hər filialdan mərkəzə minimum 3 VPN bağlantısı.
  5. 1, 2-ci bəndlərə əsasən. Qüsurlara dözümlü VPN-lərin qurulmasının optimal yollarını seçin. Düzgün əsaslandırılarsa, dinamik marşrutlaşdırma texnologiyası podratçı tərəfindən seçilə bilər.
  6. Müştərinin istifadə etdiyi protokollar, portlar, hostlar və digər xüsusi xidmətlər üzrə trafikin prioritetləşdirilməsinin təşkili. (VOIP, mühüm xidmətləri olan hostlar)
  7. Texniki dəstək işçilərinin cavabı üçün marşrutlaşdırıcı hadisələrin monitorinqinin və qeydinin təşkili.

Anladığımız kimi, bir sıra hallarda texniki şərtlər tələblər əsasında tərtib edilir. Əsas problemləri dinlədikdən sonra bu tələbləri özüm formalaşdırdım. O, bu məqamlarla başqasının məşğul ola biləcəyi ehtimalını etiraf etdi.

Bu tələbləri yerinə yetirmək üçün hansı vasitələrdən istifadə olunacaq:

  1. ELK yığını (bir müddət sonra aydın oldu ki, logstash əvəzinə fluentd istifadə olunacaq).
  2. Ansible. İdarəetmə və giriş paylaşma asanlığı üçün biz AWX-dən istifadə edəcəyik.
  3. GITLAB. Burada izah etməyə ehtiyac yoxdur. Konfiqurasiyalarımıza versiya nəzarəti olmasaydı, biz harada olardıq?
  4. PowerShell. Konfiqurasiyanın ilkin nəsli üçün sadə bir skript olacaq.
  5. Doku wiki, sənədlərin və bələdçilərin yazılması üçün. Bu halda biz habr.com-dan istifadə edirik.
  6. Monitorinq zabbix vasitəsilə həyata keçiriləcək. Ümumi anlayış üçün orada bir əlaqə diaqramı da çəkiləcək.

EFK quraşdırma nöqtələri

Birinci məqama gəlincə, mən yalnız indekslərin qurulacağı ideologiyanı təsvir edəcəyəm. Çox var
mikrotik ilə işləyən cihazlardan logların qurulması və qəbulu ilə bağlı əla məqalələr.

Bəzi məqamlar üzərində dayanacağam:

1. Diaqrama görə, müxtəlif yerlərdən və müxtəlif limanlardan logların qəbulunu düşünməyə dəyər. Bunun üçün log aqreqatorundan istifadə edəcəyik. Biz həmçinin bütün marşrutlaşdırıcılar üçün paylaşma imkanı olan universal qrafiklər yaratmaq istəyirik. Sonra indeksləri aşağıdakı kimi qururuq:

burada fluentd ilə konfiqurasiyanın bir hissəsidir elasticsearch yazın
logstash_format doğrudur
indeks_adı mikrotiklogs.north
logstash_prefiks mikrotiklogs.north
flush_interval 10s
Host elastik tədqiqat: 9200
port 9200

Beləliklə, plana uyğun olaraq marşrutlaşdırıcıları və seqmentləri birləşdirə bilərik - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Niyə bunu belə mürəkkəbləşdirirsiniz? Biz başa düşürük ki, 200 və ya daha çox cihazımız olacaq. Hər şeyi izləyə bilməzsiniz. Elasticsearch-in 6.8 versiyası ilə təhlükəsizlik parametrləri bizim üçün əlçatandır (lisenziya almadan), bununla da biz texniki dəstək işçiləri və ya yerli sistem administratorları arasında baxış hüquqlarını bölüşdürə bilərik.
Cədvəllər, qrafiklər - burada sadəcə razılaşmaq lazımdır - ya eyni olanlardan istifadə edin, ya da hər kəs onun üçün əlverişli olanı edir.

2. Giriş yolu ilə. Əgər biz firewall qaydalarına daxil olmağı aktiv etsək, o zaman adları boşluqsuz edirik. Görünür ki, fluentd-də sadə konfiqurasiyadan istifadə etməklə biz məlumatları süzgəcdən keçirə və rahat panellər yarada bilərik. Aşağıdakı şəkil mənim ev marşrutlaşdırıcımdır.

Mənim həyata keçirilməmiş layihəm. 200 MikroTik marşrutlaşdırıcısı şəbəkəsi

3. İşğal olunmuş yer və loglara görə. Orta hesabla, saatda 1000 mesajla loglar gündə 2-3 MB yer tutur, görürsən ki, o qədər də çox deyil. Elasticsearch versiyası 7.5.

ANSIBLE.AWX

Xoşbəxtlikdən bizim üçün marşrutlaşdırıcılar üçün hazır modulumuz var
Mən AWX haqqında qeyd etdim, lakin aşağıdakı əmrlər yalnız saf formada ansible haqqındadır - düşünürəm ki, ansible ilə işləyənlər üçün gui vasitəsilə awx istifadə etməkdə heç bir problem olmayacaq.

Düzünü desəm, bundan əvvəl mən ssh-dən istifadə etdikləri digər bələdçilərə baxdım və onların hamısının cavab müddəti və bir sıra digər problemlərlə bağlı müxtəlif problemləri var idi. Yenə deyirəm, döyüşə gəlmədi , bu məlumatı 20 marşrutlaşdırıcının stendindən irəli getməyən bir təcrübə kimi qəbul edin.

Sertifikat və ya hesabdan istifadə etməliyik. Qərar vermək sizin ixtiyarınızdadır, mən sertifikatların tərəfdarıyam. Hüquqlarla bağlı bəzi incə məqamlar. Mən yazma hüququnu verirəm - heç olmasa "konfiqurasiyanı sıfırla" işləməyəcək.

Sertifikatın yaradılması, surətinin çıxarılması və idxalı zamanı heç bir problem olmamalıdır:

Qısa əmr siyahısıKompüterinizdə
ssh-keygen -t RSA, suallara cavab verin, açarı yadda saxlayın.
Mikrotikə kopyalayın:
istifadəçi ssh-düymələri ictimai açar-file=id_mtx.pub istifadəçi=ansible idxal edir
Əvvəlcə bir hesab yaratmalı və ona hüquqlar təyin etməlisiniz.
Sertifikatdan istifadə edərək əlaqənin yoxlanılması
ssh -p 49475 -i /keys/mtx [e-poçt qorunur]

Qeydiyyatdan keçin vi /etc/ansible/hosts
MT01 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT02 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT03 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT04 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible

Yaxşı, nümunə oyun kitabı: - ad: əlavə_iş_saytları
hostlar: testmt
seriya: 1
əlaqə: network_cli
uzaqdan_istifadəçi: mikrotik.west
faktları toplamaq: bəli
tapşırıqlar:
- ad: İş_saytlarını əlavə edin
routeros_command:
əmrləri:
— /ip firewall ünvan siyahısına ünvan əlavə et=gov.ru siyahısı=work_sites comment=Ticket665436_Ochen_nado
— /ip firewall ünvan siyahısı əlavə edin ünvan=habr.com siyahısı=work_sites comment=for_habr

Yuxarıdakı konfiqurasiyadan göründüyü kimi, öz oyun kitablarınızı yaratmaq çətin deyil. Cli mikrotiki yaxşı mənimsəmək kifayətdir. Bütün marşrutlaşdırıcılarda müəyyən məlumatlar olan ünvan siyahısını silməyiniz lazım olan bir vəziyyəti təsəvvür edək, sonra:

Tapın və silin/ip firewal ünvan-siyahısını silin [harada list="gov.ru" tapın]

Mən qəsdən bütün firewall siyahısını buraya daxil etmədim, çünki... hər bir layihə üçün fərdi olacaq. Amma bir şeyi dəqiq deyə bilərəm ki, yalnız ünvan siyahısından istifadə edin.

GITLAB-a görə hər şey aydındır. Mən bu məqamın üzərində dayanmayacağam. Fərdi tapşırıqlar, şablonlar, işləyicilər üçün hər şey gözəldir.

Powershell

Burada 3 fayl olacaq. Niyə powershell? Konfiqurasiya yaratmaq üçün istənilən aləti, sizin üçün daha əlverişli olanı seçə bilərsiniz. Bu halda, hər kəsin kompüterində Windows var, niyə powershell daha rahat olduqda bunu bash-da edin. Hansı daha əlverişlidir?

Skriptin özü (sadə və başa düşülən):[cmdletBinding()] Param(
[Parametr(Məcburi=$true)] [string]$EXTERNALIPADRESS,
[Parametr(Məcburi=$true)] [string]$EXTERNALIPROUTE,
[Parametr(Məcburi=$true)] [string]$Bİş şəbəkələri,
[Parametr(Məcburi=$true)] [string]$CWorknets,
[Parametr(Məcburi=$true)] [string]$BVoipNets,
[Parametr(Məcburi=$true)] [string]$CVoipNets,
[Parametr(Məcburi=$true)] [string]$CClientss,
[Parametr(Məcburi=$true)] [string]$BVPNWORKs,
[Parametr(Məcburi=$true)] [string]$CVPNWORKs,
[Parametr(Məcburi=$true)] [string]$BVPNCLIENTSs,
[Parametr(Məcburi=$true)] [string]$cVPNCLIENTSs,
[Parametr(Məcburi=$true)] [string]$NAMEROUTER,
[Parametr(Məcburi=$true)] [string]$ServerCertificates,
[Parametr(Məcburi=$true)] [string]$infile,
[Parametr(Məcburi=$true)] [string]$outfile
)

Get-Content $infile | Foreach-Object {$_.Replace("EXTERNIP", $EXTERNALIPADRESS)} |
Foreach-Object {$_.Replace("EXTROUTE", $EXTERNALIPROUTE)} |
Foreach-Object {$_.Replace("BWorknet", $BWorknets)} |
Foreach-Object {$_.Replace("CWorknet", $CWorknets)} |
Foreach-Object {$_.Replace("BVoipNet", $BVoipNets)} |
Foreach-Object {$_.Replace("CVoipNet", $CVoipNets)} |
Foreach-Object {$_.Replace("CClients", $CClientss)} |
Foreach-Object {$_.Replace("BVPNWORK", $BVPNWORKs)} |
Foreach-Object {$_.Replace("CVPNWORK", $CVPNWORKs)} |
Foreach-Object {$_.Replace("BVPNCLIENTS", $BVPNCLIENTSs)} |
Foreach-Object {$_.Replace("CVPNCLIENTS", $cVPNCLIENTSs)} |
Foreach-Object {$_.Replace("MYNAMERROUTER", $NAMEROUTER)} |
Foreach-Object {$_.Replace("ServerCertificate", $ServerCertificates)} | Set-Content $outfile

Xahiş edirəm məni bağışlayın, bütün qaydaları dərc edə bilmərəm, çünki... çox gözəl olmayacaq. Ən yaxşı təcrübələri rəhbər tutaraq qaydaları özünüz yarada bilərsiniz.

Məsələn, izlədiyim bağlantıların siyahısı:wiki.mikrotik.com/wiki/Manual:Routerinizin_Təhlükəsizliyi
wiki.mikrotik.com/wiki/Manual:IP/Firewall/Filtr
wiki.mikrotik.com/wiki/Manual:OSPF nümunələri
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/Manual:Winbox
wiki.mikrotik.com/wiki/Manual:Yüksəldirmə_RouterOS
wiki.mikrotik.com/wiki/Manual:IP/Fasttrack - burada bilməlisiniz ki, fasttrack aktiv olduqda, trafikin prioritetləşdirilməsi və formalaşdırma qaydaları işləməyəcək - zəif cihazlar üçün faydalıdır.

Dəyişənlər üçün simvollar:Aşağıdakı şəbəkələr nümunə kimi götürülür:
192.168.0.0/24 işləyən şəbəkə
172.22.4.0/24 VOIP şəbəkəsi
Lokal şəbəkəyə çıxışı olmayan müştərilər üçün 10.0.0.0/24 şəbəkəsi
Böyük filiallar üçün 192.168.255.0/24 VPN şəbəkəsi
Kiçiklər üçün 172.19.255.0/24 VPN şəbəkəsi

Şəbəkə ünvanı müvafiq olaraq A.B.C.D olan 4 onluq rəqəmdən ibarətdir, dəyişdirmə eyni prinsiplə işləyir, əgər işə salındıqda B tələb edirsə, bu o deməkdir ki, şəbəkə üçün 192.168.0.0/24 və C üçün 0 nömrəsini daxil etməlisiniz. = 0.
$EXTERNALIPADDRESS - provayderdən xüsusi ünvan.
$EXTERNALIPROUTE - şəbəkəyə standart marşrut 0.0.0.0/0
$BWorknets - İş şəbəkəsi, bizim nümunəmizdə 168 olacaq
$CWorknets - İşləyən şəbəkə, bizim nümunəmizdə bu 0 olacaq
$BVoipNets - nümunəmizdə VOIP şəbəkəsi 22
$CVoipNets - Buradakı nümunəmizdə VOIP şəbəkəsi 4
$CClientss - Müştərilər üçün şəbəkə - yalnız İnternetə çıxış, bizim vəziyyətimizdə burada 0
$BVPNWORKs - Böyük filiallar üçün VPN şəbəkəsi, nümunəmizdə 20
$CVPNWORKs - Böyük filiallar üçün VPN şəbəkəsi, nümunəmizdə 255
$BVPNCLIENTS - Kiçik filiallar üçün VPN şəbəkəsi, yəni 19
$CVPNCLIENTS - Kiçik filiallar üçün VPN şəbəkəsi, yəni 255
$NAMEROUTER - marşrutlaşdırıcının adı
$ServerCertificate - əvvəllər idxal etdiyiniz sertifikatın adı
$infile — Konfiqurasiyanı oxuyacağımız fayla gedən yolu göstərin, məsələn D:config.txt (tercihen dırnaq və boşluq olmadan ingilis yolu)
$outfile — onu saxlamaq üçün yolu göstərin, məsələn, D:MT-test.txt

Məlum səbəblərdən misallardakı ünvanları qəsdən dəyişmişəm.

Hücumların və anormal davranışların aşkarlanması ilə bağlı məqamı qaçırdım - bu, ayrıca məqaləyə layiqdir. Ancaq qeyd etmək lazımdır ki, bu kateqoriyada Zabbix + elasticsearch-dan işlənmiş qıvrım məlumatlarından monitorinq məlumat dəyərlərindən istifadə edə bilərsiniz.

Hansı məqamlara diqqət yetirməlisiniz:

  1. Şəbəkə planı. Dərhal oxunaqlı formada tərtib etmək daha yaxşıdır. Excel kifayət edəcək. Təəssüf ki, mən çox tez-tez görürəm ki, şəbəkələr “Yeni filial yaranıb, burada /24 sizin üçündür” prinsipi ilə qurulur. Heç kim müəyyən bir yerdə nə qədər cihazın gözlənildiyini və ya daha da böyümənin olub-olmayacağını anlamır. Məsələn, cihazın 10-dan çox olmayacağı əvvəlcə aydın olan kiçik bir mağaza açıldı, niyə /24 ayırmalı? Böyük filiallar üçün, əksinə, /24 ayırırlar və 500 cihaz var - sadəcə bir şəbəkə əlavə edə bilərsiniz, ancaq hər şeyi bir anda düşünmək istəyirsiniz.
  2. Filtrləmə qaydaları. Layihədə şəbəkələrin ayrılması və maksimum seqmentasiya olacağı nəzərdə tutulursa. Ən yaxşı təcrübələr zamanla dəyişir. Əvvəllər PC şəbəkəsi və printer şəbəkəsi bölünürdüsə, indi bu şəbəkələrin bölünməməsi olduqca normaldır. Sağlam düşüncədən istifadə etməyə və lazım olmayan yerlərdə bir çox alt şəbəkə yaratmamağa və bütün cihazları bir şəbəkədə birləşdirməyə dəyər.
  3. Bütün marşrutlaşdırıcılarda "qızıl" parametrlər. Bunlar. bir plana qərar vermisinizsə. Dərhal hər şeyi qabaqcadan görməyə və bütün parametrlərin eyni olduğundan əmin olmağa çalışmaq lazımdır - yalnız ünvan siyahısı və IP ünvanları fərqlidir. Problemlər yaranarsa, ayıklama vaxtı daha az olacaq.
  4. Təşkilati məsələlər texniki məsələlərdən az əhəmiyyət kəsb etmir. Çox vaxt tənbəl işçilər hazır konfiqurasiyalardan və skriptlərdən istifadə etmədən bu tövsiyələri "əl ilə" yerinə yetirirlər ki, bu da nəticədə heç bir yerdən problemlərə səbəb olur.

Dinamik marşrutlaşdırma ilə. Zona bölgüsü ilə OSPF istifadə edilmişdir. Ancaq bu bir sınaq skamyasıdır, döyüş şəraitində belə şeyləri qurmaq daha maraqlıdır.

Ümid edirəm ki, marşrutlaşdırıcının konfiqurasiyalarını yerləşdirmədiyim üçün heç kim üzülmür. Düşünürəm ki, bağlantılar kifayət qədər olacaq və sonra hər şey tələblərdən asılıdır. Və əlbəttə ki, testlər, daha çox test lazımdır.

Arzu edirəm ki, yeni ildə hər kəs öz layihələrini reallaşdırsın. Giriş icazəsi sizinlə olsun!!!

Mənbə: www.habr.com

Добавить комментарий