اتوماسیون شبکه با Ansible: سادهسازی مدیریت شبکههای MikroTik و Cisco
اتوماسیون در مدیریت شبکهها بهویژه در محیطهای بزرگ و پیچیده اهمیت بسیار زیادی دارد. ابزار Ansible یکی از بهترین راهحلها برای مدیریت و پیکربندی دستگاههای شبکه بهشمار میرود. در این مقاله به بررسی اتوماسیون شبکه با Ansible برای دستگاههای MikroTik و Cisco میپردازیم و مثالهایی از هر دو برند ارائه میکنیم تا نحوه استفاده از این ابزار قدرتمند برای مدیریت شبکهها روشنتر شود.
Ansible چیست؟
Ansible ابزاری Open Source برای Configuration Management، Automation و Orchestration است که بهصورت Agentless (بدون نیاز به نصب Agent روی دستگاهها) عمل میکند. این بدان معنی است که میتوانید پیکربندیها و وظایف مختلفی را روی دستگاههای شبکه تنها با استفاده از SSH یا API انجام دهید، بدون اینکه نیازی به نصب نرمافزارهای اضافی روی روترها یا سوئیچها باشد.
Ansible به شما این امکان را میدهد که با نوشتن Playbookها که به زبان YAML نوشته میشوند، عملیات پیچیده شبکه را سادهسازی و خودکار کنید. این قابلیت بهویژه در محیطهایی که با چندین دستگاه از برندهای مختلف (مانند MikroTik و Cisco) کار میکنید، مفید است.
مزایای Ansible برای شبکه
- بدون نیاز به Agent: نیازی به نصب هیچ نرمافزاری روی دستگاههای شبکه ندارید.
- سازگاری با چند برند: از جمله MikroTik، Cisco، Juniper و Arista.
- قابلیت مدیریت تعداد زیادی از دستگاهها: میتوانید صدها یا هزاران دستگاه شبکه را با یک Playbook مدیریت کنید.
- قابلیت بازبینی تغییرات: Ansible تنها تغییرات مورد نیاز را اعمال میکند و از ایجاد اختلال در زیرساخت شبکه جلوگیری میکند.
پیکربندی شبکه با Ansible برای MikroTik و Cisco
برای شروع، ابتدا باید Inventory دستگاههای خود را در Ansible تعریف کنید. این فایل شامل IP دستگاههای MikroTik و Cisco است. به مثال زیر توجه کنید:
[routers]
192.168.88.1 ansible_user=admin ansible_password=yourpassword ansible_network_os=routeros
192.168.10.1 ansible_user=admin ansible_password=yourpassword ansible_network_os=ios
این فایل نشان میدهد که دو روتر داریم: یکی از برند MikroTik و دیگری از Cisco.
- پیکربندی DHCP و IP Pools در MikroTik
برای پیکربندی DHCP و ایجاد IP Pool در MikroTik با استفاده از Ansible، میتوانید از Playbook زیر استفاده کنید:
---
- name: Configure DHCP on MikroTik RouterOS
hosts: routers
gather_facts: no
tasks:
- name: Add IP Pool
community.routeros.command:
commands:
- /ip pool add name=dhcp_pool ranges=192.168.88.2-192.168.88.100
- name: Configure DHCP Server
community.routeros.command:
commands:
- /ip dhcp-server add name=dhcp1 interface=ether1 address-pool=dhcp_pool disabled=no
- /ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1
این Playbook برای MikroTik یک DHCP Server پیکربندی میکند که آدرسهای IP را از محدودهای که تعریف کردهاید، تخصیص میدهد.
- پیکربندی Static Route در Cisco
در ادامه، به بررسی پیکربندی یک Static Route در روتر Cisco با Ansible میپردازیم:
---
- name: Configure Static Route on Cisco Router
hosts: routers
gather_facts: no
tasks:
- name: Add static route
cisco.ios.ios_config:
lines:
- ip route 192.168.20.0 255.255.255.0 192.168.10.2
این Playbook یک Static Route را روی روتر Cisco اضافه میکند که برای دسترسی به شبکه 192.168.20.0 از طریق Gateway 192.168.10.2 استفاده میکند.
- پیکربندی فایروال MikroTik
برای پیکربندی یک فایروال ساده روی روتر MikroTik، میتوانید از این Playbook استفاده کنید:
---
- name: Configure Firewall on MikroTik RouterOS
hosts: routers
gather_facts: no
tasks:
- name: Allow HTTP and HTTPS traffic
community.routeros.command:
commands:
- /ip firewall filter add chain=input protocol=tcp dst-port=80 action=accept
- /ip firewall filter add chain=input protocol=tcp dst-port=443 action=accept
- /ip firewall filter add chain=input action=drop
این Playbook ترافیک HTTP و HTTPS را در MikroTik مجاز میکند و سایر ترافیکها را مسدود میکند.
- پیکربندی VLAN در Cisco
در این مثال، پیکربندی VLAN را در یک روتر Cisco مشاهده میکنید:
---
- name: Configure VLAN on Cisco Router
hosts: routers
gather_facts: no
tasks:
- name: Create VLAN 10
cisco.ios.ios_config:
lines:
- vlan 10
- name IT_VLAN
- name: Assign interface to VLAN 10
cisco.ios.ios_config:
lines:
- interface GigabitEthernet1/0/1
- switchport mode access
- switchport access vlan 10
این Playbook یک VLAN با ID 10 ایجاد میکند و این VLAN را به پورت GigabitEthernet1/0/1 اختصاص میدهد.
- Hardening در Cisco و Mikrotik
Hardening دستگاههای شبکه برای افزایش امنیت بسیار مهم است. در اینجا یک Playbook برای غیرفعال کردن سرویسهای غیرضروری و فعالسازی SSH روی روتر MikroTik و Cisco آمده است:
Hardening در MikroTik
---
- name: Basic Hardening for MikroTik RouterOS
hosts: routers
gather_facts: no
tasks:
- name: Disable unused services
community.routeros.command:
commands:
- /ip service disable telnet
- /ip service disable ftp
- /ip service disable www
- name: Enable SSH
community.routeros.command:
commands:
- /ip service enable ssh
Hardening در Cisco
---
- name: Basic Hardening for Cisco IOS
hosts: routers
gather_facts: no
tasks:
- name: Disable Telnet
cisco.ios.ios_config:
lines:
- no service telnet
- name: Enable SSH
cisco.ios.ios_config:
lines:
- ip ssh version 2
- پیکربندی NTP در MikroTik و Cisco
برای هماهنگسازی زمان در روترهای MikroTik و Cisco، میتوانید NTP را بهصورت زیر پیکربندی کنید:
NTPدر Mikrotik
---
- name: Configure NTP on MikroTik RouterOS
hosts: routers
gather_facts: no
tasks:
- name: Set NTP Server
community.routeros.command:
commands:
- /system ntp client set enabled=yes primary-ntp=192.168.1.100
NTP در Cisco
---
- name: Configure NTP on Cisco IOS
hosts: routers
gather_facts: no
tasks:
- name: Set NTP Server
cisco.ios.ios_config:
lines:
- ntp server 192.168.1.100
این Playbookها NTP را روی هر دو دستگاه MikroTik و Cisco پیکربندی میکنند تا زمان دستگاهها با یکدیگر هماهنگ شود.
نتیجهگیری
با استفاده از Ansible، میتوانید پیکربندیهای پیچیده شبکه را در دستگاههای مختلف مانند MikroTik و Cisco بهصورت خودکار انجام دهید. این روش نهتنها سرعت کار را افزایش میدهد، بلکه احتمال خطاهای انسانی را نیز کاهش میدهد. با استفاده از Playbookهای Ansible، میتوانید تمامی فرآیندهای مدیریت شبکه، از پیکربندی DHCP و فایروال گرفته تا VLAN و NTP، را بهراحتی خودکارسازی کنید.