소개
이 문서에서는 FDQN 개체를 사용할 때 Cisco ASA(Adaptive Security Appliance)에서 DNS(Domain Name System)의 작동을 설명합니다.
사전 요구 사항
요구 사항
Cisco ASA에 대한 지식이 있는 것이 좋습니다.
사용되는 구성 요소
시뮬레이션된 프로덕션 환경에서 ASA에 여러 FQDN(Fully Qualified Domain Name)이 구성된 경우 DNS의 작동을 명확하게 하기 위해 인터넷과 마주하는 하나의 인터페이스 및 ESXi 서버에 호스팅된 PC 디바이스에 연결된 하나의 인터페이스가 있는 ASAv를 설정했습니다. ASAv 중간 코드 9.8.4(10)가 이 시뮬레이션에 사용되었습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
네트워크 다이어그램
토폴로지 설정이 여기에 표시됩니다.
배경 정보
ASA에 여러 FQDN(Fully Qualified Domain Name) 객체가 구성된 경우, FQDN 객체에 정의된 URL에 액세스를 시도하는 최종 사용자는 ASA에서 전송된 여러 DNS 쿼리를 관찰하게 됩니다. 이 문서는 그러한 행동이 왜 관찰되는지에 대한 더 나은 이해를 제공하는 것을 목표로 한다.
구성
클라이언트 PC는 DNS 확인을 위해 이러한 IP, 서브넷 마스크 및 이름 서버로 구성되었습니다.
ASA에서는 2개의 인터페이스가 구성되었습니다. 즉, PC가 연결된 보안 수준이 100인 내부 인터페이스 1개와 인터넷에 연결된 외부 인터페이스 1개가 구성되었습니다.
여기서, Gig0/1 인터페이스는 인터페이스 IP가 10.197.223.9인 외부 인터페이스이고, Gig0/3 인터페이스는 인터페이스 IP가 10.10.10.1이고 타단의 PC와 연결된 내부 인터페이스이다.
다음과 같이 ASA에서 DNS 설정을 구성합니다.
www.facebook.com, www.google.com, www.instagram.com, www.twitter.com에 대해 4개의 FQDN 객체를 구성합니다.
DNS 트래픽을 캡처하도록 ASA 외부 인터페이스에 캡처를 설정합니다. 그런 다음 클라이언트 PC에서 브라우저에서 www.google.com에 액세스하십시오.
무엇을 관찰합니까? 패킷 캡처를 살펴봅니다.
여기서는 www.google.com만 확인하려고 해도 모든 FQDN 객체에 대해 전송되는 DNS 쿼리가 있음을 알 수 있습니다.
이제 ASA의 IP에 대해 DNS 캐싱이 어떻게 작동하는지 살펴보고 이러한 현상이 발생하는 이유를 알아보십시오.
- 클라이언트 PC 웹 브라우저에 www.google.com을 입력하면 PC는 DNS 쿼리를 보내 URL을 IP 주소로 확인합니다.
- 그런 다음 DNS 서버는 PC 요청을 확인하고 지정된 위치에 google.com이 상주한다는 IP를 반환합니다.
- 그런 다음 PC는 google.com의 확인된 IP 주소에 대한 TCP 연결을 시작합니다. 그러나 패킷이 ASA에 도달하면 지정된 IP가 허용 또는 거부됨을 나타내는 ACL 규칙이 없습니다.
- 그러나 ASA는 4개의 FQDN 개체를 가지고 있으며 FQDN 개체 중 하나를 관련 IP로 확인할 수 있음을 알고 있습니다.
- 따라서 ASA는 어떤 FQDN 개체를 관련 IP로 확인할 수 있는지 모르기 때문에 모든 FQDN 개체에 대한 DNS 쿼리를 보냅니다(여러 DNS 쿼리가 관찰되는 이유).
- DNS 서버는 해당 IP 주소로 FQDN 개체를 확인합니다. FQDN 객체는 클라이언트에서 확인된 것과 동일한 공용 IP 주소로 확인될 수 있습니다. 그렇지 않으면 ASA는 클라이언트가 도달하려고 시도하는 IP 주소가 아닌 다른 IP 주소에 대한 동적 액세스 목록 항목을 생성합니다. 따라서 ASA는 결국 패킷을 삭제합니다. 예를 들어, 사용자가 google.com을 10.0.113.1로 확인하고 ASA가 10.0.113.2로 확인하면 ASA는 10.0.113.2에 대한 새 동적 액세스 목록 항목을 생성하며 사용자는 웹 사이트에 액세스할 수 없습니다.
- 다음에 특정 IP의 확인을 요청하는 요청이 도착하면 해당 특정 IP가 ASA에 저장되어 있으면 동적 ACL 항목이 있으므로 모든 FQDN 객체를 다시 쿼리하지 않습니다.
- 클라이언트가 ASA에서 보낸 많은 수의 DNS 쿼리에 대해 우려하는 경우 DNS 타이머 만료를 늘리고, 제공된 종단 호스트가 DNS 캐시에 있는 대상 IP 주소에 액세스하려고 시도합니다. PC에서 ASA DNS 캐시에 저장되지 않은 IP를 요청하는 경우, 모든 FQDN 객체를 확인하기 위해 DNS 쿼리가 전송됩니다.
- DNS 쿼리 수를 계속 줄이려면 FQDN 개체의 수를 줄이거나 FQDN을 확인할 공용 IP의 전체 범위를 정의해야 하지만, 이 경우 FQDN 개체의 목적을 처음부터 달성할 수 없습니다. Cisco Firepower FTD(Threat Defense)는 이 활용 사례를 처리하는 데 더 적합한 솔루션입니다.
다음을 확인합니다.
각 FQDN 개체가 확인되는 ASA DNS 캐시에 어떤 IP가 있는지 확인하기 위해 ASA# sh dns 명령을 사용할 수 있습니다.
관련 정보