Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP에 대한 TCP 액세스 제한

TCP를 통한 BGP 보안 옵션 이해

라우팅 프로토콜 중 BGP는 TCP를 전송 프로토콜로 사용하는 데 고유합니다. BGP 피어는 포트 179에서 TCP 세션을 생성하기 위해 라우팅 디바이스 간의 수동 구성에 의해 설정됩니다. BGP 지원 장비는 연결을 유지하기 위해 주기적으로 keepalive 메시지를 보냅니다.

시간이 지남에 따라 BGP는 인터넷에서 지배적인 도메인 간 라우팅 프로토콜이 되었습니다. 그러나 안정성과 보안을 보장하는 데는 한계가 있습니다. BGP를 위한 보안 옵션 구성은 적절한 보안 조치와 수용 가능한 비용의 균형을 유지해야 합니다. 그 어떤 방법도 다른 방법보다 우월한 것으로 나타난 것은 없습니다. 각 네트워크 관리자는 사용 중인 네트워크의 요구를 충족하는 보안 조치를 구성해야 합니다.

BGP가 TCP를 전송 프로토콜로 사용하는 것과 관련된 보안 문제에 대한 자세한 내용은 RFC 4272, BGP 보안 취약점 분석을 참조하십시오.

예를 들면 다음과 같습니다. 지정된 BGP 피어를 제외하고 포트에 대한 TCP 액세스를 차단하기 위한 필터 구성

이 예에서는 지정된 BGP 피어를 제외한 모든 요청자로부터 179를 포트하려는 모든 TCP 연결 시도를 차단하는 표준 스테이트리스 방화벽 필터를 구성하는 방법을 보여줍니다.

요구 사항

이 예제를 구성하기 전에 디바이스 초기화 이외에는 특별한 구성이 필요하지 않습니다.

개요

이 예에서는 지정된 BGP 피어를 제외한 모든 요청자로부터 179를 포트하려는 모든 TCP 연결 시도를 차단하는 스테이트리스 방화벽 필터를 생성합니다.

스테이트리스 방화벽 필터 filter_bgp179 는 디바이스 A 및 디바이스 B의 직접 연결된 인터페이스에서 대상 포트 번호 179에 이르는 모든 패킷과 일치합니다.

토폴로지

그림 1 이 예에서 사용된 토폴로지의 표시를 보여 주십시오. 장비 C는 Device E에 대한 TCP 연결을 시도합니다. Device E는 연결 시도를 차단합니다. 이 예에서는 Device E의 구성을 보여줍니다.

그림 1: BGP 피어 세션을 통한 일반 네트워크BGP 피어 세션을 통한 일반 네트워크

구성

CLI 빠른 구성

이 예제를 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경한 다음, 명령을 복사하여 계층적 수준에서 CLI [edit] 에 붙여넣습니다.

디바이스 C

디바이스 E

장비 E 구성

단계별 절차

다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. CLI 탐색에 대한 자세한 내용은 Junos OS CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.

지정된 BGP 피어를 제외한 모든 요청자로부터 179를 포트하려는 모든 TCP 연결 시도를 차단하는 스테이트리스 방화벽 필터로 Device E를 구성하려면 다음을 수행합니다.

  1. 인터페이스를 구성합니다.

  2. BGP를 구성합니다.

  3. 자율 시스템 번호를 구성합니다.

  4. 지정된 BGP 피어에서 179를 포트하려는 TCP 연결 시도를 허용하는 필터 용어를 정의합니다.

  5. 다른 소스에서 패킷을 거부하는 다른 필터 용어를 정의합니다.

  6. 방화벽 필터를 루프백 인터페이스에 적용합니다.

결과

구성 모드에서 , show interfacesshow protocolsshow routing-options 명령을 입력show firewall하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

디바이스 구성을 완료한 경우 구성 모드에서 입력 commit 합니다.

확인

구성이 올바르게 작동하는지 확인합니다.

필터가 구성되었는지 검증

목적

필터가 명령의 show firewall filter 출력에 나열되어 있는지 확인합니다.

실행

TCP 연결 검증

목적

TCP 연결을 확인합니다.

실행

운영 모드에서 Device C 및 Device E에서 명령을 실행 show system connections extensive 합니다.

Device C의 출력은 TCP 연결 설정 시도를 보여줍니다. Device E의 출력은 연결이 Device A 및 Device B만을 통해서만 설정됨을 보여줍니다.

인터페이스상의 트래픽 모니터링

목적

monitor traffic 명령을 사용하여 TCP 연결을 설정하지 않는 인터페이스의 트래픽과 TCP 연결을 설정하는 인터페이스의 트래픽을 비교합니다.

실행

운영 모드에서 Device E 인터페이스에서 Device B로, Device E 인터페이스에서 Device C로 명령을 실행 monitor traffic 합니다. 다음 샘플 출력은 첫 번째 예에서 승인(ack) 메시지가 수신되는지 확인합니다. 두 번째 예에서는 ack 메시지가 수신되지 않습니다.

예를 들면 다음과 같습니다. Prefix List를 기반으로 TCP 액세스를 포트로 제한하기 위한 필터 구성

이 예에서는 허용된 BGP 피어를 포함하는 접두사 소스 목록을 지정하여 라우팅 엔진으로 향하는 특정 TCP 및 ICMP(Internet Control Message Protocol) 트래픽을 제한하는 표준 스테이트리스 방화벽 필터를 구성하는 방법을 보여줍니다.

요구 사항

이 예제를 구성하기 전에 디바이스 초기화 이외에는 특별한 구성이 필요하지 않습니다.

개요

이 예에서는 지정된 접두사에 있는 BGP 피어를 제외한 모든 요청자로부터 179를 포트하려는 모든 TCP 연결 시도를 차단하는 스테이트리스 방화벽 필터를 생성합니다.

토폴로지

허용된 BGP 피어를 포함하는 소스 접두사 목록을 지정하는 소스 접두사 목록이 plist_bgp179생성됩니다.

스테이트리스 방화벽 필터 filter_bgp179 는 소스 접두사 목록에서 plist_bgp179 대상 포트 번호 179에 이르는 모든 패킷과 일치합니다.

구성

CLI 빠른 구성

이 예제를 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경한 다음, 명령을 복사하여 계층적 수준에서 CLI [edit] 에 붙여넣습니다.

필터 구성

단계별 절차

다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. CLI 탐색에 대한 자세한 내용은 Junos OS CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.

필터를 구성하려면 다음을 수행합니다.

  1. 접두사 목록을 bgp179 확장하여 에 의해 정의된 protocols bgp group <*> neighbor <*>BGP 피어 그룹이 가리키는 모든 접두사 포함

  2. 지정된 BGP 피어를 제외한 모든 요청자로부터 179를 포트하려는 TCP 연결 시도를 거부하는 필터 용어를 정의합니다.

  3. 모든 패킷을 수용하도록 다른 필터 용어를 정의합니다.

  4. 방화벽 필터를 루프백 인터페이스에 적용합니다.

결과

구성 모드에서 , show interfacesshow policy-options 명령을 입력show firewall하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

디바이스 구성을 완료한 경우 구성 모드에서 입력 commit 합니다.

확인

구성이 올바르게 작동하는지 확인합니다.

루프백 인터페이스에 적용된 방화벽 필터 표시

목적

방화벽 필터 filter_bgp179 가 논리적 인터페이스 lo0.0에서 IPv4 입력 트래픽에 적용되는지 확인합니다.

실행

논리적 인터페이스lo0.0show interfaces statistics operational mode 명령을 사용하고 옵션을 포함합니다detail. Protocol inet 명령 출력 섹션의 섹션에서 Input Filters 필드는 입력 방향의 논리적 인터페이스에 적용되는 스테이트리스 방화벽 필터의 이름을 표시합니다.

예를 들면 다음과 같습니다. BGP를 위한 TCP 세그먼트 크기 제한

이 예에서는 MTU(최대 전송 단위) 검색을 사용할 때 TCP 세그먼트 크기를 제한하여 ICMP(Internet Control Message Protocol) 취약점 문제를 방지하는 방법을 보여줍니다. TCP 경로에서 MTU 검색을 사용하는 것은 BGP 패킷 단편화를 방지하는 한 가지 방법입니다.

요구 사항

이 예제를 구성하기 전에 디바이스 초기화 이외에는 특별한 구성이 필요하지 않습니다.

개요

TCP는 두 피어 간의 세션 연결 설정 중에 최대 MSS(Segment Size) 값을 협상합니다. 협상된 MSS 값은 주로 통신 피어가 직접 연결되는 인터페이스의 최대 전송 단위(MTU)를 기반으로 합니다. 그러나 TCP 패킷이 취한 경로의 링크 MTU의 변형으로 인해 네트워크의 MSS 값 내에 있는 일부 패킷은 패킷 크기가 링크의 MTU를 초과할 때 단편화될 수 있습니다.

TCP MSS 값을 구성하려면 1부터 4096까지 세그먼트 크기의 명령문을 포함합니다 tcp-mss .

라우터가 SYN 비트와 MSS 옵션 세트를 가진 TCP 패킷을 수신하고 패킷에 지정된 MSS 옵션이 명령문에 의해 tcp-mss 지정된 MSS 값보다 큰 경우, 라우터는 패킷의 MSS 값을 명령문에 지정된 tcp-mss 보다 낮은 값으로 대체합니다.

구성된 MSS 값은 발신자의 최대 세그먼트 크기로 사용됩니다. 발신자가 BGP neighbor와 통신하는 데 사용하는 TCP MSS 값은 발신자가 BGP neighbor에서 수락할 수 있는 TCP MSS 값과 같다고 가정합니다. BGP neighbor의 MSS 값이 구성된 MSS 값보다 적으면 BGP neighbor의 MSS 값이 발신자의 최대 세그먼트 크기로 사용됩니다.

이 기능은 IPv4를 통한 TCP 및 IPv6를 통한 TCP를 통해 지원됩니다.

토폴로지 다이어그램

그림 2 이 예에서 사용된 토폴로지의 표시를 보여 주십시오.

그림 2: BGP를 위한 TCP 최대 세그먼트 크기BGP를 위한 TCP 최대 세그먼트 크기

구성

CLI 빠른 구성

이 예제를 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경한 다음, 명령을 복사하여 계층적 수준에서 CLI [edit] 에 붙여넣습니다.

R0

절차

단계별 절차

다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. CLI 탐색에 대한 자세한 내용은 Junos OS CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.

라우터 R0을 구성하려면:

  1. 인터페이스를 구성합니다.

  2. 이 예에서 IGP(Interior Gateway Protocol), OSPF를 구성합니다.

  3. 하나 이상의 BGP 그룹을 구성합니다.

  4. 패킷 단편화를 방지하도록 MTU 검색을 구성합니다.

  5. 그룹 또는 특히 다양한 이웃에 대해 TCP MSS가 전역적으로 설정된 BGP neighbor를 구성합니다.

    주:

    TCP MSS neighbor 설정은 그룹 설정을 무시합니다.

  6. 로컬 자율 시스템을 구성합니다.

결과

구성 모드에서 , show protocolsshow routing-options 명령을 입력show interfaces하여 구성을 확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 지침을 반복하여 구성을 수정합니다.

디바이스 구성을 완료한 경우 구성 모드에서 입력 commit 합니다.

확인

구성이 올바르게 작동하는지 확인하려면 다음 명령을 실행합니다.

  • show system connections extensive | find <neighbor-address>를 사용하여 협상된 TCP MSS 값을 확인합니다.

  • monitor traffic interfaceBGP 트래픽을 모니터링하고 구성된 TCP MSS 값이 TCP SYN 패킷에서 MSS 옵션으로 사용되는지 확인합니다.

문제 해결

MTU 검색을 통한 MSS 계산

문제

두 개의 라우팅 디바이스(R1 및 R2)가 내부 BGP(IBGP) 연결을 갖는 사례를 생각해 보십시오. 두 라우터 모두에서 연결된 인터페이스는 4034를 IPv4 MTU로 사용합니다.

장비 R1에서 다음 패킷 캡처에서 협상된 MSS는 3994입니다. MSS에 show system connections extensive 대한 정보는 2048년으로 설정되어 있습니다.

솔루션

이것이 Junos OS의 예상 동작입니다. MSS 값은 IP 또는 IPv6 및 TCP 헤더를 제외한 MTU 값과 같습니다. 즉, MSS 값은 일반적으로 MTU(IPv4)보다 40바이트, MTU(IPv6)보다 60바이트 적습니다. 이 값은 피어 간에 협상됩니다. 이 예에서는 4034 - 40 = 3994입니다. 그런 다음 Junos OS는 이 값을 2KB의 다중 값으로 환산합니다. 값은 3994 / 2048 * 2048 = 2048입니다. 따라서 출력에서 동일한 show system connections MSS 값을 볼 필요가 없습니다.

3994 / 2048 = 1.95

1.95는 1로 둥근 것입니다.

1 * 2048년 = 2048년