NetworkManager va netplan
Oldingi uchta maqolada — IP va routing vositalari, DHCP asoslari va
DNS vositalari — bir necha marta bitta ogohlantirish takrorlandi: ip buyrug'i bilan qilingan
o'zgarish vaqtinchalik, qayta yuklanganda yo'qoladi. Bu maqola aynan o'sha bo'shliqni to'ldiradi — IP, marshrut va
DNS sozlamalarini fayl orqali, doimiy va qayta ishlatiladigan tarzda qanday yozishni ko'rsatadi. Zamonaviy
Ubuntu/Debian tizimlarida buning ikkita asosiy yo'li bor: masalan serverlar uchun ko'proq ishlatiladigan
netplan va ish stantsiyalarida, ba'zi server o'rnatishlarida ishlatiladigan NetworkManager.
O'quv maqsadlari
Maqolani tugatgach:
- netplan,
systemd-networkdvaNetworkManagerorasidagi munosabatni — kim kimni "orqadan" boshqarishini — tushunasiz; - netplan YAML faylida statik va DHCP interfeys konfiguratsiyasini yoza olasiz;
netplan tryvanetplan applyorasidagi farqni va negatryxavfsizroq ekanini bilasiz;nmclivanmtuibilan NetworkManager orqali interfeysni sozlashni bajara olasiz;- RHEL oilasida tarixiy
ifcfg-*fayllar va NetworkManager orasidagi munosabatni bilasiz; - konfiguratsiya faylidagi xatoni serverni tarmoqdan uzmasdan qanday tekshirishni bilasiz.
netplan: yagona YAML, ikkita "backend"
netplan — o'zi tarmoqni boshqarmaydi; u faqat YAML konfiguratsiyasini o'qiydi va shu asosida haqiqiy ishni
bajaradigan ikkita backend'dan biriga — systemd-networkd yoki NetworkManager'ga — mos konfiguratsiya
generatsiya qiladi. Ubuntu Server'da odatda systemd-networkd backend, Ubuntu Desktop'da esa NetworkManager
backend sifatida ishlatiladi.
Konfiguratsiya fayllari /etc/netplan/ katalogida, .yaml kengaytmasi bilan saqlanadi:
Statik IP konfiguratsiyasi
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.122/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 1.1.1.1]
search: [internal.local]
Qismlari:
renderer— bu fayl uchun qaysi backend ishlatilishini aniq ko'rsatadi (networkdyokiNetworkManager);addresses— interfeysga tayinlanadigan IP(lar), CIDR notatsiyasida;routes— qo'shimcha marshrutlar;to: default— default gateway'ni belgilash usuli;nameservers— DNS serverlar va domen qidiruv ro'yxati (search), bularsystemd-resolvedga uzatiladi.
DHCP konfiguratsiyasi
dhcp4: true — DHCP asoslari darsida ko'rilgan jarayonni ishga tushiradi; interfeys IP, gateway
va DNS'ni avtomatik oladi.
Konfiguratsiyani xavfsiz qo'llash: try va apply
netplan try — o'zgarishlarni darhol qo'llaydi, lekin agar foydalanuvchi belgilangan vaqt ichida (odatda 120
sekund) Enter bosib tasdiqlamasa, avtomatik ravishda oldingi konfiguratsiyaga qaytadi. Bu ayniqsa masofaviy
SSH sessiyasi orqali marshrut yoki IP o'zgartirilganda hayotiy muhim: agar yangi konfiguratsiya ulanishni uzsa,
server o'zi eski holatga qaytadi va konsolsiz ham tiklanadi.
netplan apply esa darhol va qaytarilmasdan qo'llaydi — tasdiqlash oynasi yo'q.
Danger
Masofaviy serverda tarmoq konfiguratsiyasini o'zgartirganda har doim avval netplan try ishlating, hech
qachon to'g'ridan-to'g'ri netplan apply bilan boshlamang. Agar konsol yoki hypervisor orqali mustaqil kirish
imkoni bo'lmasa, xato konfiguratsiya serverni butunlay tarmoqdan uzib qo'yishi mumkin.
Konfiguratsiyani qo'llashdan oldin sintaksisni tekshirish:
generate faylni faqat backend konfiguratsiyasiga aylantiradi, hech narsani qo'llamaydi — YAML sintaksis xatosini
tarmoqqa tegmasdan aniqlash uchun qulay birinchi qadam.
Joriy holatni ko'rish:
systemd-networkd: netplan orqasidagi kuch
Netplan networkd backend'ini tanlaganda, u aslida /run/systemd/network/ ichida .network va .link
fayllarini generatsiya qiladi — bular haqiqatda systemd-networkd xizmati tomonidan o'qiladi:
Bu fayllarni qo'lda tahrirlamang — ular netplan tomonidan har applyda qayta yoziladi. Ular faqat diagnostika
uchun o'qiladi, masalan generatsiya qilingan qiymat kutilgandek ekanini tasdiqlash uchun.
NetworkManager: nmcli va nmtui
Ba'zi o'rnatishlarda (ayniqsa Ubuntu Desktop, ba'zi bulut image'lari yoki renderer: NetworkManager tanlangan
serverlarda) tarmoq bevosita NetworkManager orqali boshqariladi.
Holatni ko'rish
unmanaged holati — NetworkManager bu interfeysni umuman boshqarmayotganini bildiradi (masalan, lo, yoki
konfiguratsiyada aniq chetlab o'tilgan interfeys).
Statik konfiguratsiya nmcli bilan
sudo nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.168.1.122/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "192.168.1.1,1.1.1.1"
sudo nmcli connection up "Wired connection 1"
connection modify konfiguratsiyani o'zgartiradi, lekin uni darhol qo'llamaydi; connection up o'sha profilni
qayta faollashtirib, yangi sozlamani ishga tushiradi. Bu ikki bosqichli yondashuv xato konfiguratsiyani tekshirish
uchun ozgina vaqt beradi, lekin netplan'dagi tryga o'xshash avtomatik qaytarish mexanizmi yo'q.
DHCP'ga qaytarish:
sudo nmcli connection modify "Wired connection 1" ipv4.method auto
sudo nmcli connection up "Wired connection 1"
nmtui: matnli menyu interfeysi
nmtui — konsolda ishlaydigan, klaviatura bilan boshqariladigan menyu; nmclidagi barcha imkoniyatlarni
xotirada saqlamasdan, ko'rish orqali sozlash imkonini beradi — ayniqsa buyruq sintaksisini yodlamagan yoki tezkor,
bir martalik o'zgarish kerak bo'lgan hollarda qulay.
Warning
Bir tizimda netplan renderer: NetworkManagerni tanlagan bo'lsa, nmcli/nmtui orqali qilingan o'zgarish
netplan YAML faylida aks etmaydi. Keyingi netplan apply NetworkManager profilini qayta yozib, qo'lda
qilingan o'zgarishni yo'qotishi mumkin. Doimiy o'zgarishni har doim "manba haqiqat" (source of truth) sifatida
tanlangan bitta joyda — yoki netplan YAML, yoki NetworkManager profili — saqlang, ikkalasini aralashtirmang.
RHEL oilasi: nmcli va eski ifcfg-* fayllar
RHEL/CentOS/Fedora oilasida ham asosiy vosita — NetworkManager, xuddi shu nmcli/nmtui bilan boshqariladi.
Tarixiy jihatdan konfiguratsiya /etc/sysconfig/network-scripts/ifcfg-<interfeys> fayllarida saqlangan:
TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s3
DEVICE=enp0s3
IPADDR=192.168.1.122
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
ONBOOT=yes
Zamonaviy RHEL versiyalarida NetworkManager bu fayllarni ham o'qiy oladi, ham o'z ichki keyfile formatida
(/etc/NetworkManager/system-connections/) saqlashi mumkin — aniq format versiya va konfiguratsiyaga bog'liq.
Debian/Ubuntu'da bunga mos, ammo boshqa formatdagi eski yo'l — /etc/network/interfaces — hali ham ifupdown
paketi o'rnatilgan tizimlarda ishlaydi, biroq zamonaviy Ubuntu Server o'rnatishlarida standart emas.
Note
Distributivlar orasida konfiguratsiya fayli joylashuvi va formati farq qiladi: Ubuntu Server — netplan YAML,
RHEL oilasi — NetworkManager keyfile yoki ifcfg-*, ba'zi minimal tizimlar — /etc/network/interfaces.
Umumiy qoidani distributivga xos tafsilot bilan aralashtirmang: har doim aynan qaysi vosita ishlatilayotganini
(networkctl, nmcli, yoki cat /etc/os-release) avval tekshiring.
Amaliy ssenariy: netplan o'zgarishi serverni tarmoqdan uzib qo'yishi mumkin bo'lgan holat
Vazifa: ichki serverga qo'shimcha statik IP qo'shish kerak, lekin xato konfiguratsiya mavjud SSH ulanishini uzib qo'yishi mumkin.
Xavfsizlik eslatmasi: bu amal tarmoq konfiguratsiyasini o'zgartiradi. Iloji bo'lsa, avval izolyatsiya qilingan test VM'da mashq qiling; production serverda esa konsol yoki hypervisor konsoli orqali mustaqil kirish imkoni tayyor bo'lsingina davom eting.
1-qadam — joriy holatni saqlash:
sudo cp /etc/netplan/50-cloud-init.yaml ~/50-cloud-init.yaml.bak
ip -brief address show > ~/network-before.txt
ip route show >> ~/network-before.txt
2-qadam — YAML faylni tahrirlash: yangi manzilni addresses ro'yxatiga qo'shib qo'yish:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.122/24
- 192.168.1.150/24
dhcp4: false
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 1.1.1.1]
3-qadam — sintaksisni tekshirish (hali qo'llamasdan):
4-qadam — xavfsiz qo'llash:
Terminalda yangi SSH sessiyasi ochib (eskisini yopmasdan), ulanish saqlanganini tasdiqlang, so'ng birinchi
sessiyada Enter bosib o'zgarishni tasdiqlang.
5-qadam — tekshirish:
6-qadam — muvaffaqiyatsizlik holatida rollback: agar netplan try avtomatik qaytarmagan bo'lsa yoki qo'lda
qaytarish kerak bo'lsa:
Ko'p uchraydigan xatolar
To'g'ridan-to'g'ri netplan apply bilan sinash
Xato konfiguratsiya darhol va qaytarilmasdan qo'llanadi. netplan try ana shu xavfni oldini olish uchun maxsus
mo'ljallangan — uni chetlab o'tmang.
netplan bilan NetworkManager'ni bir vaqtda qo'lda aralashtirish
renderer: NetworkManager tanlangan interfeysga nmcli bilan qo'lda o'zgarish kiritish, so'ng keyingi
netplan applyda uni yo'qotib qo'yish — ikkala tizim orasida "manba haqiqat"ni aniqlamaganlik natijasi.
YAML indentatsiyasidagi xatoni payqamaslik
netplan YAML formatida bo'sh joy soni ma'noli; noto'g'ri joylashtirilgan kalit butun blokni boshqa maydonga
"o'tkazib" yuborishi mumkin. netplan generateni har doim tahrirdan keyin, applydan oldin ishlating.
systemd-networkd generatsiya qilgan faylni qo'lda tahrirlash
/run/systemd/network/ ichidagi fayllar keyingi netplan applyda qayta yoziladi; qo'lda kiritilgan o'zgarish
yo'qoladi. O'zgarish har doim /etc/netplan/*.yaml faylida qilinishi kerak.
Amaliy mashqlar
netplan statusvaip -brief address shownatijalarini solishtirib, joriy konfiguratsiya qaysi renderer (networkdyokiNetworkManager) orqali ishlayotganini aniqlang.- Test VM'da mavjud netplan faylini backup qilib, DHCP interfeysni statik IP'ga o'zgartiring va o'zgarishni
netplan tryorqali xavfsiz qo'llang. nmcli device statusvanmcli connection shownatijalarini o'qib,unmanagedvaconnectedholatlar orasidagi farqni tushuntiring.- Yuqoridagi amaliy ssenariyni takrorlang: ataylab noto'g'ri indentatsiyali YAML yozing, xatoni
netplan generatebilan toping, tuzating va faqat shundan keyinnetplan trybilan qo'llang.
Xulosa
netplan — YAML orqali beriladigan yagona, deklarativ konfiguratsiya manbai, u orqasida esa haqiqiy ishni
systemd-networkd yoki NetworkManager bajaradi. netplan try masofaviy o'zgarishlarni xavfsiz qiladi, chunki
muvaffaqiyatsiz konfiguratsiya avtomatik qaytariladi. NetworkManager alohida ishlatilganda esa nmcli/nmtui
xuddi shu vazifani bajaradi, lekin xavfsiz-sinov mexanizmisiz — shu sababli production serverda o'zgarishdan oldin
har doim joriy holatni qo'lda saqlab qo'yish kerak. Endi manzil, marshrut va DNS doimiy saqlanishini bilgach,
keyingi NTP server va chronyd sozlamalari darsida serverning vaqt sinxronizatsiyasi —
ko'plab tarmoq protokollari (TLS, Kerberos, log tartiblash) to'g'ri ishlashi uchun zarur bo'lgan yana bir asosiy
tarmoq xizmati — ko'riladi.