Bir necha yil oldin, men OpenWRT ni kichik tarmoqlar uchun qulaylik va moslashuvchanlikning eng yuqori cho’qqisi deb hisoblardim. Ushbu dasturiy ta’minotni olish uchun men byudjetga mos bo’lmagan apparat vositalariga anchagina pul sarfladim. Biroq, men xohlagan narsaga erisha olmadim. Ha, men uy tarmog’imga trafik ustuvorligini boshqarish, routerga asoslangan tarmoq xotirasi, mijoz statistikasini kuzatish va hatto xuddi shu apparatda VoIP serverini qo’llab-quvvatlash kabi ba’zi qo’ng’iroq va hushtaklarni qo’llay oldim. Endi hamma narsani boshqarishim mumkindek tuyuldi va bularning barchasi nisbatan oddiy edi. Keyin bir kuni men oddiy foydalanuvchilar orasida unchalik mashhur bo’lmagan qurilma bilan o’ynashga qaror qildim. Men Mikrotik hAP lite ni qo’lga kiritdim.
Qurilmaning o’zi brendning eng arzon mahsulotlaridan biri, ammo shuni ta’kidlash kerakki, deyarli barcha modellar taxminan bir xil funksiyalar to’plamini taklif qiladi. Va bu to’plam uy routerlarida topa olmaydigan funksiyalarni o’z ichiga oladi.

Narx toifasidan qat’i nazar, barcha Mikrotik routerlar RouterOS operatsion tizimida ishlaydi va taxminan bir xil funksiyalar to’plamini taklif qiladi. Har qanday farqlar asosan apparat interfeyslari bilan bog’liq. Istisno — bu protsessor arxitekturasiga bog’liq bo’lgan virtualizatsiya qo’llab-quvvatlashi.
RouterOS bilan birinchi tajribam yoqimli bo’ldi. Menga eng katta taassurot qoldirdi, u juda ko’p sonli professional darajadagi tarmoq texnologiyalarini birlashtirgan. Qurilmaning konfiguratsiya interfeysi routerga sig’dira oladigan deyarli barcha narsalarni o’z ichiga oladi, ammo barchasi juda tushunarli va foydalanuvchilar uchun qulay tarzda tashkil etilgan. Bundan tashqari, standart Linux distributivlarini ishlaydigan routerlarga qaraganda, RouterOS monolit va shuning uchun ancha ishonchli tizim kabi ko’rinadi. Bu, ayniqsa, konfiguratsiya interfeysining turli qismlaridagi sozlamalar qanchalik yaxshi bog’langanligini payqaganingizda sezilarli bo’ladi. Masalan, boshqa obyekt bog’liq bo’lgan obyektni o’chirish kutilmagan xatolarga olib kelmaydi yoki butun xizmatning ishga tushishiga to’sqinlik qilmaydi.
Uy tarmog’im endi hech qachon avvalgidek bo’lmaydi…
Qo’lingizda shunday «aqldan ozgan kombayn»ni ushlab turib, shunchaki uning qo’lidan keladigan hamma narsani sinab ko’rishni xohlaysiz. :) Albatta, bularning aksariyati kichik xususiy tarmoq uchun keraksiz. Shunga qaramay, men tasavvurimni kengaytirdim va uy tarmog’imni bir nechta qiziqarli funksiyalar bilan boyitdim.

Statik xotira bilan bog’liq muammolarga duch kelmoqdamiz, shuning uchun avval DDNS ni yoqib qo’yaylik. Nomi uzun, lekin hech bo’lmaganda bepul. ;) Aytgancha, agar sizda o’z domeningiz bo’lsa, CNAME yozuvini yaratib, uni bepul domenga biriktirish orqali hayotingizni osonlashtirishingiz mumkin. Shunchaki TTL ni iloji boricha qisqa qilishni unutmang.

Mening ishim bir nechta yopiq tarmoqlarni va ular ichidagi barcha narsalarni boshqarishni talab qiladi. Buning uchun men VPN tunnellaridan foydalanaman. Ilgari, men bu tunnellarning har biriga kerak bo’lganda to’g’ridan-to’g’ri ish kompyuterimdan ulanardim. Lekin barcha tarmoqlarga bir vaqtning o’zida doimiy kirish imkoniyatiga ega bo’lish ancha qulayroq. RouterOS litsenziyasining 4-darajasi (uy modellari bilan birga keladi) 200 tagacha VPN ulanishini ta’minlaydi. Bu hatto eng tajribali tizim administratorlari uchun ham yetarli bo’lishi kerak. ;) Manzilni yo’naltirish bilan qo’shimcha marshrutizatsiya jadvallarini yaratmaslik uchun men ushbu ulanishlarning har birining orqasidagi pastki tarmoqlar har xil ekanligiga va bir-birining ustiga chiqmasligiga oldindan ishonch hosil qildim.

VPN ulanishlaridan standart marshrutni olib tashlang va buning o’rniga har bir kichik tarmoqqa statik marshrutlarni qo’shing. Shlyuz sifatida VPN interfeysi nomini ko’rsating.


Endi uy routerim boshqaruv markaziga aylanganligi sababli, uni uydan tashqarida ishlashini ta’minlashim kerak. Buning uchun istalgan joydan ulanishim mumkin bo’lgan VPN serverini sozlashim kerak. Masofaviy ulanish uchun server nomi sifatida ilgari olgan DDNS nomidan foydalanaman.

Bu yerda moslashuvchanlik chegarasi yo’q, shuning uchun siz alohida yashashingiz mumkin chivinli kotletlar Masalan, Wi-Fi tarmog’ingizdagi mijozlar kirishi kerak bo’lmagan joylarga kirishining oldini olish uchun mehmon tarmog’ini asosiy tarmoqdan ajrating. Buning uchun siz bir nechta turli xil IP-manzil pullarini yaratishingiz va xavfsizlik devorida bir kichik tarmoqdan boshqasiga o’tishni cheklashingiz, shu bilan ularni bir-biridan ajratib qo’yishingiz mumkin.
Men OpenVPN va SSTP ni sozlamadim, chunki ushbu protokollar orqali ulanish mijoz tomonidan maxsus konfiguratsiyani talab qiladi, PPTP va L2TP esa meni hali xafa qilmadi.

Agar siz QoS ni sozlashingiz kerak bo’lsa, turli tarmoq yo’nalishlarining tezligini hisobga olishingiz kerak. Mening holatimda, Tas-ix yo’nalishidagi ba’zi resurslar 100 Mbit/s tezlikda mavjud, qolgan barcha narsalar esa 5 Mbit/s tarif rejasi bilan cheklangan. Shuning uchun, agar navbatlarni yo’nalish bo’yicha ajratmaganimda, men hech qachon tezlikni teng taqsimlay olmagan bo’lardim. Buning uchun men kerakli pastki tarmoqlarni Manzillar ro’yxatiga qo’shdim va shunga mos ravishda kiruvchi va chiquvchi ulanishlarni tayinladim.

Endi mening uy tarmog’imdagi trafik barcha mijozlari o’rtasida aka-uka kabi taqsimlanadi. ;) Agar kerak bo’lsa, individual mijozlarga shaxsiylashtirilgan cheklovlar berilishi mumkin. Aytgancha, Manzillar ro’yxati nafaqat IP manzillarini, balki domenlarni ham qo’llab-quvvatlaydi. Bu holda, qo’shilgan xost nomi yozuviga o’zining rezolyutsiyasi bilan dinamik yozuv avtomatik ravishda qo’shiladi.

IPv6
Menda dinamik IPv4 bor. Dinamik, lekin hech bo’lmaganda oq rangda! Shunday qilib, men yana bir narsa qo’shishim mumkin. Masalan, IPv6 ni yoqing.

Buning uchun siz bir xil nomdagi paketni yoqishingiz kerak. Shuningdek, siz aniq foydalanishni istamagan har qanday narsani o’chirib qo’yishingiz mumkin. «Marshrutizatsiya» paketini o’chirib qo’yishdan qo’rqmang. U faqat uy yoki ofis muhitida kerak bo’lishi ehtimoldan yiroq bo’lgan professional marshrutizatsiya protokollarini o’z ichiga oladi.
Endi IPv6 paketi qo’shilgandan so’ng, biz tarmoqni olishimiz kerak. Agar sizning provayderingiz asl IPv6 ni taklif qilsa, juda yaxshi! Mening holatimda, men uchun mavjud bo’lgan yagona variant — bu tunnel brokeri. Biz aynan shu haqida gaplashamiz.
Bu yerda ro’yxatdan o’ting https://tunnelbroker.net/
Ro’yxatdan o’tgandan va yangi tunnel qo’shgandan so’ng, siz Mikrotikni sozlashni boshlashingiz mumkin.

Yaxshi tomoni shundaki, Hurricane Electric boshqaruv paneliga turli xil apparat turlari uchun shablonlar bilan sozlamalar generatorini o’rnatdi. Ushbu sozlamalarni routeringizga kiritishingiz mumkin. LANga manzillarni tayinlash, shuningdek, DNS va IPv6 uchun xavfsizlik devorini sozlash bo’yicha batafsil ko’rsatmalar uchun https://telecom-sales.ru/content/stati/nastrojka-ipv6-s-pomoshyu-tunnelbrocker-na-mikrotik/ ga qarang.
IP manzilim dinamik bo’lgani uchun, tunnel broker tomonidagi tashqi manzilni yangilash uchun skript kerak edi. Skript quyidagicha ko’rinadi:
:local HEtunnelinterface "sit1"
:local HEtunnelid "ПАРОЛЬ"
:local HEuserid "ЛОГИН"
:local HEmd5pass "КЛЮЧ ОБНОВЛЕНИЯ ДЛЯ API"
:local HEupdatehost "ipv4.tunnelbroker.net"
:local HEupdatepath "/nic/update"
:local WANinterface "Имя WAN интерфейса"
:local outputfile ("HE-" . $HEtunnelid . ".txt")
# Internal processing below...
# ----------------------------------
:local HEipv4addr
# Get WAN interface IP address
:set HEipv4addr [/ip address get [/ip address find interface=$WANinterface] address]
:set HEipv4addr [:pick [:tostr $HEipv4addr] 0 [:find [:tostr $HEipv4addr] "/"]]
:if ([:len $HEipv4addr] = 0) do={
:log error ("Could not get IP for interface " . $WANinterface)
:error ("Could not get IP for interface " . $WANinterface)
}
# Update the HEtunnelinterface with WAN IP
/interface 6to4 {
:if ([get ($HEtunnelinterface) local-address] != $HEipv4addr) do={
:log info ("Updating " . $HEtunnelinterface . " local-address with new IP " . $HEipv4addr . "...")
set ($HEtunnelinterface) local-address=$HEipv4addr
}
}
:log info ("Updating IPv6 Tunnel " . $HEtunnelid . " Client IPv4 address to new IP " . $HEipv4addr . "...")
/tool fetch mode=https \
host=($HEupdatehost) \
url=("https://" . $HEupdatehost . $HEupdatepath . \
"?hostname=" . $HEtunnelid . \
"&myip=" . $HEipv4addr) \
user=($HEuserid) \
password=($HEmd5pass) \
dst-path=($outputfile)
:log info ([/file get ($outputfile) contents])
/file remove ($outputfile) 
Skriptni Shedaller orqali yoki tadbirga asoslangan holda ishga tushirish mumkin. Men birinchisini muvaffaqiyatliroq deb topdim.
Alohida internetga ulangan mehmon tarmog’i.
Yangi yil bayramlari yaxshilik qilish uchun ajoyib bahona! Shuning uchun men bunga ulgurdim va Wi-Fi tarmog’imni atrofimdagilar bilan baham ko’rishga qaror qildim. Lekin begonalarga tarmog’imda yurishga ruxsat bermasligim va uy IP-manzilimdan foydalanishga ruxsat berishni istamasligim sababli, ayyorlik qilishga qaror qildim.

Biz virtual interfeysda mehmon tarmog’ini yaratamiz va unga ochiq profil biriktiramiz.

Biz mehmon tarmog’i uchun DHCP ni sozlaymiz va unga chap hovuzni beramiz.



Endi eng muhim qism keladi. Marshrutizatsiyani qo’shamiz. Buning uchun avval mehmon tarmog’imizdan kelib chiqadigan paketlarni belgilashimiz kerak.


Va marshrut VPN interfeysi orqali o’tadi.

Endi, agar hamma narsani avvalgidek qoldirsak, VPN ishlamay qolsa, mehmon tarmog’idagi foydalanuvchilar to’satdan odatiy marshrutizatsiyaga qaytadilar va hatto mahalliy tarmoqqa kirish huquqiga ega bo’ladilar. Buning oldini olish uchun, keling, xavfsizlik devoriga ikkita qoida qo’shaylik.

Birinchidan, biz VPN tranzitiga ruxsat beramiz va ikkinchidan, mehmon interfeysidan qolgan hamma narsani bloklaymiz. Bo’ldi!
Davomi bor, ehtimol… ;)
