2016년 9월 23일 금요일

Arista VXLAN HER

Arista는 두가지 VXLAN Tunneling 방식을 지원한다.

  1. RFC7348은 Broadcast, Unknown packet을 multicast packet으로 encapsulation하여 PIM router에서 Flooding하여 peer VTEP가 수신할 수 있는 방식을 설명한다.
  2. 하지만 많은 사업자들이 IP multicast를 지원하지 않는 경우가 있기 때문에 multicast가 아닌 unicast로 encapsulation하는 방식도 지원하는데 이를 HER(Head End Replication) 이라고 한다.
이번 포스트에서는 Unicast Based(HEF) VXLAN을 시험해보도록 한다.


Test Env.

  • GNS3 Local Server (1.5.2)
    • vEOS x 2 (4.16, VirtualBox, 1.5 GB)
    • c7200 x 1 (15.2(4)M8, Dynamips)
    • Ostinato (VirtualBox, 256 MB)




Test

HER VXLAN은 underday network으로 IP multicast를 사용하지 않으므로 Test network에 PIM 설정을 생략한다.

Broadcast tunneling packet


Destination IP address와 MAC address가 unicast address를 사용하고 있다.


Unknown Unicast tunneling packet


Destination IP address와 MAC address가 unicast address를 사용하고 있다.



Known unicast tunneling packet


vEOS-1#show mac address-table
          Mac Address Table
------------------------------------------------------------------
  
Vlan    Mac Address       Type        Ports      Moves   Last Move
----    -----------       ----        -----      -----   ---------
  10    0000.0000.0011    DYNAMIC     Et2        47      37 seconds ago
  10    0000.0000.0022    DYNAMIC     Vx1        1       37 seconds ago
Total Mac Addresses for this criterion: 2
  
          Multicast Mac Address Table
------------------------------------------------------------------
  
Vlan    Mac Address       Type        Ports
----    -----------       ----        -----
Total Mac Addresses for this criterion: 0

VXLAN 관련 확인

vxlan을 통행 learning된 mac address-table 확인

vEOS-1#show vxlan address-table
          Vxlan Mac Address Table
----------------------------------------------------------------------
  
Vlan  Mac Address     Type     Prt  Vtep             Moves   Last Move
----  -----------     ----     ---  ----             -----   ---------
  10  0000.0000.0022  DYNAMIC  Vx1  2.2.2.2          1       0:00:54 ago
Total Remote Mac Addresses for this criterion: 1


vxlan를 통해 수신된 peer VTEP list

vEOS-1#show vxlan vtep
Remote vteps for Vxlan1:
2.2.2.2
Total number of remote vteps:  1


Configuration

vEOS-1


! Command: show running-config
 ! device: vEOS-1 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
no lldp run
!
hostname vEOS-1
!
spanning-tree mode mstp
!
no aaa root
!
vlan 10
!
interface Ethernet1
   no switchport
   ip address 10.1.1.2/30
!
interface Ethernet2
   switchport access vlan 10
!
interface Ethernet3
!
interface Ethernet4
!
interface Loopback0
   ip address 1.1.1.1/32
!
interface Management1
!
interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 4789
   vxlan vlan 10 vni 4096
   vxlan flood vtep 2.2.2.2
!
ip routing
!
router ospf 1
   router-id 1.1.1.1
   network 1.1.1.1/32 area 0.0.0.0
   network 10.1.1.0/30 area 0.0.0.0
   max-lsa 12000
!
!
end

c7200


Building configuration...

Current configuration : 1343 bytes
!
! Last configuration change at 17:24:29 UTC Fri Sep 23 2016
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname c7200
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
!
interface FastEthernet0/0
 no ip address
 shutdown
 duplex half
!
interface FastEthernet1/0
 ip address 10.1.1.1 255.255.255.252
 duplex auto
 speed auto
 no keepalive
!
interface FastEthernet1/1
 ip address 20.1.1.1 255.255.255.252
 duplex auto
 speed auto
 no keepalive
!
router ospf 1
 router-id 5.5.5.5
 network 5.5.5.5 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0
 network 20.1.1.0 0.0.0.3 area 0
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
no cdp run
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
 shutdown
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
 transport input all
!
!
end


vEOS-2


! Command: show running-config
 ! device: vEOS-2 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
no lldp run
!
hostname vEOS-2
!
spanning-tree mode mstp
!
no aaa root
!
vlan 10
!
interface Ethernet1
   no switchport
   ip address 20.1.1.2/30
!
interface Ethernet2
   switchport access vlan 10
!
interface Ethernet3
!
interface Ethernet4
!
interface Loopback0
   ip address 2.2.2.2/32
!
interface Management1
!
interface Vxlan1
   vxlan source-interface Loopback0
   vxlan udp-port 4789
   vxlan vlan 10 vni 4096
   vxlan flood vtep 1.1.1.1
!
ip routing
!
router ospf 1
   router-id 2.2.2.2
   network 2.2.2.2/32 area 0.0.0.0
   network 20.1.1.0/30 area 0.0.0.0
   max-lsa 12000
!
!
end


후기



  • Cisco 장비가 underlay network으로 IP multicast를 사용함으로써 PIM ASM 똫는 PIM Bidir를 장비별로 요구하는데 반해, Unicast IP를 사용함으로써 Deployment의 제약이 적은것 같다.

2016년 9월 10일 토요일

Cisco CSR1000v VXLAN

Test Env.


  • GNS3 Local Server (1.5.2)
    • CSR1000v x 2 (3.14.02.S, Virtualbox, 1 CPU, 2.5G Memory)
    • c7200 x 1 (15.2(4)M8, Dyanmips)
    • Ostinato (VirtualBox 256 MB)


사전준비

Cisco 사이트에서 CSR 1000v ISO 파일을 준비한다.

CSR1000v Overview를 보면 VxLAN은 3.11s 버전부터 지원하며, License에 따라서 지원여부가 달라짐을 확인 할 수 있다.

3.12s 이하 버전에서는 다음과 같은 Command로 license를 변경할 수 있다.
csr1k_1(config)#license boot level premium

아래 사이트를 참고하여 VirtualBox에 ISO 파일로 VM을 생성한다.
GNS3에서 console 접속시 diag mode로 접속되므로 사이트에 나와 있는데도 virtualbox console 에서 아래 설정까지 수행한다.
Router(config)#platform console serial

GNS3에서 VirtulBox template를 등록한다.


CSR1000v VXLAN은 PIM BiDir mode에서만 동작한다. PIM BiDirectional mode는 PIM SM와 같이 RP는 선출하지만 (S,G)를 이용하지 않고 (*,G)만을 이용해서 서비스된다. 때문에 SPT를 관리해야하는 복잡도를 줄일 수 있다.

용어

  • NVE = Network Virtualization Edge
  • VNI(Vritual Network Instance) = Virtual Netowrk Instance
  • VTEP = VXLAN Tunnel End-Point

Test

각 VETP는 VNI를 매핑한 multicast address로 PIM join message를 전달한다. c7200 RP router에서 연결된 interface에 PIM join한 정보를 확인할 수 있다.

c7200#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group,
       V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
  
(*,224.0.0.0/4), 05:10:05/-, RP 5.5.5.5, flags: B
  Bidir-Upstream: Loopback0, RPF nbr: 5.5.5.5
  Incoming interface list:
    FastEthernet1/1, Accepting/Sparse
    FastEthernet1/0, Accepting/Sparse
    Loopback0, Accepting/Sparse
  
(*, 225.1.1.1), 05:10:04/00:03:21, RP 5.5.5.5, flags: B
  Bidir-Upstream: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet1/1, Forward/Sparse, 05:10:04/00:03:21
    FastEthernet1/0, Forward/Sparse, 05:10:04/00:02:51
  
(*, 224.0.1.40), 05:10:05/00:03:27, RP 5.5.5.5, flags: BCL
  Bidir-Upstream: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet1/0, Forward/Sparse, 05:10:04/00:02:43
    FastEthernet1/1, Forward/Sparse, 05:10:05/00:03:27
    Loopback0, Forward/Sparse, 05:10:05/00:02:48



CSR1000v-1#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group,
       G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
       N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
       Q - Received BGP S-A Route, q - Sent BGP S-A Route,
       V - RD & Vector, v - Vector, p - PIM Joins on route,
       x - VxLAN group
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
  
(*,224.0.0.0/4), 03:16:39/-, RP 5.5.5.5, flags: B
  Bidir-Upstream: GigabitEthernet1, RPF nbr: 10.1.1.1
  Incoming interface list:
    Tunnel0, Accepting/Sparse-Dense
    GigabitEthernet1, Accepting/Sparse
  
(*, 225.1.1.1), 03:16:55/stopped, RP 5.5.5.5, flags: BCx
  Bidir-Upstream: GigabitEthernet1, RPF nbr 10.1.1.1
  Outgoing interface list:
    Tunnel0, Forward/Sparse-Dense, 03:16:39/00:01:20
    GigabitEthernet1, Bidir-Upstream/Sparse, 03:16:39/stopped
  
(*, 224.0.1.40), 03:16:56/00:02:42, RP 5.5.5.5, flags: BPL
  Bidir-Upstream: GigabitEthernet1, RPF nbr 10.1.1.1
  Outgoing interface list:
    GigabitEthernet1, Bidir-Upstream/Sparse, 03:16:39/stopped

패킷을 전송했을때 learning되는 mac address-table


CSR1000v-1#show bridge-domain 1
Bridge-domain 1 (2 ports in all)
State: UP                    Mac learning: Enabled
Aging-Timer: 300 second(s)
    GigabitEthernet2 service instance 10
    vni 4096
   AED MAC address    Policy  Tag       Age  Pseudoport
   0   0000.0022.0000 forward dynamic   300  nve1.VNI4096, VxLAN
                                             src: 1.1.1.1 dst: 2.2.2.2
   0   0000.0011.0000 forward dynamic   300  GigabitEthernet2.EFP10
   1   FFFF.FFFF.FFFF flood   static    0    OLIST_PTR:0xe7fa0400

기타 VXLAN 관련 정보 확인


CSR1000v-1#show nve interface nve 1 detail
Interface: nve1, State: Admin Up, Oper Up Encapsulation: Vxlan
source-interface: Loopback0 (primary:1.1.1.1 vrf:0)
   Pkts In   Bytes In   Pkts Out  Bytes Out
      7157     486676      24479    1664572

CSR1000v-1#show nve vni
Interface  VNI        Multicast-group  VNI state
nve1       4096       225.1.1.1        Up

CSR1000v-1#show nve peers
Interface  Peer-IP          VNI        Peer state
   nve1    2.2.2.2          4096       -

Brodcast Traffic


Broadcast 패킷은 동일한 VNI를 사용하는 Peer VTEP 에 전달하기 위해 multicast address를 사용하여 PIM router에서 flooding 할 수 있도록 전달한다.


Unknown Unicast Traffic


MAC table에서 찾을 수 없는 DLF(Destination Lookup Failure) 패킷은 동일한 VNI를 사용하는 Peer VTEP 에 전달하기 위해 multicast address를 사용하여 PIM router에서 flooding 할 수 있도록 전달한다.


Known Unicast Traffic


Known unicast traffic은 해당 VTEP로 전달하기 위해 unicast packet으로 전달한다.


Configurfation

CSR1000v-1

Building configuration...

Current configuration : 1401 bytes
!
! Last configuration change at 08:16:33 UTC Thu Sep 22 2016
!
version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
platform console serial
!
hostname CSR1000v-1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
!
!
!
!
!
!
!
!
!


ip multicast-routing distributed

!
!
!
!
!
!
!
!
!
!
subscriber templating
!
multilink bundle-name authenticated
!
!
!
license udi pid CSR1000V sn 9N0GDTAC4IX
spanning-tree extend system-id
!
!
redundancy
bridge-domain 1
 member vni 4096
 member GigabitEthernet2 service-instance 10
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface nve1
 no ip address
 member vni 4096 mcast-group 225.1.1.1
 source-interface Loopback0
!
interface GigabitEthernet1
 ip address 10.1.1.2 255.255.255.252
 ip pim sparse-mode
 negotiation auto
 no keepalive
!
interface GigabitEthernet2
 no ip address
 negotiation auto
 no keepalive
 service instance 10 ethernet
  encapsulation untagged
 !
!
router ospf 1
 router-id 1.1.1.1
 network 1.1.1.1 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0
!
!
virtual-service csr_mgmt
!
ip forward-protocol nd
!
ip pim bidir-enable
ip pim rp-address 5.5.5.5 bidir
no ip http server
no ip http secure-server
!
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
line vty 0 4
 login
!
!
end

c7200

Building configuration...

Current configuration : 1633 bytes
!
! Last configuration change at 12:05:33 UTC Thu Sep 22 2016
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname c7200
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip multicast-routing
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
 ip pim sparse-mode
!
interface FastEthernet0/0
 no ip address
 shutdown
 duplex half
!
interface FastEthernet1/0
 ip address 10.1.1.1 255.255.255.252
 ip pim sparse-mode
 duplex auto
 speed auto
 no keepalive
!
interface FastEthernet1/1
 ip address 20.1.1.1 255.255.255.252
 ip pim sparse-mode
 duplex auto
 speed auto
 no keepalive
!
interface FastEthernet2/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet2/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
router ospf 1
 router-id 5.5.5.5
 network 5.5.5.5 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0
 network 20.1.1.0 0.0.0.3 area 0
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
ip pim bidir-enable
ip pim rp-address 5.5.5.5 bidir
!
no cdp log mismatch duplex
no cdp run
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
 shutdown
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
 transport input all
!
!
end

CSR1000v-2

Building configuration...

Current configuration : 1397 bytes
!
! Last configuration change at 05:07:32 UTC Thu Sep 22 2016
!
version 15.5
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
platform console serial
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
!
!
!
!
!
!
!
!
!


ip multicast-routing distributed

!
!
!
!
!
!
!
!
!
!
subscriber templating
!
multilink bundle-name authenticated
!
!
!
license udi pid CSR1000V sn 9VTUBY6X6YF
spanning-tree extend system-id
!
!
redundancy
bridge-domain 1
 member vni 4096
 member GigabitEthernet2 service-instance 10
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface nve1
 no ip address
 member vni 4096 mcast-group 225.1.1.1
 source-interface Loopback0
!
interface GigabitEthernet1
 ip address 20.1.1.2 255.255.255.252
 ip pim sparse-mode
 negotiation auto
 no keepalive
!
interface GigabitEthernet2
 no ip address
 negotiation auto
 no keepalive
 service instance 10 ethernet
  encapsulation untagged
 !
!
router ospf 1
 router-id 2.2.2.2
 network 2.2.2.2 0.0.0.0 area 0
 network 20.1.1.0 0.0.0.3 area 0
!
!
virtual-service csr_mgmt
!
ip forward-protocol nd
!
ip pim bidir-enable
ip pim rp-address 5.5.5.5 bidir
no ip http server
no ip http secure-server
!
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
line vty 0 4
 login
!
!
end

후기

  1. csr1000v ova 파일은 VMWare 으로 생성 후 GNS3에서 network adapter 문제로 실행되지 않았다.
  2. csr1000v ova 파일은 VirtualBox 이용시 에러가 발생하여 VM이 생성되지 않는다.
  3. Tagged Frame을 VXLAN으로 tunneling 하고자 했으나, 동작하지 않아 Untagged frame으로 시험하였다.

2016년 9월 5일 월요일

GNS3 IOU

개요

  1. CPU 부하가 낮다.
  2. Dynamips 는 한정된 종류의 Router만을 지원하지만 IOU는 Switch 기능까지도 제공한다.
  3. Cisco 내부에서만 사용되므로 비공개이다. (구글링으로 OS, License를 얻을 수 있다.)

준비물

  1. GNS3 VM, GNS all-in-one
  2. IOU Image (L2, L3 별도)
  3. IOU License

설치

1. GNS3 VM을 설치한다. https://github.com/GNS3/gns3-gui/releases

최신버전 1.5.2는 upload error가 발생하는 관계로 1.4.6 버전으로 설치함


2. GNS3 all-in-one를 설치한다. https://github.com/GNS3/gns3-gui/releases

all-in-one 은 Server와 GUI로 구성되어 있다. all-in-one 서버는 Local windows server이므로 IOU를 사용하기 위해서는 linux 머신인 GNS3 VM을 사용한다.

설치 마지막 화면에서 GNS3 VM을 등록하는 화면이 나온다.

Local GNS3 VM을 선택하고, Next

 자신이 설치한 GNS3 VM를 선택(여기서는 VMware 선택)하고, Next

차추에 등록해도 되므로 체크박스를 모두 해제하고 Finish


3. GNS3에 IOU image 올리기

IOU image List: https://www.gns3.com/discussions/iou-stable-images

IOU image name으로 구글링해보면 download 받을 수 있는 곳을 찾을 수 있다.



4. IOU License key 생성하기

Key Generator Code: https://gist.github.com/paalfe/8edd82f780c650ae2b4a

VMware에서 직접 shell을 선택해서 shell로 나가거나, SSH로 접속해서 shell을 선택해서 shell로 나갈 수 있다.


GNS3 VM에서는 Python3가 설치되어 있는데 반해 Key generator code는 Python2로 작성되어 있기 때문에 GNS3 VM에 python2를 설치해야 한다.
편집기로 nano가 설치되어 있지만 익숙치 않아서 vim도 같이 설치함

gns3@gns3vm:~$ sudo apt-get install -y vim python-minimal

Key Generator code가 있는 file을 생성하고 파일을 실행하면 License key가 생성된다.


출력된 내용을 shell 에 붙여넣기 하면 자동으로 등록된다.

gns3@gns3vm:~$ echo -e '[license]\ngns3vm = 73635fd3b0a13ad0;' | tee $HOME/.iourc
[license]
gns3vm = 73635fd3b0a13ad0;

gns3@gns3vm:~$ grep -q -F '127.0.0.1 xml.cisco.com' /etc/hosts || echo '127.0.0.1 xml.cisco.com' | sudo tee -a /etc/hosts


IOU Templates 등록

GNS3 GUI 에서 Edit/Preferences 에서 IOU template를 등록한다.


IOU L2 template를 등록한다.

동일한 방법으로 IOU L3 template를 등록한다.


2016년 9월 4일 일요일

Arista MLAG

개요


  1. 서로 다른 장비와 LACP 구성을 할 수 있어서 Link redundancy 뿐만 아니라 Node redundancy를 지원한다.
  2. 전체적으로는 Loop 구성이지만 STP로 인한 Block port가 발생하지 않아서 Bandwidth 효율성을 높일 수 있다.

Test Env.

  • Aboot-veos-8.0.0.iso
  • vEOS-lab-4.16.6M.vmdk
  • GNS3 VM 1.4.6 (6 CPU, 6 GB Mem)
    • 4 x vEOS (QEMU, 1,280 MB Mem)
    • 1 x Ostinato (256 MB Mem)


사전준비

GNS3 VM를 이용해서 vEOS를 QEMU로 생성하도록 한다.



Test

두 MLAG Switch간에 priority에 따라서 mlag sys-id를 선출한다.

MLAG-1의 lacp system-id



MLAG-2의 lacp system-id




이같이 선출된 mlag sys-id는 lacp-1, lacp-2 switch와 LACP를 맺을 때 system-id로 사용된다. 결국 LACP Switch는 동일한 system-id를 가진 PDU를 수신하게 된다.

LACP-1 e1 포트에서 tcpdump

MLAG-1이 보낸 PDU를 보면 Actor system id를 "00:00:ab:85:37:5e"로 보내고 있다.

LACP-1 e2 포트에서 tcpdump

MLAG-2이 보낸 PDU를 보면 Actor system id를 "00:00:ab:85:37:5e"로 보내고 있다.

MLAG-1 에서 show



절체

  • Iinitial traffic flow
    1. 1->2->6->8
    2. 8->6->2->1
  • Link 1 절체
    1. 1->3->7>8
    2. 8->6->4->3->1
  • Link 4 절체
    1. 1->3->7->8
    2. 8->6->5->3->1


Configuration

MLAG-1

! Command: show running-config
! device: mlag-1 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname mlag-1
!
spanning-tree mode mstp
no spanning-tree vlan 4094
!
no aaa root
!
vlan 30
!
vlan 4094
   trunk group mlagpeer
!
interface Port-Channel3
   switchport mode trunk
   mlag 3
!
interface Port-Channel4
   switchport mode trunk
   mlag 4
!
interface Port-Channel10
   switchport mode trunk
   switchport trunk group mlagpeer
!
interface Ethernet1
   channel-group 10 mode active
!
interface Ethernet2
   channel-group 10 mode active
!
interface Ethernet3
   channel-group 3 mode active
!
interface Ethernet4
   channel-group 4 mode active
!
interface Management1
!
interface Vlan4094
   no autostate
   ip address 10.0.0.1/30
!
no ip routing
!
mlag configuration
   domain-id mlag1
   local-interface Vlan4094
   peer-address 10.0.0.2
   peer-link Port-Channel10
!
!
end

MLAG-2

! Command: show running-config
! device: mlag-2 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname mlag-2
!
spanning-tree mode mstp
no spanning-tree vlan 4094
!
no aaa root
!
vlan 30
!
vlan 4094
   trunk group mlagpeer
!
interface Port-Channel3
   switchport mode trunk
   mlag 3
!
interface Port-Channel4
   switchport mode trunk
   mlag 4
!
interface Port-Channel10
   switchport mode trunk
   switchport trunk group mlagpeer
!
interface Ethernet1
   channel-group 10 mode active
!
interface Ethernet2
   channel-group 10 mode active
!
interface Ethernet3
   channel-group 3 mode active
!
interface Ethernet4
   channel-group 4 mode active
!
interface Management1
!
interface Vlan4094
   no autostate
   ip address 10.0.0.2/30
!
no ip routing
!
mlag configuration
   domain-id mlag1
   local-interface Vlan4094
   peer-address 10.0.0.1
   peer-link Port-Channel10
!
!
end

LACP-1

! Command: show running-config
! device: lacp-1 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname lacp-1
!
spanning-tree mode mstp
!
no aaa root
!
vlan 30
!
interface Port-Channel3
   switchport mode trunk
!
interface Ethernet1
   channel-group 3 mode active
!
interface Ethernet2
   channel-group 3 mode active
!
interface Ethernet3
   switchport access vlan 30
!
interface Ethernet4
!
interface Management1
!
no ip routing
!
!
end

LACP-2

! Command: show running-config
! device: lacp-2 (vEOS, EOS-4.16.6M)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname lacp-2
!
spanning-tree mode mstp
no spanning-tree vlan 4094
!
no aaa root
!
vlan 30
!
interface Port-Channel4
   switchport mode trunk
!
interface Ethernet1
   channel-group 4 mode active
!
interface Ethernet2
   channel-group 4 mode active
!
interface Ethernet3
   switchport access vlan 30
!
interface Ethernet4
!
interface Management1
!
no ip routing
!
!
end

후기

  • VEOS를 VMware를 통해 VM을 생성할려고 했으나, LACP구간에 Loop가 발생했다.
    • VirtualBox를 이용하는 경우는 정상 동작했으나, CPU 부하가 심했다.
  • 부하를 줄이기 위해 LACP VM은 Cisco IOU L2를 사용할려고 했으나 VEOS와 연동되지 않았다.
  • Ositnato에서 Packet을 100pps 보내면 CPU load가 심해서 그런지 일정시간 이후에는 VEOS에서 전혀 처리하지 못해서 10 pps만 보냈다.
  • Wireshark로 캡쳐할려고 했으나, QEMU간의 Link는 지원하지 않아서 VEOS의 Tcpdump를 이용했다.