HSRP와 ECMP의 조합에 대한 모범 사례


19

ECMP (또는 비대칭 경로의 다른 원인)와 HSRP 의 조합은 기본적으로 Cisco IOS에서 손상됩니다. 이 디자인의 기본 동작은 유니 캐스트 트래픽을 과도하게 초과시킵니다.

알려지지 않은 유니 캐스트 플러딩을 방지하기 위해 ECMP와 함께 HSRP를 사용하는 가장 좋은 방법은 무엇입니까?

세부 정보 / 배경

우리는 많은 시설에서 아래 첫 번째 다이어그램과 유사한 HSRP 토폴로지를 가지고 있습니다. Cisco WAN 라우터에는 다른 모든 사이트에 대한 동일한 비용의 경로가 있습니다. 따라서 우리는 항상 비대칭 라우팅 효과를 볼 수 있습니다. 일반적으로 R1을 HSRP 기본으로 지정하지만 ECMP는 R1 또는 R2를 통한 리턴 트래픽을 허용합니다.

문제는 PC1이 WAN을 통해 원격 iSCSI 드라이브를 마운트 할 때 트래픽이 R1을 통해 사이트를 떠나지 만 R2를 통해 돌아올 수 있다는 것입니다. iSCSI 트래픽이 R1을 통해 반환되는 한 문제가 없습니다.

HSRP_Broken_00

PC1의 트래픽이 R2를 통해 반환 될 때 문제가 발생합니다. iSCSI 세션이 8:00:00에 시작하고 라우터와 스위치 모두 PC1의 Mac을 동시에 학습한다고 가정합니다. 8:00:00과 8:00:05 사이에는 두 스위치 모두 여전히 CAM 테이블에 PC1의 mac 주소가 있으므로 플러딩 문제가 없습니다.

HSRP_Broken_01

iSCSI 세션이 시작된 후 5 분이 지나면 PC1의 mac에 대한 S2의 CAM 항목이 CAM 테이블에서 만료되고 S2는 PC1의 트래픽을 모든 포트 (이 경우 Po1, Gi0 / 3 및 Gi0 / 4)로 넘칩니다. PC1의 iSCSI 세션이 많은 대역폭을 소비하는 경우,이 알려지지 않은 유니 캐스트 플러딩은 PC3 및 PC4 링크에서 사소한 용량을 흡수 할 수 있습니다.

Cisco IOS 스위치의 기본 CAM 타이머는 300 초입니다.

S2# show mac address-table aging-time
Vlan Aging Time
---- ----------
1    300
17   300

그러나 Cisco IOS의 기본 인터페이스 ARP 타이머는 4 시간입니다.

R2# show interface gi0/0
GigabitEthernet0/0 is up, line protocol is up 
  Hardware is AmdP2, address is 000a.dead.beef (bia 000a.dead.beef)
  Internet address is 172.17.1.252/24
  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  ARP type: ARPA, ARP Timeout 04:00:00       <--------------

따라서 S2는 5 분 후에 PC1의 iSCSI 트래픽을 플러딩하기 시작합니다.

HSRP_Broken_02


사람들이 계속 질문을 게시 한 다음 스스로 대답하는 이유는 무엇입니까? 에서와 같이, 검색하고 답을 찾았습니다. 이것은 블로그가 아닌 Q & A 사이트입니다 (잘 작성하지 않았습니다!)
jwbensley

8
@javano : SE는 자체 응답을 명시 적으로 권장합니다. ref meta.networkengineering.stackexchange.com/questions/4/…
Craig Constantine

1
@CraigConstantine 예, 알고 있습니다. 그러나 사람들이 질문에 대한 답변을 알아 낸 후 (5 분 후에도) 해협에 답한 후에는 해협에 답할 것이라고 확신합니다. 질문을 게시하기 전에 이미 답변을 알고 있었기 때문입니다. 나는 이것이 조금 이상하다고 생각한다.
jwbensley

6
그러나 Q와 즉각적인 답변을 작성하는 것이 명시 적으로 권장된다는 사실은 여전히 ​​남아 있습니다.
크레이그 콘스탄틴

4
@ javano, 다른 사람들이 직면 할 것으로 생각되는 문제를 해결하면 SE 해당 문제의 해결을 위해 검색 엔진 트래픽을 원합니다 ... 동시에 답변을 게시하는지 여부는 상관하지 않습니다 ... 실제로, 질문 웹 양식의 맨 아래에는 "자신의 질문에 답하십시오 – 지식을 공유하십시오, Q & A 스타일"에 대한 작은 확인란이 있습니다.
Mike Pennington

답변:


14

간단한 대답은 CAM 타이머를 해당 인터페이스 ARP 타이머같거나 약간 길게 만드는 것입니다. 그러나 선택할 수있는 적어도 세 가지 옵션이 있습니다 ...

옵션 1 : 모든 인터페이스 ARP 타이머 낮추기

이 옵션은 적당한 크기의 layer2 교환 네트워크, 합리적인 수의 ARP 항목 및 라우팅 된 인터페이스가 거의없는 경우에 가장 효과적입니다. 이 방법은 PC mac 항목이 토폴로지에서 빨리 만료되는 것을보고자하는 경우에도 바람직합니다.

  • 이더넷 스위치를 향한 모든 IOS 이더넷 인터페이스에서 : arp timeout 240
  • 이더넷 스위치에 직면 모든 IOS 이더넷 인터페이스에서 : hold-queue 200 inhold-queue 200 out(이러한 제한이 높은, 또는 당신은 당신이 한 번에 처리 할 필요가 있다고 생각 얼마나 많은 ARP 새로 고침에 따라 낮출 수) 정기 ARP-새로 고침 동안 ARP 패킷을 떨어 뜨리지 않도록합니다. 선택적인 패킷 버리기 값을 조정하는 경우 링크 된 용지의 지침을 따라야합니다.

이렇게하면 지정된 ARP 항목에 대해 달리 발생하지 않은 경우 Cisco IOS가 4 분 이내에 ARP 테이블을 새로 고칩니다. 명백한 단점은 ARP 항목이 많으면 확장 성이 좋지 않다는 것입니다. 한도는 플랫폼에 따라 다릅니다. Catalyst 4500/6500 (Layer3 SVI)에서 라우터 당 수백 개의 ARP를 문제없이 사용했습니다.

옵션 2 : 스위치 CAM 타이머 늘리기

이 옵션은 많은 ARP 항목이있는 경우에 가장 효과적입니다 (예 : 격렬한 VMWare 환경과 같은 수천 개).

  • 모든 IOS 스위치 : mac address-table aging-time 14400또는 mac address-table aging-time 14400 vlan <vlan-id>관심있는 Vlan의 경우.

이 변경은 대부분의 사람들이 300 초로 고정한다고 가정하는 타이머를 조정하므로 (Cisco IOS에서)이를 연속 문서에 포함시켜야합니다. 이것의 부작용은 PC를 제거한 후 4 시간 동안 CAM 테이블 항목이 남아 있다는 것입니다 (PoV에 따라 양호 또는 불량). 4 시간이 너무 길면 다음 옵션을 참조하십시오.

옵션 3 : 인터페이스 ARP 타이머와 스위치 CAM 타이머 모두 변경

이 옵션은 더 많은 구성 비용으로 옵션 2에서 엄청나게 긴 CAM 타이머를 방지합니다. 900 초, 1800 초 또는 기타 필요한 항목을 선택할 수 있습니다. CAM 및 ARP 타이머가 일치하는지 확인하십시오. 따라서 토폴로지에서 옵션 1과 옵션 2를 모두 구성해야합니다.


4
우리는이 문제를 첫 번째 제안 된 솔루션을 선택하여 정렬했지만 IOS가 테이블을 정리하는 순서를 확신하지 못한 다음 ARP 시간 제한을 293 (mac-address 테이블 시간 제한보다 가장 가까운 소수)으로 설정했습니다. 이것이 좋은 선택인지 아닌지 아직도 모릅니다
Marco Marzetti

1
기술적으로 Cisco IOS는 60 초 간격으로 ARP 워커를 실행 하므로 240을 사용해야합니다. 제 답변에 포함하지 않으려 고 편집했습니다 ... 왜 소수를 선택했는지 궁금합니다.
Mike Pennington

ACK. MAC 시간 초과 이하의 ARP 시간 초과는 BCP 여야합니다. HSRP가 필요하지 않습니다. 라우터가 두 개인 경우에 물릴 수 있고 루프가 발생할 수도 있습니다.
ytti

몰랐다. 따라서 우리의 트릭은 전혀 쓸모가 없습니다. 타이머의 겹침을 최소화하기 위해 소수를 선택했습니다.
Marco Marzetti

4
@ MikePennington, 감사합니다. 어쨌든 당신은 옳습니다 ARP 시간 초과 해결은 몇 분 안에 구현됩니다
Marco Marzetti

1

나에게 ECMP는 실제 문제이므로 알 수없는 유니 캐스트 플러딩을 제한하는 위의 단계 외에도 R1이 반환 트래픽에 대해 R2보다 선호되도록 WAN을 향한 경로 메트릭을 조정할 수도 있습니다. 이를 달성하는 한 가지 방법은 다음과 같이 R2의 분배 목록을 사용하는 것입니다.

!
ip 접두사-목록 R1-PREFER seq 5 허가 172.17.1.0/24
!
경로 맵 R1-PREFER-MAP 허용 10
 IP 주소 접두사 목록 일치 R1-PREFER
 메트릭 설정 1 1 1 1 1
... (다른 모든 경로 허용)
!
라우터 eigrp 1
 ....
 배포 목록 경로 맵 R1-PREFER-MAP 출력 Ser1 / 0
 ....
!

이로 인해 WAN은 172.17.1.0의 모든 트래픽을 R1으로 전달합니다. R1 Se1 / 0이 실패하면 경로는 R2를 향하여 설치됩니다. R2 로의 백업 경로가 실제로보다 빠른 장애 조치를위한 적절한 후속 작업이되도록 이러한 메트릭을 추가로 조정할 수 있습니다. HSRP 및 추적은 송신 트래픽을 처리합니다.


본질적으로 당신은 내 질문 대신 당신이 원하는 질문에 대답합니다 ... fhrp와 ecmp가 모두 필요합니다
Mike Pennington

죄송합니다.이 포럼에 익숙해지고 해당 요구 사항을 놓쳤습니다!
smoothbSE

문제 없습니다 ... :) NE에 오신 것을 환영 없다
마이크 페닝 턴

0

HSRP가 사용 중일 때 ECMP를 사용하지 않는 경우 PC 상황에서 수신 트래픽이 송신 트래픽보다 높을 수있는 서버에서는 정상일 수 있습니다. 우리는 대부분의 사람들이 ARP 타이머를 설정하는 것을 좋아합니다. 그러나 레이어 3 스위치가있는 MDF와 2 개의 수집 스위치가있는 IDF, 5 개의 액세스 스위치가 있으면 L3 SVI에서 모든 액세스 스위치를 구성하는 것보다 훨씬 쉽게 구성 할 수 있습니다.


0

스위치 스택을 사용하여 두 번째 스위치에서 MAC 주소 입력 만료 문제를 완화 할 수 있습니다.


0

아, 기억 나 몇 주 전의 재밌는 일이 몇 일 전에 해결되었습니다. 한 가지 주름은 STP 이벤트가 VLAN을 빠른 에이징 모드로 전환하므로 ARP 타이머보다 MAC 타이머를 길게 설정해도 도움이되지 않는다는 것입니다

각 라우터마다 1 개의 기본으로 두 개의 플로팅 HSRP 게이트웨이를 생성하여 서버에서 ECMP를 강제로 되돌려 문제를 해결했습니다. 그런 다음 각 호스트에서 두 게이트웨이를 모두 구성했습니다. 이러한 방식으로 호스트 트래픽을 R1과 R2에 모두 강제함으로써 R2가 MAC 주소를 만료시키지 않을 것입니다.

이상적으로 L2 / 3 스위치가 만료 된 MAC 주소와 관련된 ARP 항목을 제거한 경우에는 문제가되지 않습니다. IP에 대한 다음 패킷은 ARP 캐시와 MAC 테이블을 모두 채우는 새로운 ARP 요청을 초래합니다. 내가 생각하는 시스코 결국이 구현,하지만 확실히 말할 수 없습니다.


0

요약 : MC-LAG 또는 HSRP GARP

나는 타이머를 조정하는 팬이 아닙니다. 타이머는 일반적으로 여러 가지 이유로 특정 방식으로 설정됩니다. 그들을 변경 :

  • 모든 곳에서 동일하게 유지하기 위해 잠재적으로 운영 집약적입니다.
  • 일을 더 복잡하고 어렵게 만듭니다.
  • 최근의 논평자가 보여 주듯이, 예기치 않은 부작용이있을 수 있습니다
  • 향후 시스코 향상으로 "멋지게"재생되지 않을 수 있음

번갈아:

  1. MC-LAG (Cisco 설명서에서 "MEC")를 사용하십시오. MC-LAG를 사용할 수있는 배포 시나리오 (범용 솔루션이 아니며 적절한 연구 및 테스트 후에 만 ​​배포)를 이해해야하지만 이것이 최선의 선택입니다. MC-LAG 변형은 하드웨어에 따라 다릅니다. 예를 들면 다음과 같습니다.

    ㅏ. 스태킹 (고양이 3k)

    비. VSS (Cat4k / 6k)

    씨. VPC (넥서스)

    디. 유사 mLACP (ASR1k)

    이자형. MC-LAG (ASR9k)

    에프. 클러스터링 (ASA)

  2. HSRP가 정기적으로 Gratuitous ARP 패킷을 보내도록합니다 . 물론 이것은 타이머 변경과 유사하지만 CAM 테이블 및 ARP 타이머를 조작하는 것보다 훨씬 더 우아한 변경입니다. (단, 하드웨어 및 소프트웨어 조합에 따라 다르지만 모든 HSRP 구현에서이 기능을 제공하지는 않습니다.)

    기본적으로 HSRP는 라우터가 전달 게이트웨이가 된 후 0, 2 및 4 초에 3 개의 GARP를 보냅니다. 그러나 GARP 수 ( "무한"포함) 및 간격을 선택할 수있는 구성 매개 변수가 있습니다.

MC-LAG, 특히 VSS, VPC 및 클러스터링을 상당히 광범위하게 사용합니다 (스태킹 팬이 아닙니다).

MC-LAG 또는 GLBP를 사용할 수없는 곳에서는 이것이 캠퍼스 L2 / L3 경계 라우터에 적용되는 것입니다 (350 빌딩 캠퍼스가 있으므로 Cat6k를 상당히 많이 사용합니다).

Cat6k-v15(config)#interface vlan 100
Cat6k-v15(config-if)#standby arp ?
  gratuitous  Setup gratuitous ARP interval and count

Cat6k-v15(config-if)#standby arp gratuitous ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count ?
  <0-60>  Number of gratuitous ARPs to send after group is activated (0 for continuous)

Cat6k-v15(config-if)#standby arp gratuitous count 0 ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval ?
  <3-1800>  Gratuitous ARP Interval (sec)

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval 60 ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval 60 

(이 모든 것에 대한 참조를 게시 할 것이지만이 사이트에 두 개 이상의 URL을 게시 할만큼 충분한 "평판"이 없습니다.)


MC-LAG라고 부르는 것은 확실히 옵션이지만 고전적인 IOS 플랫폼에서의 가용성은 희박합니다. 또한 HSRP Gratuitous ARP가이 문제를 해결하는 데 도움이되는 방법이 없습니다. 내 질문에있는 예를 사용하여 HSRP Gratuitous ARP가 ARP 진입 시간 초과 172.17.1.1을 어떻게 해결하는지 자세히 설명 할 수 있습니까? 기본 GW는 172.17.1.254
Mike Pennington

긴 대답이므로이 부분을 두 부분으로 나누겠습니다. 1 부 ... HSRP의 문제점은 라우터가 가상 MAC을 사용하여 ARP 쿼리에 응답한다는 것입니다. 그러나 라우터가 데이터 그램을 호스트에 전달할 때 실제 MAC 주소를 사용합니다 . 스위치는 포워딩 테이블을 상당히 빠르게 (일반적으로 300 초 또는 5 분) 지 웁니다. 그러나 ARP 항목은 종종 그보다 훨씬 더 오래 붙어 있습니다 (8 시간이 일반적 임).
Weylin Piegorsch

2 부 ... 스위치가 전달 테이블에서 가상 MAC 주소를 시간 초과 한 후 서버에서 가상 MAC으로의 트래픽은 "알 수없는 유니 캐스트"가됩니다. 여기서 스위치는 기본적으로 허브와 유사한 동작으로 설정되고 트래픽이 모두 쇄도합니다. 포트. GARP를 주기적으로 보내면 라우터가 스위치 전달 테이블을 새로 고칩니다. 또한 GARP를 전송하여 서버의 ARP 테이블을 새로 고쳐 ARP 쿼리를 보낼 필요가 없습니다.
Weylin Piegorsch

2 부 답변에 이어 2 번째 질문은 서버의 MAC 주소가 라우터의 가상 MAC이 아니라 스위치에서 플러시되고 반대 방향에서 묻는다는 것을 깨달았습니다. 우리는이 특정 문제 가 있었고 MC-LAG (특히 VPC)를 통해 처음에 문제를 해결했으며 나중에 Nexus를 사용하고 있기 때문에 FabricPath (일명 TRILL)로 전환하여 문제를 해결했습니다. 그러나 둘 다 하드웨어 및 토폴로지에 따라 다릅니다.
Weylin Piegorsch

방금 내 원래 의견이 유효하다는 것을 깨달았습니다. MC-LAG뿐만 아니라 두 계층의 MC-LAG 그런 다음 스위치 수준과 라우터 수준 모두에서 공유 CAM 테이블을 처리합니다.
Weylin Piegorsch

0

방금 내 원래 의견이 유효하다는 것을 깨달았습니다. 공급 업체 중립적 설계 권장 사항은 사각형이 아닌 삼각형으로 작성하는 것입니다. 그래서:

  1. MC-LAG뿐만 아니라 두 계층의 MC-LAG 그런 다음 스위치 수준과 라우터 수준 모두에서 공유 CAM 테이블을 처리합니다.

  2. 그렇게 할 수없는 경우 MC-LAG는 라우터 또는 스위치 중 하나이며 추가 링크 (예 : 라우터와 스위치 사이의 전체 메시)를 사용하여 MC-LAG를 다른 계층에 연결합니다. STP는 루프없는 토폴로지를 보장합니다.

  3. 그렇게 할 수없는 경우에도 라우터와 스위치를 완전 메시하십시오. STP는 루프없는 토폴로지를 보장하며 스위치 CAM 테이블은 여전히 ​​모든 적절한 MAC 전달 규칙을 알고 있습니다. 서버는 항상 MAC을 보내며 1 분 간격으로 HSRP GARP를 구성하면 스위치는 HSRP vMAC도 잊어 버리지 않습니다.

선호하는 옵션은 순서대로 있습니다. 그러나 최소한 해당 여분의 링크 쌍을 설치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.