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.