Monday, October 7, 2024

[Ansible] Lesson 12 – Thực hành HSRP, GLBP, FHRP sử dụng Module ios_config Cisco

-

1. HSRP.

HSRP (Hot Standby Router Protocol) là giao thức sử dụng để cấu hình một nhóm các router cùng cung cấp một địa chỉ IP ảo cho một subnet. Trong trường hợp một router trong nhóm bị lỗi, router khác trong nhóm sẽ tiếp quản và cung cấp dịch vụ.

Dưới đây là ví dụ về cách tách biến và cấu hình HSRP trên hai thiết bị Cisco 3750.

Biến:

---
# Biến cho cấu hình HSRP
site_name: SiteA
vlan_id: 10
vip_address: 192.168.10.1
priority: 110

Cấu hình:

---
# Cấu hình HSRP
- name: Configure HSRP
  hosts: switch1, switch2
  gather_facts: no
  vars:
    site_name: "{{ site_name }}"
    vlan_id: "{{ vlan_id }}"
    vip_address: "{{ vip_address }}"
    priority: "{{ priority }}"
  tasks:
    - name: Configure HSRP on interface VLAN{{ vlan_id }}
      ios_config:
        lines:
          - interface vlan {{ vlan_id }}
          - standby {{ site_name }} virtual {{ vip_address }}
          - standby {{ site_name }} priority {{ priority }}
          - standby {{ site_name }} preempt
          - no shutdown

Trong ví dụ này, ta cấu hình HSRP trên hai thiết bị Cisco 3750 cho VLAN 10 với địa chỉ IP ảo là 192.168.10.1. Biến được sử dụng để cung cấp thông tin cho các tham số cấu hình như tên site, ID của VLAN, địa chỉ IP ảo và độ ưu tiên. Các thiết bị được chỉ định trong phần hosts. Trong nhiệm vụ cấu hình HSRP, module ios_config được sử dụng để thiết lập các lệnh cấu hình trên các thiết bị.

Dưới đây là một ví dụ về cấu hình HSRP trên một interface có địa chỉ IP đã được gán:

Biến:

interfaces:
  - interface: GigabitEthernet1
    ip_address: 192.168.1.1
    hsrp_group: 1
    hsrp_priority: 110
    hsrp_virtual_ip: 192.168.1.100

Config:

- name: Configure HSRP
  ios_config:
    lines:
      - interface {{ interfaces.interface }}
      - ip address {{ interfaces.ip_address }} 255.255.255.0
      - standby {{ interfaces.hsrp_group }} ip {{ interfaces.hsrp_virtual_ip }}
      - standby {{ interfaces.hsrp_group }} priority {{ interfaces.hsrp_priority }}
      - standby {{ interfaces.hsrp_group }} preempt
      - exit

Trong ví dụ này, ta đang gán địa chỉ IP 192.168.1.1 cho interface GigabitEthernet1. Ta cũng cấu hình HSRP cho interface này với các thông số được lưu trữ trong biến. Ta sử dụng module ios_config để áp dụng các dòng lệnh cấu hình này vào thiết bị Cisco IOS.

2. GLBP.

Đây là ví dụ cấu hình GLBP (Gateway Load Balancing Protocol) trên các router Cisco. Trong ví dụ này, hai router sẽ cấu hình GLBP với địa chỉ IP 192.168.1.1/24 trên các cổng GigabitEthernet0/1 và GigabitEthernet0/2. Cả hai router đều sử dụng cùng một virtual IP là 192.168.1.100 và chia sẻ công việc load balancing cho các địa chỉ IP trong mạng của họ.

Tệp biến:

---
glbp_group: 1
glbp_priority: 100
glbp_virtual_ip: 192.168.1.100
glbp_track_interface: GigabitEthernet0/0
glbp_track_delay: 30

Tệp cấu hình Ansible:

---
- name: Configure GLBP
  hosts: routers
  gather_facts: no
  vars_files:
    - vars.yml
  tasks:
    - name: Enable GLBP
      ios_config:
        lines:
          - glbp {{ glbp_group }} load-balancing host-dependent
          - glbp {{ glbp_group }} preempt delay minimum 120
          - glbp {{ glbp_group }} priority {{ glbp_priority }}
          - interface GigabitEthernet0/1
          - glbp {{ glbp_group }} ip {{ glbp_virtual_ip }}
          - glbp {{ glbp_group }} priority {{ glbp_priority }}
          - glbp {{ glbp_group }} preempt
          - glbp {{ glbp_group }} weighting track {{ glbp_track_interface }} decrement {{ glbp_track_delay }}
          - no shutdown
          - exit
          - interface GigabitEthernet0/2
          - glbp {{ glbp_group }} ip {{ glbp_virtual_ip }}
          - glbp {{ glbp_group }} priority {{ glbp_priority }}
          - glbp {{ glbp_group }} preempt
          - glbp {{ glbp_group }} weighting track {{ glbp_track_interface }} decrement {{ glbp_track_delay }}
          - no shutdown
          - exit

Trong file biến, chúng ta đặt các biến cơ bản như glbp_group là số của GLBP group, glbp_priority là độ ưu tiên của thiết bị trong group (giá trị cao hơn ưu tiên hơn), glbp_virtual_ip là địa chỉ IP ảo mà các thiết bị GLBP sẽ chia sẻ và glbp_track_interface là tên của interface sẽ được sử dụng để giám sát tình trạng của thiết bị.

Trong file cấu hình Ansible, chúng ta sử dụng module ios_config để thực hiện cấu hình GLBP. Các lệnh cấu hình được gom nhóm trong các tùy chọn lines và được đưa vào các interface tương ứng (GigabitEthernet0/1 và GigabitEthernet0/2) để thiết lập GLBP. Chúng ta cấu hình cả hai interface để sử dụng cùng một địa chỉ IP ảo và chia sẻ việc load balancing cho các địa chỉ IP

3. FHRP.

Ví dụ sau đây sử dụng module ios_config của Ansible để cấu hình HSRP trên hai router Cisco và gán địa chỉ IP cho các interface liên quan.

Trước tiên, ta sẽ tạo hai biến để chứa địa chỉ IP cho các interface, và biến cho HSRP group ID:

---
# Biến
wan_interface_ip_address: 192.168.1.1
wan_interface_net: 255.255.255.0
lan_interface_ip_address: 10.0.0.1
lan_interface_net: 255.255.255.0
hsrp_group_id: 1

# Cấu hình HSRP
- name: Configure WAN interface
  ios_config:
    lines:
      - interface GigabitEthernet1
      - ip address {{ wan_interface_ip_address }} {{ wan_interface_net }}
      - no shutdown

- name: Configure LAN interface
  ios_config:
    lines:
      - interface GigabitEthernet2
      - ip address {{ lan_interface_ip_address }} {{ lan_interface_net }}
      - no shutdown

- name: Configure HSRP
  ios_config:
    lines:
      - interface GigabitEthernet2
      - standby {{ hsrp_group_id }} ip {{ lan_interface_ip_address }}
      - standby {{ hsrp_group_id }} priority 100
      - standby {{ hsrp_group_id }} preempt

Ở đây, ta đã sử dụng các biến wan_interface_ip_address, wan_interface_net, lan_interface_ip_address, lan_interface_net, và hsrp_group_id để thay thế cho các giá trị tường minh.

Ví dụ này giả định rằng các router Cisco đều đã được cấu hình cơ bản và có thể truy cập được bằng SSH.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories