이 페이지의 내용
ECMP 플로우 기반 포워딩
이 주제에서는 Junos OS SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스에서 포워딩 및 역방향 트래픽을 위한 ECMP(Equal-Cost Multipath)에 대해 간략하게 설명합니다. Junos OS SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스에서 ECMP 구현에 대한 포괄적인 커버리지를 제공합니다.
ECMP 플로우 기반 포워딩 이해
ECMP(Equal-cost multipath)는 동일한 세션 또는 플로우의 트래픽, 즉 소스와 대상이 동일한 트래픽을 동일한 비용의 여러 경로로 전송할 수 있도록 하는 네트워크 라우팅 전략입니다. 이는 트래픽 로드 밸런싱을 허용하고 동일한 대상에 대한 링크에서 사용되지 않는 대역폭을 최대한 활용하여 대역폭을 늘릴 수 있는 메커니즘입니다.
패킷을 포워딩할 때 라우팅 기술은 사용할 다음 홉 경로를 결정해야 합니다. 결정을 내릴 때 디바이스는 흐름을 식별하는 패킷 헤더 필드를 고려합니다. ECMP를 사용하는 경우 라우팅 메트릭 계산 및 해시 알고리즘을 기반으로 동일한 비용의 다음 홉 경로가 식별됩니다. 즉, 동일한 비용의 경로는 동일한 기본 설정 및 메트릭 값을 가지며 네트워크에 대한 동일한 비용을 갖습니다. ECMP 프로세스는 라우터 집합을 식별하며, 각 라우터는 대상에 대한 합법적인 동일 비용의 다음 홉입니다. 식별된 경로를 ECMP 집합이라고 합니다. ECMP는 다음 홉 대상만 처리하므로 대부분의 라우팅 프로토콜에서 ECMP를 사용할 수 있습니다.
ECMP(Equal-Cost Multipath) 집합은 라우팅 테이블에 동일한 비용의 동일한 대상에 대한 여러 다음 홉 주소가 포함되어 있을 때 형성됩니다. (비용이 동일한 경로는 동일한 기본 설정 및 메트릭 값을 갖습니다.) 활성 경로에 대한 ECMP 집합이 있는 경우 Junos OS는 해시 알고리즘을 사용하여 포워딩 테이블에 설치할 ECMP 집합의 다음 홉 주소 중 하나를 선택합니다.
ECMP 세트의 여러 다음 홉 항목이 포워딩 테이블에 설치되도록 Junos OS를 구성할 수 있습니다. 주니퍼 네트웍스 디바이스에서는 플로우별 로드 밸런싱을 수행하여 라우팅 디바이스 간의 여러 경로로 트래픽을 분산시킬 수 있습니다. 주니퍼 네트웍스 보안 디바이스에서는 소스 및 대상 IP 주소와 프로토콜을 검사하여 개별 트래픽 흐름을 결정합니다. 동일한 플로우에 대한 패킷은 동일한 인터페이스에서 전달됩니다. ECMP 세트에 추가 또는 변경 사항이 있어도 인터페이스는 변경되지 않습니다. 이는 소스 네트워크 주소 변환(NAT)과 같은 기능에 중요하며, 여기서 변환은 IDP, ALG 및 경로 기반 VPN 터널에 대한 세션 설정의 첫 번째 경로에서만 수행됩니다. ECMP 세트의 지정된 인터페이스에 패킷이 도착하면 보안 디바이스는 역방향 트래픽이 동일한 인터페이스를 통해 전달되도록 보장합니다.
보안 디바이스의 ECMP 플로우 기반 포워딩은 IPv4 및 IPv6 유니캐스트 트래픽 플로우에 적용됩니다. Junos OS 릴리스 15.1X49-D60부터 IPv6 유니캐스트 트래픽의 ECMP 플로우 기반 포워딩이 모든 SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스에서 지원됩니다. 멀티캐스트 플로우는 지원되지 않습니다.
주니퍼 네트웍스 보안 디바이스에서 포워딩 테이블에 설치할 수 있는 ECMP 세트의 최대 다음 홉 주소 수는 16개입니다. ECMP 집합에 16개 이상의 다음 홉 주소가 있는 경우 처음 16개 주소만 사용됩니다.
섀시 클러스터 구축에서 로컬 인터페이스는 패킷이 도착하는 인터페이스와 동일한 노드에 있는 인터페이스이며, 원격 인터페이스는 다른 섀시 클러스터 노드에 있는 인터페이스입니다. ECMP 경로의 섀시 클러스터에 로컬 인터페이스와 원격 인터페이스가 모두 있는 경우 로컬 인터페이스가 다음 홉에 선호됩니다.
다음 홉 주소가 더 이상 ECMP 집합의 일부가 아니거나 경로 변경으로 인해 라우팅 테이블에서 제거된 경우, 다음 홉을 사용하는 흐름이 다시 라우팅되고 세션에 영향을 주지 않습니다. 다음 홉 주소를 제거하는 구성 변경이 있거나 관리자가 다음 홉 인터페이스를 삭제하지 않고 삭제하는 경우에도 흐름의 재라우팅이 발생합니다. 인터페이스가 삭제되거나 세션이 의도적으로 지워져 라우팅 테이블에서 다음 홉 주소가 제거되면 세션은 다시 라우팅되지 않고 종료됩니다.
ECMP 집합의 인터페이스는 동일한 보안 영역에 있는 것이 좋습니다. 흐름이 다시 라우팅되고 다시 라우팅된 흐름이 원래 경로와 다른 보안 영역의 인터페이스를 사용하는 경우 세션이 종료됩니다.
주니퍼 네트웍스 보안 디바이스에서 ECMP 플로우 기반 포워딩을 구성하려면 먼저 [edit policy-options
load-balance per-flow
] 계층 수준에서 하나 이상의 policy-statement
구성 문을 포함하여 작업 과 함께 로드 밸런싱 라우팅 정책을 정의합니다. 그런 다음 라우팅 테이블에서 포워딩 테이블로 내보낸 경로에 라우팅 정책을 적용합니다. 이렇게 하려면 [edit routing-options
] 계층 수준에 및 export
구성 문을 포함합니다forwarding-table
.
Junos OS SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스를 위한 ECMP 구현
SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스용 ECMP를 구성하여 플로우별 로드 밸런싱을 구현하여 라우팅 디바이스 간의 여러 경로에 트래픽을 분산시킬 수 있습니다. 비용이 동일한 경로에는 동일한 기본 설정 및 메트릭 값이 있습니다. 이러한 디바이스는 소스 IP 주소, 대상 IP 주소 및 프로토콜을 검사하여 개별 트래픽 흐름을 결정합니다. 보안 정책에서 허용하는 소스 IP 주소, 대상 IP 주소 및 프로토콜 번호가 동일한 트래픽은 동일한 다음 홉으로 전달됩니다. 이러한 디바이스의 Junos OS는 해시 로직에서 플로우 정보를 사용합니다.
Junos OS SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스의 경우, 라우팅 테이블에 동일한 비용의 동일한 대상에 대한 여러 다음 홉 주소가 포함되어 있으면 ECMP 세트가 형성됩니다. ECMP를 사용하면 ECMP 세트의 여러 다음 홉 항목을 포워딩 테이블에 설치할 수 있습니다. 동일한 플로우에 대한 패킷은 동일한 인터페이스에서 전달됩니다. ECMP 세트에 추가 또는 변경 사항이 있어도 인터페이스는 변경되지 않습니다.
활성 경로에 대한 ECMP 집합이 있는 경우 Junos OS는 해시 알고리즘을 사용하여 포워딩 테이블에 설치할 ECMP 집합의 다음 홉 주소 중 하나를 선택합니다.
SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스의 ECMP 플로우 기반 포워딩은 IPv4 및 IPv6 유니캐스트 트래픽 플로우에 적용됩니다. Junos OS 릴리스 15.1X49-D60 및 Junos OS 릴리스 17.3R1부터 IPv6 유니캐스트 트래픽의 ECMP 플로우 기반 포워딩은 모든 SRX 시리즈 방화벽 및 vSRX 가상 방화벽 인스턴스에서 지원됩니다. 멀티캐스트 플로우는 지원되지 않습니다.
역방향 트래픽을 위한 ECMP
Junos OS 릴리스 17.3부터 역방향 트래픽에 대한 ECMP 지원을 활성화하면 SRX 시리즈 방화벽은 해시 알고리즘을 사용하여 흐름의 역방향 트래픽에 사용할 인터페이스를 결정합니다. 이 프로세스는 패킷이 한 경로의 소스에서 대상으로 이동하다가 소스로 돌아올 때 다른 경로를 사용하는 비대칭 라우팅과 유사합니다.
이 기능을 활성화하지 않을 경우, SRX 시리즈 방화벽은 ECMP 세트에서 역방향 트래픽을 위한 수신 인터페이스로 설정된 경로를 선택하며, 이것이 기본 동작입니다.
[edit security flow
] 계층의 allow-reverse-ecmp
구성 문을 사용하여 역방향 트래픽 전송을 위해 설정된 ECMP에서 경로를 선택할 때 해시 알고리즘을 사용하도록 ECMP 플로우 기반 포워딩을 구성합니다. 즉, 이 기능을 활성화하면 수신 인터페이스에 대한 경로를 선택하는 대신 SRX 시리즈 방화벽이 해시 알고리즘을 사용하여 역방향 트래픽에 대해 설정된 ECMP의 경로를 선택합니다.
ECMP 플로우 기반 정책은 영역 기반이므로 ECMP 역방향 조회 지원을 통해 역방향 트래픽에 사용되는 송신 인터페이스가 도착하는 트래픽에 사용되는 수신 인터페이스와 동일한 영역에 있게 됩니다.
ECMP 세트의 인터페이스는 동일한 보안 영역에 있어야 합니다. 송신 인터페이스 영역이 수신 인터페이스 영역과 다른 경우 세션을 생성할 수 있지만 패킷은 삭제됩니다.
역방향 ECMP를 활성화하기로 결정한 경우 다음 조건을 인지하고 이를 방지하기 위한 조치를 취하십시오. ECMP 플로우 기반 포워딩을 사용하는 경우 SRX 시리즈 방화벽으로 인해 업스트림 디바이스가 세션의 단방향 트래픽만 볼 수 있습니다. 세션 상태를 유지하는 업스트림 디바이스(예: TCP-proxy 및 SYN-proxy)에 문제가 발생할 수 있습니다. 이 문제는 비동기 라우팅 동작과 유사합니다.
예: ECMP 플로우 기반 포워딩 구성
이 예에서는 ECMP 플로우 기반 포워딩을 구성하는 방법을 보여줍니다.
요구 사항
이 기능을 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
개요
이 예에서는 SRX 시리즈 방화벽에서 3개의 정적 ECMP 경로를 구성합니다. 각 정적 경로는 서로 다른 다음 홉 라우터를 사용하여 대상 서버에 도달합니다. 라우터에 대한 인터페이스는 신뢰할 수 없는 보안 영역에 할당됩니다. 이 예에서는 라는 load-balancing-policy
로드 밸런싱 라우팅 정책을 만들고 라우팅 테이블에서 포워딩 테이블로 내보낸 모든 경로에 이 정책을 적용합니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 명령을 CLI로 [edit]
복사해 붙여 넣습니다.
## Interfaces ## set interfaces ge-0/0/2 unit 0 family inet address 192.168.4.1/24 set interfaces ge-0/0/4 unit 0 family inet address 192.168.1.1/24 set interfaces ge-0/0/6 unit 0 family inet address 192.168.2.1/24 set interfaces ge-0/0/7 unit 0 family inet address 192.168.3.1/24 ## Static routes ## set routing-options static route 172.16.1.0/24 next-hop 192.168.1.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.2.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.3.2 ## Security zones, address book entry, and policy ## set security zones security-zone trust interfaces ge-0/0/2 set security zones security-zone untrust interfaces ge-0/0/4 set security zones security-zone untrust interfaces ge-0/0/6 set security zones security-zone untrust interfaces ge-0/0/7 set security address-book global address FTP-servers 172.16.1.0/24 set security policies from-zone trust to-zone untrust policy permit-ftp match source-address any set security policies from-zone trust to-zone untrust policy permit-ftp match destination-address FTP-servers set security policies from-zone trust to-zone untrust policy permit-ftp match application junos-ftp set security policies from-zone trust to-zone untrust policy permit-ftp then permit ## ECMP routing policy ## set policy-options policy-statement load-balancing-policy then load-balance per-flow set routing-options forwarding-table export load-balancing-policy
절차
단계별 절차
다음 예제에서는 구성 계층의 다양한 수준을 탐색해야 합니다.
ECMP 플로우 기반 포워딩을 구성하려면 다음을 수행합니다.
인터페이스를 구성합니다.
[edit interaces] user@host# set ge-0/0/2 unit 0 family inet address 192.168.4.1/24 user@host# set ge-0/0/4 unit 0 family inet address 192.168.1.1/24 user@host# set ge-0/0/6 unit 0 family inet address 192.168.2.1/24 user@host# set ge-0/0/7 unit 0 family inet address 192.168.3.1/24
정적 경로를 구성합니다.
[edit routing-options] user@host# set static route 172.16.1.0/24 next-hop 192.168.1.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.2.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.3.2
trust
및untrust
보안 영역을 생성하고 관련 인터페이스를 포함합니다.[edit security] user@host# set zones security-zone trust interfaces ge-0/0/2 user@host# set zones security-zone untrust interfaces ge-0/0/4 user@host# set zones security-zone untrust interfaces ge-0/0/6 user@host# set zones security-zone untrust interfaces ge-0/0/7
서버 서브넷에 대한 주소록 항목을 구성합니다.
이 항목은 보안 정책에 사용됩니다.
[edit security address-book] user@host# set global address FTP-servers 172.16.1.0/24
보안 정책을 구성합니다.
[edit security policies from-zone trust to-zone untrust] user@host# set policy permit-ftp match source-address any user@host# set policy permit-ftp match destination-address FTP-servers user@host# set policy permit-ftp match application junos-ftp user@host# set policy permit-ftp then permit
로드 밸런싱 라우팅 정책을 만듭니다.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-flow
라우팅 테이블에서 포워딩 테이블로 내보낸 모든 경로에 라우팅 정책을 적용합니다.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
결과
구성 모드에서 , show security
, show policy-options
및 show routing-options
명령을 실행하여 show interfaces
구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
[edit] user@host# show interfaces ge-0/0/2 { unit 0 { family inet { address 192.168.4.1/24; } } } ge-0/0/4 { unit 0 { family inet { address 192.168.1.1/24; } } } ge-0/0/6 { unit 0 { family inet { address 192.168.2.1/24; } } } ge-0/0/7 { unit 0 { family inet { address 192.168.3.1/24; } } } user@host# show security address-book { global { address FTP-servers 172.16.1.0/24; } } policies { from-zone trust to-zone untrust { policy permit-ftp { match { source-address any; destination-address FTP-servers; application junos-ftp; } then { permit; } } } } zones { security-zone trust { interfaces { ge-0/0/2.0; } } security-zone untrust { interfaces { ge-0/0/4.0; ge-0/0/6.0; ge-0/0/7.0; } } } user@host# show policy-options policy-statement load-balancing-policy { then { load-balance per-flow; } }
[edit] user@host# show routing-options static { route 172.16.1.0/24 next-hop [ 192.168.1.2 192.168.2.2 192.168.3.2 ]; } forwarding-table { export load-balancing-policy; }
디바이스 구성을 마쳤으면 구성 모드에서 을 입력합니다 commit
.
확인
포워딩 테이블 확인
목적
모든 ECMP 경로에 대한 경로 정보가 포워딩 테이블에 나타나는지 확인합니다.
행동
운영 모드에서 명령을 입력합니다 show route forwarding-table destination 172.16.1.0 .
user@host> show route forwarding-table destination 172.16.1.0 Routing table: default.inet Internet: Destination Type RtRef Next hop Type Index NhRef Netif 172.16.1.0/24 user 0 ulst 262142 2 192.168.1.2 ucst 560 2 ge-0/0/4.0 192.168.2.2 ucst 561 2 ge-0/0/6.0 192.168.3.2 ucst 562 2 ge-0/0/7.0 ...
의미
출력은 의 다음 홉 유형을 ulst
보여주며, 이는 경로에 여러 개의 적격 다음 홉이 있음을 의미합니다. 172.16.1.0 네트워크로 향하는 패킷은 목록의 다음 홉을 사용할 수 있습니다.
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.