اتوماسیون شبکه با Ansible: ساده‌سازی مدیریت شبکه‌های MikroTik و Cisco

اتوماسیون شبکه با Ansible: ساده‌سازی مدیریت شبکه‌های MikroTik و Cisco
Network Automation with Ansible Simplifying Network Management

اتوماسیون در مدیریت شبکه‌ها به‌ویژه در محیط‌های بزرگ و پیچیده اهمیت بسیار زیادی دارد. ابزار 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.

  1. پیکربندی 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 را از محدوده‌ای که تعریف کرده‌اید، تخصیص می‌دهد.

  1. پیکربندی 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 استفاده می‌کند.

  1. پیکربندی فایروال 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 مجاز می‌کند و سایر ترافیک‌ها را مسدود می‌کند.

  1. پیکربندی 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 اختصاص می‌دهد.

  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
  1. پیکربندی 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، را به‌راحتی خودکارسازی کنید.