비대칭 라우팅 문제

카테고리 보기

비대칭 라우팅 문제

4 분 읽음

회사 개요 #

이 글에서는 해당 문제를 식별하고 해결하는 방법을 설명합니다. 비대칭 라우팅 문제 에 RELIANOID 로드 밸런서에 서로 다른 서브넷에 연결된 여러 네트워크 인터페이스가 있는 경우의 배포.

이러한 상황은 프런트엔드 클라이언트가 다른 서브넷에 있는 백엔드 서비스에 액세스해야 하지만 로드 밸런서가 두 네트워크 모두에 인터페이스를 가지고 있을 때 발생할 수 있습니다.

렐리아노이드_비지메트릭_라우팅

라우팅 동작이 부적절하면 응답 트래픽이 수신 요청에 사용된 인터페이스와 다른 인터페이스를 통해 나가게 되어 비대칭 라우팅이 발생할 수 있습니다.

문제 설명 #

일부 배포 환경에서는 RELIANOID 로드 밸런서는 서로 다른 네트워크에 연결된 여러 인터페이스로 구성됩니다.

다음 구성은 데모 목적으로 사용되는 예시 환경 입니다.

인터페이스 네트워크 목적
eth0 192.168.1.0/24
eth1 192.168.110.0/24 프런트 엔드
eth2 192.168.100.0/24 애플리케이션/백엔드

백엔드 서버는 192.168.100.0/24 서브넷 에 있으며 로드 밸런서에 구성된 팜을 통해 액세스됩니다.

하지만 192.168.110.0/24 네트워크에 있는 일부 클라이언트는 192.168.100.0/24 네트워크 에서 호스팅되는 서비스에도 액세스해야 합니다.

로드 밸런서가 두 네트워크 모두에 인터페이스를 가지고 있고 IP 포워딩이 기본적으로 활성화되어 있기 때문에 시스템은 응답 트래픽을 예상 게이트웨이를 거치지 않고 프런트엔드 인터페이스(eth1)를 통해 직접 라우팅할 수 있습니다.

이로 인해 비대칭 라우팅이 발생하여 연결 실패 또는 패킷 손실이 발생할 수 있습니다.

예시 인터페이스 구성 #

렐리아노이드_예시_인터페이스_구성

비대칭 라우팅이란 무엇인가요? #

비대칭 라우팅은 동일한 연결의 수신 및 송신 트래픽이 서로 다른 네트워크 경로를 따를 때 발생합니다.

예시 흐름 #

목적지 경로: 192.168.110.11 (이더넷 2 경유, 클라이언트) > 192.168.100.100 (로드 밸런서) > 192.168.100.42 (백엔드)

반환 경로(잘못됨): 192.168.100.42(백엔드) > 192.168.100.100(로드 밸런서) > 192.168.110.11(eth1 경유, 클라이언트)

반환 트래픽이 다른 인터페이스를 통해 나가기 때문에 방화벽이나 라우터와 같은 중간 장치에서 패킷이 차단될 수 있습니다.

라우팅 테이블 작동 방식 #

RELIANOID 사용 인터페이스별 라우팅 테이블 네트워크 간 트래픽 전달 방식을 제어하기 위해.

각 인터페이스는 자동으로 자체 라우팅 테이블을 생성합니다.

라우팅 테이블 예시: table_eth1, table_eth2

이러한 라우팅 테이블은 다음을 정의합니다.

  • 인터페이스와 관련된 경로
  • 트래픽 전달에 사용되는 게이트웨이
  • 트래픽 라우팅이 허용된 인터페이스

각 라우팅 테이블 내에서 인터페이스는 다음과 같이 구성할 수 있습니다.

관리형 인터페이스 #

IP 포워딩 기능을 사용하여 라우팅 테이블 내에서 트래픽을 라우팅할 수 있도록 허용된 인터페이스입니다.

관리되지 않는 인터페이스 #

해당 테이블에 대한 라우팅 결정에서 제외된 인터페이스에는 IP 포워딩이 적용되지 않습니다.

관리자는 관리형 인터페이스와 비관리형 인터페이스를 제어함으로써 로드 밸런서를 통한 트래픽 흐름에 영향을 미치고 라우팅 충돌을 방지할 수 있습니다.

예시 라우팅 테이블 #

렐리아노이드_예시_라우팅_테이블

해법 #

비대칭 라우팅 문제를 해결하려면 충돌하는 인터페이스를 백엔드 네트워크와 연결된 라우팅 테이블에서 제외해야 합니다.

이 시나리오에서, eth1은 라우팅 테이블에서 제거되어야 합니다. table_eth2이를 통해 트래픽이 올바른 게이트웨이를 통해 라우팅되도록 보장합니다.

렐리아노이드_시메트릭_라우팅

웹 UI를 사용한 해결 방법 #

  1. 다음 경로로 이동하세요: 네트워크 > 라우팅
  2. 백엔드 인터페이스와 연결된 라우팅 테이블을 선택하십시오. table_eth2
  3. 페이지 하단으로 스크롤합니다.
  4. 위치 찾기 관리형 인터페이스 안내
  5. 인터페이스를 이동하세요 eth1관리형 인터페이스관리되지 않는 인터페이스.

이는 백엔드 라우팅 테이블이 사용될 때 트래픽이 프런트엔드 인터페이스를 통해 직접 라우팅되는 것을 방지합니다.
웹GUI를 사용한 솔루션

CLI를 사용한 해결 방법 #

동일한 설정을 다음을 사용하여 적용할 수도 있습니다. RELIANOID CLI.CLI.

1단계: API 액세스 활성화 #

다음 경로로 이동하세요: 시스템 > 사용자 설정

API 액세스를 활성화하고 API 키를 구성하세요. 직접 키를 정의하거나 임의의 키를 생성할 수 있습니다.

키를 생성한 후에는 복사하여 저장하십시오. noid-cli를 사용하여 CLI에 처음 액세스할 때 해당 키가 필요합니다.

2단계: 액세스 RELIANOID CLI #

시스템 콘솔에서 다음 명령을 실행하세요.

noid-cli

요청 시 API 키를 입력하십시오.

3단계: 라우팅 테이블에서 인터페이스 제거 #

다음 명령을 실행하십시오.

network-routing-table-unmanaged add table_eth2 -interface eth1

이 명령은 트래픽이 해당 경로를 통과하는 것을 방지합니다. eth1 라우팅 테이블을 사용할 때 table_eth2.

4단계: 구성 되돌리기(선택 사항) #

필요한 경우 다음 명령어를 사용하여 설정을 되돌릴 수 있습니다.

network-routing-table-unmanaged remove table_eth2 eth1

모범 사례 #

  • 라우팅 변경을 수행하는 동안 교통량이 적은 시간대 또는 유지보수 기간.
  • 설정을 적용한 후 연결 상태를 확인하십시오.
  • 라우팅 변경으로 인해 다른 서비스에 영향이 미치지 않도록 하십시오.

맺음말 #

로드 밸런서가 여러 네트워크에 연결되어 있고 트래픽이 들어오는 연결에 사용된 인터페이스와 다른 인터페이스를 통해 돌아올 때 비대칭 라우팅 문제가 발생할 수 있습니다.

In RELIANOID이 문제는 라우팅 테이블 구성을 조정하고 특정 라우팅 테이블에서 충돌하는 인터페이스를 제외함으로써 해결할 수 있습니다.

이를 통해 트래픽이 올바른 네트워크 경로를 따르도록 하고 연결 문제를 방지할 수 있습니다.

📄 이 문서를 PDF 형식으로 다운로드하세요 #

    이메일 : *

    BetterDocs 제공