목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

터널 성능 통계 계산

손실과 관련된 BFD 값의 예

소개

이 문서에서는 BFD Hello 패킷과 App-Aware Routing Tunnel 통계 간의 관계에 대해 설명합니다.

사전 요구 사항

요구 사항

Cisco에서는 다음 항목에 대해 알고 있는 것이 좋습니다.

- Cisco Catalyst SD-WAN(Software-Defined Wide Area Network).

- 애플리케이션 인식 라우팅.

- BFD.

사용되는 구성 요소

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

- Cisco Catalyst SD-WAN Manager.

- Cisco IOS® XE Catalyst SD-WAN Edge.

배경 정보

BFD(Bidirectional Forwarding Detection) 프로토콜은 Cisco IOS-XE Catalyst SD-WAN 디바이스 간 모든 데이터 플레인 터널을 통해 실행됩니다. 이 프로토콜은 Loss, Jitter 및 Latency로 보고된 터널 성능과 같은 터널의 라이브니스 및 경로 특성을 모니터링하는 데 사용됩니다.

에지 디바이스는 BFD Hello 프로브를 사용하여 터널의 패킷 손실, 지터 및 레이턴시를 측정합니다. 이러한 통계는 각 BFD Hello 프로브에 대해 계산되며 폴링 간격이라는 슬라이딩 기간에 적용됩니다.

이러한 손실, 레이턴시 및 지터 통계는 애플리케이션 인식 라우팅에서 정책에 설정된 요구 사항(SLA 클래스라고 함)을 기반으로 트래픽을 전달하는 데 사용됩니다. 이 요구 사항에서는 데이터 전달을 위해 선택한 터널에서 허용되는 최대 손실, 지터 및 레이턴시를 결정합니다.

이 때문에 BFD값의 변화가 터널 성능 계산에 어떤 영향을 줄 수 있는지, 원칙적으로 손실을 의미하는지를 파악하는 것이 매우 중요하다. BFD 매개변수는 다음과 같습니다.

매개변수

기본값

범위

Use

BFD hello 간격

1초

1~65535초

터널 연결의 라이브니스를 탐지하고 터널의 결함을 탐지하기 위한 패킷입니다.

폴링 간격

10분

(60만 밀리초)

1~4,294,967밀리초

통계를 제공하기 위해 버킷 측정값을 계산하는 빈도입니다.

승수

6

1~6

평균 손실, 평균 대기 시간 및 평균 지터를 계산하는 시간을 지정하기 위해 폴링 간격을 곱하는 값입니다.

이 값은 버킷의 수를 결정합니다.

터널 성능 통계 계산

기본값으로 설정된 BFD 매개변수의 경우 통계 계산은 다음과 같이 수행됩니다.

폴링 간격/BFD Hello 간격 = 600,000ms/1000ms = 버킷당 600BFD Hello.

승수가 6으로 설정되었으므로 6개의 버킷을 사용하여 평균 지연, 지터 및 손실을 계산함을 의미한다. 기본값은 1시간입니다. 이 총 시간을 app-route 간격이라고도 합니다.

앱 경로 간격 = 폴링 간격 * 배수 = 600,000ms x 6 = 3,600,000ms = 1시간 같음.

App-Aware Routing에서는 App-Route 통계를 계산하여 데이터 평면의 변경 사항을 확인합니다. Edge 디바이스가 앱 경로 통계를 활용하려면 허용되는 최대 패킷 지터, 손실 및 레이턴시가 설정된 AAR 정책에 SLA 클래스를 지정해야 합니다. 이러한 SLA 클래스는 SLA에 따라 지정된 애플리케이션에 대한 트래픽을 라우팅하기 위해 AAR 정책에서 사용됩니다.

에지 디바이스에 구성되면 AAR 통계를 사용하여 모든 버킷(전체 앱 경로 간격)으로 계산된 통계에서 제공하는 평균 손실, 평균 레이턴시, 평균 지터와 비교합니다. 또한 SLA는 기본적으로 10분마다 각 폴링 간격 후에 업데이트됩니다.

평균 손실, 평균 지터 및 평균 레이턴시를 구하려면 다음과 같은 방정식을 사용합니다.

평균 손실 = (모든 버킷의 총 손실 * 100) / 총 패킷.

평균 레이턴시 = (모든 버킷의 총 손실)/버킷의 양.

평균 지터 = (모든 버킷의 총 지터)/버킷의 양.

각 버킷의 평균과 함께 이러한 값의 계산은 CLI에서 다음과 같이 검토할 수 있습니다.

vEdge#show app-route stats

cEdge#show sdwan app-route stats

GUI에서는 평균 손실, 평균 레이턴시, 평균 지터만 Monitor(모니터) > Overview(개요) > Application-Aware Routing(애플리케이션 인식 라우팅) 섹션에서 검토할 수 있습니다.

또한 Monitor(모니터) > Devices(디바이스) > Select Device(디바이스 선택) > WAN > Tunnel(터널) 섹션에서 검토할 수 있습니다.

손실과 관련된 BFD 값의 예

BFD Hello는 구성 가능한 값이므로 요구 사항에 따라 수정할 수 있습니다. 그러나 신중하게 고려한 후 수정해야 합니다. 그렇지 않으면 BFD 값에 따라 평균 손실 계산의 정확도가 달라지므로 왜곡된 계산이나 오탐 통계가 수신될 수 있습니다. 예를 들어, 기본값은 다음과 같습니다.

매개변수

기본값

BFD hello 패킷

1초

폴링 간격

(60만 밀리초)

10분

승수

6

vEdge1# show app-route stats

app-route statistics 10.100.100.2 10.200.200.4 ipsec 12366 12346

remote-system-ip 10.1.1.1

local-color      private1

remote-color     private1

mean-loss        1

mean-latency     110

mean-jitter      51

sla-class-index  0,2

IPV6 TX  IPV6 RX

TOTAL          AVERAGE  AVERAGE  TX DATA  RX DATA  DATA     DATA

INDEX  PACKETS  LOSS  LATENCY  JITTER   PKTS     PKTS     PKTS     PKTS

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

0     596       7     110      50        0        0        0        0

1     596       5     111      50        0        1        0        0

2     597      13     111      53        0        0        0        0

3     594       4     111      53        0        0        0        0

4     596       5     110      50        0        0        0        0

5     594      12     111      50        0        2        0        0

평균 손실 = ((7+5+13+4+5+12)100)/ (596+596+597+594+596+594)

= 4600/3573

= 1.28 ~ 1%

평균 레이턴시 = (110+111+111+111+110+111)/6

= 110.66 ~ 110ms

평균 지터 = (50+50+53+53+50+50) / 6

= 3/6 = 51ms

주: 완료된 각 계산에 대해 정수 값만 표시됩니다. 10진수가 정확한 결과인 경우에도 정수 값은 가장 가까운 가장 낮은 정수로 반올림됩니다.

일반적으로 는 이러한 값을 수정하여 계산 빈도를 높이는 것이 좋지만 큰 영향을 미칠 수 있습니다. 예를 들어 기본값 대신 폴링 간격이 다음과 같이 수정됩니다.

매개변수

기본값

BFD hello 패킷

1초

폴링 간격

(6만 밀리초)

1분

승수

6

이 변경은 600이 아닌 1 x 60 = 버킷당 60개의 패킷을 기본값으로 사용함을 의미합니다. 평균 손실의 결과:

vEdge1# show app-route stats

app-route statistics 10.100.100.2 10.200.200.4 ipsec 12366 12346

remote-system-ip 10.1.1.1

local-color      private1

remote-color     private1

mean-loss        3

mean-latency     112

mean-jitter      51

sla-class-index  0,2

IPV6 TX  IPV6 RX

TOTAL          AVERAGE  AVERAGE  TX DATA  RX DATA  DATA     DATA

INDEX  PACKETS  LOSS  LATENCY  JITTER   PKTS     PKTS     PKTS     PKTS

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

0     59       1     113      53        0        0        0        0

1     60       3     111      52        0        1        0        0

2     59       1     111      51        0        1        0        0

3     60       3     111      50        0        1        0        0

4     60       2     115      50        0        0        0        0

5     59       1     111      50        0        2        0        0

평균 손실 = ((1+3+1+3+2+1)*100)/(59+60+59+60+60+59)

= (1100)/ 357

= 3.08 ~ 3%

이 시점에서 예를 들어 SLA 클래스가 최대 손실 3으로 설정된 경우 터널이 SLA 위반의 제한에 포함됩니다. 그러나 폴링 간격이 다음과 같이 수정된 경우:

매개변수

기본값

BFD hello 패킷

1초

폴링 간격

(6,000밀리초)

1초

승수

6

이 변경은 600이 아니라 버킷당 1 x 6 = 6개의 패킷을 기본값으로 사용함을 의미합니다. 평균 손실의 결과:

vEdge1# show app-route stats

app-route statistics 10.100.100.2 10.200.200.4 ipsec 12366 12346

remote-system-ip 10.1.1.1

local-color      private1

remote-color     private1

mean-loss        17

mean-latency     110

mean-jitter      0

sla-class-index  None

IPV6 TX  IPV6 RX

TOTAL          AVERAGE  AVERAGE  TX DATA  RX DATA  DATA     DATA

INDEX  PACKETS  LOSS  LATENCY  JITTER   PKTS     PKTS     PKTS     PKTS

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

0     5       1     113      2        0        0        0        0

1     6       1     110      1        0        1        0        0

2     6       1     111      2        0        0        0        0

3     6       0     111      0        0        0        0        0

4     6       1     111      0        0        0        0        0

5     6       1     111      0        0        2        0        0

평균 손실 = ((5)100)/(5+6+6+6+6+6)

= (500)/29

= 17.24 ~ 17%

측정에 사용되는 패킷 수를 올바르게 확인하지 않고 폴링 간격을 줄일지 여부, 평균 손실에 영향을 미칠 수 있습니다. 풀 간격을 늘리지 않고 bfd hello-interval을 늘리는 경우에도 마찬가지입니다.

마지막 예에서는 계산을 수행하는 데 사용되는 패킷이 매우 적고 패킷이 하나만 손실되므로 평균 손실에 큰 영향을 줄 수 있습니다. 이러한 계산의 결과는 여러 번의 매우 빈번한 장애 조치가 있는 앱 인식 정책 동작입니다.

이 설명의 목적은, 반대로, 많은 상황에서 그러한 프로브가 수정되어야 하는 이러한 값의 수정을 피하기 위한 것이 아닙니다. 이는 네트워크 요구 사항에 따라 완전히 달라지지만, 이러한 hello 패킷을 줄일 수 있는 정도를 검토하는 것이 매우 중요합니다.

폴링 간격을 전역으로 수정하는 컨피그레이션 명령은 다음과 같습니다.

vEdge(config)# bfd app-route poll-interval 600000