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 연결 시도를 차단하는 상태 비저장 방화벽 필터를 생성합니다.

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

토폴로지

그림 1은(는) 본 예제에서 사용되는 토폴로지를 나타냅니다. 디바이스 C가 디바이스 E에 TCP 연결을 시도하고, 디바이스 E가 연결 시도를 차단합니다. 이 예는 디바이스 E의 구성을 보여줍니다.

그림 1: BGP 피어 세션이 있는 전형적인 네트워크BGP 피어 세션이 있는 전형적인 네트워크

구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit] 계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.

디바이스 C

디바이스 E

디바이스 E 구성

단계별 절차

다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색 관련 정보는 Junos OS CLI 사용자 가이드구성 모드에서의 CLI 편집기 사용을 참조하십시오.

지정된 BGP 피어를 제외한 모든 요청자의 포트 179에 대한 모든 TCP 연결 시도를 차단하는 상태 비저장 방화벽 필터로 디바이스 E를 구성하려면 다음을 수행합니다.

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

  2. BGP를 구성합니다.

  3. AS(Autonomous System) 번호를 구성합니다.

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

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

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

결과

구성 모드에서 show firewall, show interfaces, show protocolsshow routing-options 명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.

디바이스 구성을 마쳤으면 구성 모드에서 commit을 입력합니다.

검증

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

필터가 구성되었는지 확인

목적

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

작업

TCP 연결 확인

목적

TCP 연결을 확인합니다.

작업

운영 모드의 디바이스 C와 디바이스 E에서 명령을 실행합니다 .show system connections extensive

디바이스 C의 출력은 TCP 연결 설정 시도를 보여줍니다. 디바이스 E의 출력은 디바이스 A 및 디바이스 B와의 연결만 설정되었음을 보여줍니다.

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

목적

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

작업

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

예: 접두사 목록을 기반으로 포트에 대한 TCP 액세스를 제한하는 필터 구성

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

요구 사항

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

개요

이 예제에서는 지정된 접두사를 가진 BGP 피어를 제외한 모든 요청자의 포트 179에 대한 모든 TCP 연결 시도를 차단하는 상태 비저장 방화벽 필터를 생성합니다.

토폴로지

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

무상태 방화벽 필터는 소스 접두사 목록의 모든 패킷을 대상 포트 번호 179와 일치시킵니다.filter_bgp179plist_bgp179

구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit] 계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.

필터 구성

단계별 절차

다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색 관련 정보는 Junos OS CLI 사용자 가이드구성 모드에서의 CLI 편집기 사용을 참조하십시오.

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

  1. 로 정의된 BGP 피어 그룹이 가리키는 모든 접두사를 포함하도록 접두사 목록을 확장합니다.bgp179protocols bgp group <*> neighbor <*>

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

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

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

결과

구성 모드에서 show firewall, show interfacesshow policy-options 명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.

디바이스 구성을 마쳤으면 구성 모드에서 commit을 입력합니다.

검증

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

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

목적

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

작업

논리적 인터페이스에 명령을 사용하고 옵션을 포함합니다.show interfaces statistics operational modelo0.0detail 명령 출력 섹션의 섹션 아래에 있는 필드는 입력 방향으로 논리적 인터페이스에 적용된 무상태 방화벽 필터의 이름을 표시합니다.Protocol inetInput Filters

예: BGP에 대한 TCP 세그먼트 크기 제한

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

요구 사항

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

개요

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

TCP MSS 값을 구성하려면 세그먼트 크기가 1에서 4096까지인 문을 포함합니다.tcp-mss

라우터가 SYN 비트와 MSS 옵션이 설정된 TCP 패킷을 수신하고 패킷에 지정된 MSS 옵션이 문에 지정된 MSS 값보다 큰 경우, 라우터는 패킷의 MSS 값을 문에 지정된 낮은 값으로 바꿉니다.tcp-msstcp-mss

구성된 MSS 값은 발신자의 최대 세그먼트 크기로 사용됩니다. 발신자가 BGP 인접 라우터와 통신하는 데 사용하는 TCP MSS 값이 발신자가 BGP 인접 라우터에서 수락할 수 있는 TCP MSS 값과 동일하다고 가정합니다. BGP 인접 네트워크의 MSS 값이 구성된 MSS 값보다 작으면 BGP 인접 네트워크의 MSS 값이 발신자의 최대 세그먼트 크기로 사용됩니다.

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

토폴로지 다이어그램

그림 2은(는) 본 예제에서 사용되는 토폴로지를 나타냅니다.

그림 2: BGP의 TCP 최대 세그먼트 크기BGP의 TCP 최대 세그먼트 크기

구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit] 계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.

R0

절차

단계별 절차

다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색 관련 정보는 Junos OS CLI 사용자 가이드구성 모드에서의 CLI 편집기 사용을 참조하십시오.

다음을 참조하여 라우터 R0를 구성하십시오:

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

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

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

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

  5. 그룹에 대해 전역으로 또는 다양한 이웃에 대해 구체적으로 설정된 TCP MSS를 사용하여 BGP 이웃을 구성합니다.

    주:

    TCP MSS 인접 설정은 그룹 설정보다 우선합니다.

  6. 로컬 AS(Autonomous System)를 구성합니다.

결과

구성 모드에서 show interfaces, show protocolsshow routing-options 명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.

디바이스 구성을 마쳤으면 구성 모드에서 commit을 입력합니다.

검증

구성이 제대로 작동하는지 확인하려면 다음 명령을 실행합니다.

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

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

문제 해결

MTU 검색을 통한 MSS 계산

문제

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

디바이스 R1의 다음 패킷 캡처에서 협상된 MSS는 3994입니다. MSS에 대한 정보에서는 2048로 설정되어 있습니다.show system connections extensive

솔루션

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

3994 / 2048 = 1.95

1.95는 1로 반올림됩니다.

1 * 2048 = 2048