Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DNS ALG

DNS(Domain Name System) ALG(Application Layer Gateway) 서비스는 도메인 이름을 IP 주소로 찾아 변환하는 것과 관련된 데이터를 처리합니다. ALG는 일반적으로 포트 53에서 실행됩니다. ALG는 DNS 쿼리 및 회신 패킷을 모니터링하고 UDP 트래픽만 지원합니다.

DNS ALG 개요

DNS ALG(Application Layer Gateway) 서비스는 DNS 클라이언트와 함께 사용할 수 있는 애플리케이션 수준 게이트웨이를 제공합니다. DNS ALG 서비스는 클라이언트가 서로 다른 네트워크의 여러 DNS 서버에 액세스할 수 있도록 하며 해당 서버를 오가는 라우팅을 제공합니다. 또한 DNS 쿼리 및 응답 패킷의 유연한 주소 변환을 지원합니다. DNS 클라이언트는 이러한 기능을 통해 네트워크의 클라이언트 쪽에 있는 단일 DNS 서버 인스턴스에서 여러 다른 도메인을 쿼리할 수 있습니다.

DNS 서버는 DNS 해결사로부터 수신 쿼리를 위해 UDP 포트 53을 수신합니다. resolver는 DNS 쿼리를 전송하고 DNS 응답을 처리하여 DNS 서버와 통신합니다.

참고:

DNS ALG의 기본 포트는 포트 53입니다.

DNS ALG는 다음 기능을 수행합니다.

  • DNS 쿼리 및 회신 패킷을 모니터링하고 DNS 응답이 수신되면 세션을 닫습니다.

  • DNS 의사 수행

  • IPv4 및 IPv6 주소 변환 수행

DNS(Domain Name System)는 원래 정적 구성된 데이터베이스의 쿼리를 지원하도록 설계되었으며 데이터가 변경될 것으로 예상되었습니다.

이제 DNS 표준 외에도 DDNS(Dynamic DNS) 지원을 사용할 수 있습니다. DNS와 DDNS의 주요 차이점은 헤더 섹션과 업데이트 메시지의 메시지 형식입니다.

DDNS 메시지는 DNS 메시지와 비교할 때 다르게 처리됩니다. DDNS용 메시지 구문 분석이 재작성됩니다. DDNS는 메시지의 쿼리 부분에서 NAT 및 NAT-PT를 수행하며 DNS는 메시지의 응답 부분에서 NAT 및 NAT-PT를 수행합니다.

예: DNS ALG 구성

이 예에서는 DNS ALG를 구성하여 주니퍼 네트웍스 디바이스의 정적 NAT 풀을 사용하여 DNS 트래픽을 통과하는 방법을 보여줍니다.

요구 사항

시작하기 전:

  • 모든 IP 주소에 대한 정적 NAT 풀을 구성합니다.

  • DNS를 위한 ALG의 개념에 대해 알아보십시오. DNS ALG 개요를 참조하십시오.

개요

이 예에서, ALG for DNS는 주니퍼 네트웍스 장비의 반대편에 있는 클라이언트와 서버 간에 DNS 트래픽을 모니터링하고 교환할 수 있도록 구성됩니다.

이 예에서는 정적 NAT 풀 및 규칙 세트를 구성하고 DNS ALG를 정책에 연결하는 방법을 보여줍니다.

토폴로지

그림 1 은 DNS ALG 토폴로지입니다.

그림 1: DNS ALG 토폴로지 DNS ALG Topology

구성

NAT 정적 풀 및 규칙 집합 구성

CLI 빠른 구성

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

단계별 절차

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

정적 NAT 풀을 구성하려면 다음을 수행합니다.

  1. NAT 정적 규칙 세트를 만듭니다.

  2. 정책을 사용하여 DNS 애플리케이션을 연결합니다.

결과

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

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

DNS 추적 구성 및 인쇄

목적

DNS 추적 파일을 인쇄합니다.

작업

구성 모드에서 다음 명령을 입력합니다.

확인

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

DNS ALG 검증

목적

DNS ALG가 활성화되었는지 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security alg status .

의미

출력은 DNS ALG가 활성화됨을 보여줍니다.

DNS ALG 보안 플로우 세션 검증

목적

ALG 보안 플로우 세션이 활성화되어 있는지 확인합니다.

작업

운영 모드에서 명령을 입력합니다 show security flow session application dns extensive .

의미

출력은 DNS ALG를 활용하는 액티브 플로우가 있음을 보여줍니다.

DNS 및 DDNS Doctoring의 이해

Junos OS는 ALG를 위한 DNS(Domain Name System)를 지원합니다. DNS ALG는 DNS 쿼리 및 회신 패킷을 모니터링하고 DNS 플래그가 패킷이 응답 메시지임을 나타내는 경우 세션을 닫습니다. DNS ALG를 구성하려면 계층 수준에서 명령문을 [edit security alg] 사용합니다edit security alg dns.

DNS는 라우팅 클래스 내에서 이름 대 주소 매핑을 제공하는 반면, 네트워크 주소 변환(NAT)은 동일한 라우팅 클래스의 서로 다른 주소 영역의 호스트 간에 투명한 라우팅을 제공하려고 시도합니다. 그 결과, NAT는 DNG ALG가 DNS Doctoring이라는 프로세스를 통해 처리해야 하는 일부 DNS 문제를 야기할 수 있습니다.

동일한 의사 지정 기능이 DDNS(Dynamic Domain Name System)에 적용됩니다. NAT 모드의 DDNS의 경우 DDNS 업데이트의 IP 변환도 수행할 수 있습니다.

NAT로 인해 발생되는 문제를 해결하기 위해 DNS 및 DDNS ALG 기능이 정적 NAT를 지원하도록 확장되어 DNS 의사링을 통해 문제를 해결할 수 있습니다.

참고:

DNS ALG는 DNS 의사 작업을 수행하기 위해 디바이스에서 활성화되어야 합니다. DNS ALG를 SRX3400, SRX3600, SRX4600, SRX5600 및 SRX5800 디바이스에서 활성화하면 DNS 의사 지정은 기본적으로 활성화됩니다. (플랫폼 지원은 설치 시 Junos OS 릴리스에 따라 달라집니다.)

복원 및 의사 절차는 다음 두 부분으로 수행됩니다.

  • Packet sanity check

    DNS 패킷의 경우 DNS ALG 검사 필드는 질문, 답변, 권한 및 추가 정보입니다. 질문 수가 1을 초과하거나 도메인 이름이 255바이트 이상이거나 레이블 길이가 63바이트 이상인 경우 DNS ALG는 패킷을 드롭합니다.

    DDNS 패킷의 경우 DNS ALG 검사 필드는 존, 사전 필수, 업데이트 및 추가 데이터입니다. DNS ALG는 존 수가 1을 초과하거나 도메인 이름이 255바이트 이상이거나 레이블 길이가 63바이트 이상인 경우 패킷을 드롭합니다.

    DNS 및 DDNS 모두에서 DNS ALG는 표준을 준수하지 않는 패킷을 드롭합니다.

  • NAT

그림 2 는 DNS가 프라이빗 주소를 공용 주소로 변환하는 방법을 보여줍니다.

그림 2: DNS 주소 변환(프라이빗에서 퍼블릭으로) DNS Address Translation (Private to Public)

external.com 호스트 X가 DNS를 통해 호스트 A의 주소를 해결하려고 하고 DNS ALG가 NAT를 지원하지 않는 경우 X를 호스팅하는 데 올바르지 않은 172.19.1.10과 같은 전용 주소가 필요합니다. 전용 주소는 DNS ALG를 통해 공용 주소 10,131.108.10으로 변환됩니다.

그림 3 은 DNS가 공용 주소를 프라이빗 주소로 변환하는 방법을 보여줍니다.

그림 3: DNS 주소 변환(퍼블릭에서 프라이빗으로) DNS Address Translation (Public to Private)

host A in private.com DNS를 통해 호스트 B의 주소를 해결하려고 하고 DNS ALG가 NAT를 지원하지 않는 경우, external.com DNS 서버(예: 10.131.108.8)에서 공용 주소를 가져옵니다. Host A가 프라이빗 도메인에서 B를 호스팅하는 데 올바르지 않은 공용 주소 10.131.108.8을 사용하여 B 호스트로 트래픽을 보내는 경우 따라서 DNS 쿼리 A-record의 공용 주소는 DNS ALG를 통해 프라이빗 주소 172.19.2.1로 변환됩니다.

참고:

DNS ALG는 단일 DNS 응답에서 처음 32개 A-레코드를 변환할 수 있습니다. 처음 32개 레코드 이후의 A 레코드는 처리되지 않습니다. 또한 DNS ALG는 IPv4 및 IPv6 주소를 지원하며 VPN 터널을 지원하지 않습니다.

DNS 및 DDNS Doctoring 비활성화

DNS ALG는 DNS 및 DDNS 의사링을 수행하기 위해 디바이스에서 활성화되어야 합니다. DNS ALG를 디바이스에서 활성화하면 DNS 및 DDNS 의사 지정 기능이 기본적으로 활성화됩니다. CLI에서 DNS 및 DDNS 의사링을 비활성화할 수 있습니다.

DNS 및 DDNS 의사링을 비활성화하려면 다음을 수행합니다.

  1. 구성 옵션을 지정하여 모든 의사 지정 기능을 비활성화합니다 none .

    이 명령은 모든 의사 기능을 비활성화합니다.

  2. NAT 기능을 비활성화하고 구성 옵션을 지정하여 sanity-check 기능을 유지합니다 sanity-check .

    이 옵션은 NAT 기능을 비활성화하고 Sanity-Check 기능을 유지합니다.

  3. 디바이스 구성이 완료되면 구성을 커밋합니다.

  4. 구성을 확인하려면 vty 명령 show usp algs dns stats을 사용합니다.