목차

소개

배경 정보

방법론

연습

소개

이 문서에서는 SD-WAN 환경에서 GRE(Generic Routing Encapsulation) 인터페이스 문제를 해결하는 방법에 대해 설명합니다.

배경 정보

Cisco Viptela Solution에서 GRE 인터페이스의 활용 사례는 다음과 같습니다.

- vSmart Data-Policy 또는 로컬에서 ZScaller(HTTP-Proxy)로 트래픽을 전송합니다.

- 데이터 센터에 대한 기본 백업 기능이 있는 기본 서비스 GRE 인터페이스.

- 서비스 체인

GRE 인터페이스가 작동하지 않거나 작동하지 않을 수 있는 경우가 있습니다.

이러한 상황에서는

- GRE 인터페이스는 다음을 통해 작동/작동: show interface gre*

- GRE Keepalives via: show tunnel gre-keepalives

방법론

문제가 있는 경우 GRE(47) 패킷이 전송/수신 중인지 확인하기 위해 액세스 제어 목록(ACL 또는 액세스 목록)을 구성합니다.

패킷이 빠른 경로에 의해 생성되므로 TCP 덤프를 통해 GRE 패킷을 볼 수 없습니다.

NAT(Network Address Translation)로 인해 GRE Keepalive를 삭제할 수 있는 경우가 있습니다. 이 경우 keepalive를 비활성화하고 터널이 작동하는지 확인합니다.

또한 GRE 터널이 keepalive를 지속적으로 플래핑하고 비활성화하는 경우 인터페이스를 작동/작동 상태로 유지합니다.

그러나 GRE가 작동하지 않는다는 것을 알기 어려운 문제가 있는 경우 GRE가 문제가 됩니다.

예제를 보여 주는 문서에서 여기를 참조하십시오.

작동 중인 GRE 인터페이스 컨피그레이션입니다.

VPN0에서

vpn 0

interface gre1

ip address 192.0.2.1/30

tunnel-source

tunnel-destination

tcp-mss-adjust     1300

no shutdown

!

interface gre2

ip address 192.0.2.5/30

tunnel-source

tunnel-destination

tcp-mss-adjust     1300

no shutdown

!

!

IN 서비스 쪽

vpn

service FW interface gre1 gre2

vEdge 경로를 기반으로 하는 Cisco SD-WAN 솔루션에서 GRE 인터페이스는 액티브-액티브(Active-Active)가 아니라 액티브-스탠바이(Active-Standby)로 작동합니다.

언제든지 Up/Up 상태인 GRE 인터페이스만 있습니다.

연습

액세스 목록에 대한 정책 생성

vEdge# show running-config policy access-list

policy

access-list GRE-In

sequence 10

match

protocol 47

!

action accept

count gre-in

!

!

default-action accept

!

access-list GRE-Out

sequence 10

match

protocol 47

!

action accept

count gre-out

!

!

default-action accept

!

!

vEdge#

카운터 gre-in 및 gre-out을 생성한 다음 인터페이스에 ACL을 적용해야 합니다(터널은 ge0/0을 초과함).

위의 ACL은 물리적 인터페이스의 소스 주소와 GRE 엔드포인트의 대상 주소로 적용할 수 있습니다.

vEdge# show running-config vpn 0 interface ge0/0

vpn 0

interface ge0/0

ip address 198.51.100.1/24

tunnel-interface

encapsulation ipsec

max-control-connections 1

allow-service all

no allow-service bgp

allow-service dhcp

allow-service dns

allow-service icmp

no allow-service sshd

no allow-service netconf

no allow-service ntp

no allow-service ospf

no allow-service stun

!

no shutdown

access-list GRE-In in

access-list GRE-Out out

!

!

vEdge#

이제 GRE 패킷의 수신 및 발신 카운터가 빠른 경로에 있으므로 tcpdump 유틸리티로 확인할 수 없습니다.

vEdge# show policy access-list-counters

COUNTER

NAME     NAME     PACKETS  BYTES

----------------------------------

GRE-In   gre-in   176      10736

GRE-Out  gre-out  88       2112

vEdge#

이것은 우리의 GRE 터널입니다.

vEdge# show interface gre1

IF      IF      IF                                                               TCP

AF                ADMIN   OPER    TRACKER  ENCAP  PORT                              SPEED          MSS                 RX       TX

VPN  INTERFACE  TYPE  IP ADDRESS  STATUS  STATUS  STATUS   TYPE   TYPE     MTU   HWADDR             MBPS   DUPLEX  ADJUST  UPTIME      PACKETS  PACKETS

---------------------------------------------------------------------------------------------------------------------------------------------------------

0    gre1      ipv4  192.0.2.1/30 Up    Up      NA       null   service  1500  05:05:05:05:00:00  1000   full    1420    0:07:10:28  2968     2968

vEdge#

vEdge# show running-config vpn 0 interface gre1

vpn 0

interface gre1

ip address 192.0.2.1/30/30

tunnel-source-interface ge0/0

tunnel-destination 192.0.2.5/30

no shutdown

!

!

vEdge#

show app cflowd flows 명령을 통해 트래픽이 GRE 인터페이스에서 이동하는지 확인할 수 있습니다.

다음은 양방향 트래픽(인그레스(ingress)과 이그레스(egress)의 예를 보여 주는 예입니다.

vEdge# show app cflowd flows

TCP                                                                                  TIME    EGRESS  INGRESS

SRC   DEST         IP     CNTRL  ICMP                 TOTAL    TOTAL      MIN  MAX                             TO      INTF    INTF

VPN  SRC IP        DEST IP        PORT  PORT   DSCP  PROTO  BITS   OPCODE  NHOP IP      PKTS     BYTES      LEN  LEN   START TIME                EXPIRE  NAME    NAME

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

10   203.0.113.1  203.0.113.11  61478 443    0     6      16     0       203.0.113.254 3399     286304     60   1339  Sun Apr  8 10:23:05 2018  599     gre1    ge0/6

10   203.0.113.11  203.0.113.1  443   61478  0     6      24     0       203.0.113.1262556     192965     40   1340  Sun Apr  8 10:23:05 2018  592     ge0/6   gre1

GRE 인터페이스에서 KA(keepalive)를 비활성화하는 예:

기본 KA는 10(hello-interval) 및 3(tolerance)입니다.

KA가 0이면 GRE 인터페이스에서 KA를 비활성화합니다.

vEdge# show running-config vpn 0 interface gre* | details

vpn 0

interface gre1

description         "Primary ZEN"

ip address <ip/mask>

keepalive 0 0

tunnel-source

tunnel-destination

no clear-dont-fragment

mtu                 1500

tcp-mss-adjust      1300

no shutdown

!

UP/Down인 GRE 인터페이스가 UP/UP로 표시됩니다(KA 검사를 통해).

KA가 꺼져 있을 때 TX 카운터가 증가하므로 TX 카운터를 참조하십시오.  즉, vEdge가 패킷의 TX이지만 원격 문제를 가리키는 RX 카운터가 증가하지 않습니다.

vEdge# show interface gre*

IF      IF                                                              TCP

ADMIN   OPER    ENCAP  PORT                              SPEED          MSS                 RX         TX

VPN  INTERFACE  IP ADDRESS       STATUS  STATUS  TYPE   TYPE     MTU   HWADDR             MBPS   DUPLEX  ADJUST  UPTIME      PACKETS    PACKETS

---------------------------------------------------------------------------------------------------------------------------------------------------

### With KA ON

0    gre1       192.0.2.1/30  Up      Down    null   service  1500  cb:eb:98:02:00:00  -      -       1300    -           413218129  319299248

### With KA OFF

0    gre1       192.0.2.1/30  Up      Up      null   service  1500  cb:eb:98:02:00:00  100    half    1300    0:00:01:19  413218129  319299280