Building a vPC Domain

 vPC Domain은 vPC를 구성하는 장비들의 그룹으로 향후에는 증가될 수 있지만, 현재는 2대의 장비만이 vPC Domain에 포함될 수 있다. vPC Domain mode에서는 vPC peer 및 peer-gateway, peer-switch 등과 같은 vPC 옵션과 기능을 설정한다.

  vPC Domain을 구성하기 위해 다음과 같은 단계를 거쳐 vPC Domain을 설정하게 된다.

1. vPC와 LACP 기능을 enable 하고, vPC Peer 간에 vPC Domain ID를 동일하게 설정한다.

(config)# feature vpc
(config)# feature lacp

(config)# vpc domain domain_id

  타 장비에서 두 대의 장비가 하나의 장비처럼 보이도록 하기 위해 상호간에 BPDU Bridge ID를 동일한 값을 사용해야 하는데, Bridge ID 내에 System MAC address를 설정할 때 vPC Domain ID가 사용되기 때문에 반드시 vPC Peer 간에 값이 동일해야 vPC Domain으로 구성된다. 그리고, System MAC address는 LACP에서도 사용된다.

2. vPC peer에게 peer-keepalive를 전달하도록 설정한다.

(config-vpc-domain)# peer-keepalive destination peer_IP_address [Option]

  vPC Peer는 상호간에 peer-keepalive를 주기적으로 전달하는데, 초기에 vPC Domain을 구성하기 위해서는 반드시 vPC peer에게 peer-keepalive를 받아야 한다. 하지만, vPC Domain이 구성된 후에는 peer-keepalive를 수신하지 못해도 vPC Domain이 유지할 수 있는 조건에 충족하면 그대로 유지된다.

3. vPC Peer 간에 연결된 L2 trunk port-channel Link를 vPC Peer-Link로 구성한다.

(config)# interface e1/1
(config-if)# switchport mode trunk
(config-if)# channel-group 1 mode active
(config-if)# interface port-channel 1
(config-if)# vpc peer-link

  Peer-Link가 되기 위한 기본 조건은 다음과 같다.

  • Trunk Port: vPC VLAN 정보를 전달하여야 하기 때문임
  • Port-channel: 두개 이상의 Link를 사용하는 것을 권장하기 때문임
  • Bridge Assurance enable(spanning-tree port type network): Peer-keepalive를 수신하지 못한 경우 BPDU를 keepalive 대체로 사용하기 위함임 (Peer-link로 구성하면 자동으로 설정됨)
  • Port-channel mode는 상관없지만, Port-channel Link 문제를 확인하기 위해 LACP를 권장함

여기까지 하면 vPC Domain은 문제없이 구동된다. 이제는 Port에 vPC를 구동시키는 일만 남은 것이다.

4. vPC Peer 간에 연결된 L2 trunk port-channel Link를 vPC Peer-Link로 구성한다.

(config)# interface e1/2
(config-if)# channel-group 10 mode active
(config-if)# interface port-channel 10
(config-if)# vpc 10

  vPC Peer 간에 Port-channel ID와 vPC ID를 동일하게 설정하고 Access Switch 에서 Port-channel을 구성하면 vPC 연결이 완성되게 된다.

vPC Domain 연결 후 결과 확인 (출처 : www.cisco.com)

vPC Domain Identifier

 앞에서 vPC domain ID는 BPDU Bridge ID와 LACP에서 사용하는 System MAC address 때문에 vPC peer 간에 동일하여야 한다고 설명하였다. 이 뿐만 아니라 System MAC address가 동일한 장비가 존재하면 안되기 때문에 vPC Domain ID는 Layer 2 Topology에서 Unique하여야 한다.

vPC system-mac = 00:23:04:ee:be:<vPC domain-id in hexadecimal>

ex) Domain-id가 200인 경우, 200을 16진수로 변경하면 ’64’이므로 “00:23:04:ee:be:64“가 된다.

  만일, vPC Domain ID를 동일하게 설정하여 문제가 발생한다면 ‘system-mac’ 명령어를 사용하여 수동으로 변경해 주어야 한다.

(config)# vpc domain domain_id
(config-vpc-domain)# system-mac system_mac_address

  그럼, 각 Switch가 가지고 있는 Local system-mac address는 필요없는가? vPC system-mac은 vPC member Port로 BPDU 등의 Packet을 전달할 때 사용하고, 각 Switch가 가지고 있는 Local system-mac은 orphan port 등 vPC member port가 아닌 Port로 Packet을 전달할 때 사용하게 된다.

vPC Role

  vPC는 vPC Peer 간에 Primary와 Secondary로 역할을 구분한다. 두대의 장비를 하나의 장비처럼 동작시키려다 보니, 예기치 않은 Loop이 발생할 수 있는데 이것을 막기 위한 기술이라고 이해하면 쉬울 것이다. 어떤 경우에 문제가 발생하는지는 추후에 살펴보기로 하고 여기서는 Primary를 선출하는 기준과 Primary의 역할을 알아보자.

  먼저, Primary Switch를 선출하는 기준은 다음과 같다.

1. Role Priority의 값이 낮은 Switch

(config)# vpc domain domain_id
(config-vpc-domain)# role priority value

  Priority 값은 1~65535 사이의 값으로 설정할 수 있으면 Default는 ‘32667’이다. vPC Primary Role은 non-preemptive로 한번 선출되면 Priority 값을 변경하여도 Primary가 바뀌지 않는다.

2. Local system-mac의 값이 낮은 Switch

  이렇게 선출된 Primary Switch는 vPC member Port로 송수신되는 BPDU를 처리한다.