vPC là gì?
vPC là viết tắt của virtual Port Channel, là một công nghệ ảo hóa, được ra mắt vào năm 2009, cho phép các liên kếtvật lý trênhai thiết bị Cisco Nexus 3000 5000 7000 hoặc 9000 khác nhau có thể được gom lại thành 1 cổng logic (channel) để kết nối tới các thiết bị Endpoint. Endpoint có thể là một switch, máy chủ, router hoặc bất kỳ thiết bị nào khác như Tường lửa hoặc Bộ cân bằng tải hỗ trợ công nghệ link aggregation LACP (EtherChannel).
Thành phần kiến trúc của vPC
Kiến trúc vPC bao gồm các thành phần sau:
vPC Peer
Mô hình virtual Port Channel bao gồm 2 thiết bị switch Cisco Nexus trong 1 cặp, một thiết bị hoạt động ở chế độ Primary và 1 thiết bị Secondary cho phép các thiết bị khác kết nối tới 2 switch này bằng Multi-Channel Ethernet (MEC). Hai thiết bị này được gọi là vPC Peer và được kết nối với nhau thông qua vPC Peer Link.
vPC Peer Link
vPC peer-link là thành phần kết nối quan trọng nhất trong thiết lập virtual Port Channel. vPC peer-link được sử dụng để đồng bộ hóa trạng thái giữa 2 thiết bị vPC thông qua các gói điều khiển vPC để tạo ra một mặt phẳng điều khiển duy nhất (1 switch logical). Trong trường hợp thiết bị vPC cũng là switch layer 3, vPC peer-link mang các gói Hot Standby Router Protocol (HSRP).
vPC Peer Keepalive Link
vPC Peer Keepalive Link là đường link Layer 3 được sử dụng để xác định các thiết bị trong cụm vPC và các đường vPC Peer Link có hoạt động hay không. Không có dữ liệu hay các gói tin đồng bộ đi qua vPC Peer Keepalive Link, chỉ có các gói tin IP/UDP sử dụng port 3200 để monitor switch và các peer link trong cụm vPC. Thời gian mặc định của các gói tin này là 1giây và timeout là 5 giây.
vPC Domain
vPC domain là thông số để xác định các thiết bị switch Cisco Nexus nào đang chung 1 miền vPC. Các Switch Nexus trong 1 cụm vPC phải chung vPC Domain.
Cấu hình vPC trên switch Cisco Nexus
Bước 1: Bật tính năng vPC, interface-vlan, LACP và cấu hình vPC domain
Chỉ số vPC domain number phải giống nhau trên 2 switch.
Bật vPC và cấu hình vPC trên switch 1 (Primary)
N5k-Primary(config)# feature vpc
N5k-Primary(config)# feature lacp
N5k-Primary(config)# feature interface-vlan
N5k-Primary(config)# vpc domain 1
N5k-Primary(config-vpc-domain)# show vpc role
vPC Role status
----------------------------------------------------
vPC role : none established
Dual Active Detection Status : 0
vPC system-mac : 00:23:04:ee:be:01
vPC system-priority : 32667
vPC local system-mac : 8c:60:4f:2c:b3:01
vPC local role-priority : 0
Cấu hình tương tự trên thiết bị thứ 2 (Secondary)
Bước 2: Cấu hình vPC Peer Keepalive link
vPC Peer Keepalive link có thể sử dụng link Layer 3 bằng cách đặt IP 2 đầu hoặc sử dụng interface VLAN. Trong ví dụ này ta sử dụng Interface VLAN và gán các interface này vào 1 VRF ( keepalive) để cô lập và không cho các interface này định tuyến trong mạng.
N5k-Primary(config)# vlan 23 //tạo vlan 23
N5k-Primary(config-vlan)# name keepalive
N5k-Primary(config)# vrf context keepalive //tạo vrf keepalive để cô lập vlan23
N5k-Primary(config)#interface Vlan23
N5k-Primary(config-if)#vrf member keepalive //gán vlan 23 vào vrf keepalive
N5k-Primary(config-if)#ip address 192.168.1.1/24
N5k-Primary(config)#interface Ethernet1/32 //sử dụng cổng E1/23 là cổng keepalive
N5k-Primary(config-if)#switchport mode access
N5k-Primary(config-if)#switchport access vlan 23
Cấu hình trên switch Secondary
N5k-Secondary(config)# vlan 23 //tạo vlan 23
N5k-Secondary(config-vlan)# name keepalive
N5k-Secondary(config)# vrf context keepalive //tạo vrf keepalive để cô lập vlan23
N5k-Secondary(config)#interface Vlan23
N5k-Secondary(config-if)#vrf member keepalive //gán vlan 23 vào vrf keepalive
N5k-Secondary(config-if)#ip address 192.168.1.2/24
N5k-Secondary(config)#interface Ethernet1/32 //sử dụng cổng E1/23 là cổng keepalive
N5k-Secondary(config-if)#switchport mode access
N5k-Secondary(config-if)#switchport access vlan 23
Kiểm tra kết nối giữa 2 đầu keepalive
N5k-Secondary# ping 192.168.1.1 vrf keepalive
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=1 ttl=254 time=3.91 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=254 time=3.05 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=254 time=1.523 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=254 time=1.501 ms
Bước 3: Cấu hình keepalive vPC peer
Cấu hình trên thiết bị Primary
N5k-Primary(config)# vpc domain 1
N5k-Primary (config-vpc-domain)# peer-keepalive destination 192.168.1.2 source 192.168.1.1 vrf keepalive
Cấu hình trên thiết bị Secondary
N5k-Secondary(config)# vpc domain 1
N5k-Secondary(config-vpc-domain)# peer-keepalive destination 192.168.1.2 source 192.168.1.1 vrf keepalive
Kiểm tra cấu hình
N5k-Primary# show vpc peer-keepalive
vPC keep-alive status : peer is alive
--Peer is alive for : (95) seconds, (201) msec
--Send status : Success
--Last send at : 2019.06.22 23:03:50 720 ms
--Sent on interface : Vlan23
--Receive status : Success
--Last receive at : 2019.06.22 23:03:50 828 ms
--Received on interface : Vlan23
--Last update from peer : (0) seconds, (201) msec
vPC Keep-alive parameters
--Destination : 192.168.1.2
--Keepalive interval : 1000 mses
--Keepalive timeout : 5 seconds
--Keepalive hold timeout : 3 seconds
--Keepalive vrf : keepalive
--Keepalive udp port : 3200
--Keepalive tos : 192
Bước 4: Cấu hình vPC Peer Link
Trong ví dụ này chúng ta sử dụng cổng E1/47 và E1/48 được gom lại thành 1 port channel 10 để làm vPC Peer Link
N5k-Primary(config)# interface ethernet 1/47-48
N5k-Primary(config-if-range)# description *** VPC PEER LINKS ***
N5k-Primary(config-if-range)# channel-group 23 mode active
N5k-Primary(config)# interface port-channel 23
N5k-Primary(config-if)# description *** VPC PEER LINKS ***
N5k-Primary(config-if)# switchport mode trunk
N5k-Primary(config-if)# vpc peer-link
N5k-Primary(config-if)# spanning-tree port type network
Cấu hình tương tự trên thiết bị Secondary
Kiểm tra cấu hình vPC (trên Secondary)
N5k-Secondary# show vpc
Legend:
(*) - local vPC is down, forwarding via vPC peer-link
vPC domain id : 1
Peer status : peer adjacency formed ok
vPC keep-alive status : peer is alive
Configuration consistency status : success
Per-vlan consistency status : success
Type-2 consistency status : success
vPC role : secondary, operational primary
Number of vPCs configured : 0
Peer Gateway : Disabled
Dual-active excluded VLANs : -
Graceful Consistency Check : Enabled
Auto-recovery status : Enabled (timeout = 240 seconds)
vPC Peer-link status
---------------------------------------------------------------------
id Port Status Active vlans
-- ---- ------ --------------------------------------------------
1 Po23 up
Bước 5: Cấu hình vPC gom các port trên 2 switch vào 1 channel để kết nối tới các thiết bị khác
vPC sử dụng vPC number để xác định xem các port nào thuộc cùng 1 channel. Các port có cùng số vPC trên 2 thiết bị sẽ tạo thành 1 group. Trong ví dụ này chúng ta sử dụng port E1/1 trên cả 2 thiết bị để gom thành port channel 10 với chỉ số vPC là 10. Port channel 10 có thể được cấu hình như các port trunk hoặc access vlan tùy từng mô hình. Trong ví dụ này chúng ta cấu hình port channel 10 mode trunk để kết nối xuống switch access bên dưới.
Cấu hình trên Primary
N5k-Primary(config)#interface Ethernet1/1
N5k-Primary(config-if)#switchport mode trunk
N5k-Primary(config-if)#channel-group 10 mode active
N5k-Primary(config-if)#exit
N5k-Primary(config)#interface port-channel 10
N5k-Primary(config-if)#switchport mode trunk
N5k-Primary(config-if)#vpc 10
Cấu hình tương tự trên thiết bị Secondary
Cấu hình port channel trên thiết bị switch access
SW-Access(config)#interface range FastEthernet1/1-2
SW-Access(config-if)#switchport mode trunk
SW-Access(config-if)#channel-group 2 mode active
SW-Access(config-if)#exit
SW-Access(config)#interface port-channel 2
SW-Access(config-if)#switchport mode trunk
Kiểm tra trạng thái port channel (trên Primary)
N5k-Primary# show vpc | begin "vPC status"
vPC status
----------------------------------------------------------------------------
id Port Status Consistency Reason Active vlans
------ ----------- ------ ----------- -------------------------- -----------
10 Po10 up success success 10
Kiểm tra tính HA
Vậy là chúng ta đã cấu hình xong vPC trên 2 thiết bị switch Cisco nexus để tạo 1 port channel nối xuống switch access. Bây giờ chúng ta sẽ xét tới các trường hợp lỗi các link trong vPC
Trường hợp 1: vPC Peer link Failure
Trong trường hợp vPC Peer link bị lỗi trạng thái của vPC Peer sẽ được kiểm tra bằng Peer Keepalive Link
Khi đó thiết bị trong vPC là Secondary sẽ suppend các cổng thuộc vPC để tránh bị loop trong mạng. Traffic lúc này sẽ đi qua vPC Primary mà không có sự gián đoạn nào. Trong trường hợp đường uplink là đường vPC và có 1 thiết bị cắm vào Secondary ( không thuộc vPC) thì thiết bị đó sẽ mất kết nối
Trường hợp 2: vPC Peer Keepalive lỗi
Trong trường hợp Keepalive Link lỗi, không có sự thay đổi vai trò giữa vPC (chính / phụ) và không có thời gian ngừng hoạt động trong mạng.
Trường hợp 3: vPC Peer Switch Lỗi
Trong trường hợp 1 switch trong vPC bị lỗi, thiết bị còn lại sẽ biết được do không nhận được bản tin keepalive. Lúc này traffic sẽ đi qua switch còn lại.
Trường hợp 4: cả peer-link và keepalive link đều lỗi
Lúc này cả 2 thiết bị đều là Primary và sẽ xảy ra loop trong mạng, gây mất ổn định hệ thống mạng.
Như vậy chúng ta đã hoàn thành cấu hình vPC và các kịch bản lỗi trong vPC. Tùy từng mô hình chúng ta sẽ quy hoạch các port vào vPC cho hợp lý.