소개
이 문서에서는 Cisco 라우터에서 DNS(Domain Naming System)를 설정하는 방법을 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
표기 규칙
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
DNS 조회를 사용하도록 라우터 설정
IP 주소 대신 호스트 이름으로ping
traceroute
또는 명령을 사용하려는 경우 DNS 조회를 사용하도록 라우터를 구성할 수 있습니다. 이 명령을 사용하여 다음을 수행합니다.
명령을 사용합니다 |
설명 |
ip 도메인 조회 |
DNS 기반 호스트 이름-주소 변환을 활성화합니다. 이 명령은 기본적으로 활성화되어 있습니다. |
IP 이름 서버
|
하나 이상의 이름 서버의 주소를 지정합니다. |
ip 도메인 목록 |
차례로 시도할 도메인 목록을 정의합니다.
참고: 도메인 목록이 없는 경우 ip domain-name global configuration 명령으로 지정한 도메인 이름이 사용됩니다.
도메인 목록이 있는 경우 기본 도메인 이름이 사용되지 않습니다. |
ip 도메인 이름 |
Cisco IOS 소프트웨어가 정규화되지 않은 호스트 이름(점으로 구분된 10진수 도메인 이름이 없는 이름)을 완성하기 위해 사용하는 기본 도메인 이름을 정의합니다. 도메인 이름에서 정규화되지 않은 이름을 구분하는 초기 기간은 포함하지 마십시오. |
ip ospf 이름 조회 |
모든 OSPF show EXEC 명령 표시에서 사용할 DNS 이름을 조회하도록 OSPF(Open Shortest Path First)를 구성합니다. 이 기능을 사용하면 라우터가 라우터 ID 또는 네이버 ID가 아닌 이름으로 표시되므로 라우터를 쉽게 식별할 수 있습니다. |
다음 예에서는 기본 DNS 조회를 위해 구성된 라우터의 샘플 컨피그레이션을 보여줍니다.
샘플 기본 DNS 조회 컨피그레이션 |
Router#show running-config
Building configuration...
Current configuration : 3922 bytes
!
! Last configuration change at 16:24:57 UTC Fri May 12 2023
!
version 17.3
service timestamps debug datetime msec
service timestamps log datetime msec
! Call-home is enabled by Smart-Licensing.
service call-home
platform qfp utilization monitor load 80
platform punt-keepalive disable-kernel-core
platform console serial
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
!
!
!
!
!
!
!
ip name-server 192.168.1.1
!--- Configures the IP address of the name server. !--- Domain lookup is enabled by default.
!
!
interface GigabitEthernet1
ip address 192.168.1.10 255.255.255.0
negotiation auto
no mop enabled
no mop sysid
! !
!--- Output Suppressed. end |
Router#ping www.cisco.com
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.37.145.84, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Router#
문제 해결
드문 상황에서는 다음 오류 조건 중 하나를 볼 수 있습니다.
Router#debug ip udp
UDP packet debugging is on
Router#ping www.cisco.com
*Mar 8 06:26:41.732: UDP: sent src=10.69.16.66(5476), dst=10.250.35.250(53), length=59
*Mar 8 06:26:44.740: UDP: sent src=10.69.16.66(5476), dst=10.250.35.250(53), length=59
*Mar 8 06:26:47.744: UDP: sent src=10.69.16.66(5476), dst=10.250.35.250(53), length=59
% Unrecognized host or address, or protocol not running.
Router#undebug all
All possible debugging has been turned off
Router#ping www.cisco.com
Translating "www.cisco.com"...domain server (172.16.249.4) ¡¦
Not process
Router#ping www.cisco.com
*May 12 16:48:36.302: Reserved port 43478 in Transport Port Agent for UDP IP type 1
*May 12 16:48:36.302: UDP: sent src=0.0.0.0(43478), dst=255.255.255.255(53), length=50
*May 12 16:48:37.303: Reserved port 56191 in Transport Port Agent for UDP IP type 1
*May 12 16:48:37.303: UDP: sent src=0.0.0.0(56191), dst=255.255.255.255(53), length=50
*May 12 16:48:37.304: Released port 43478 in Transport Port Agent for IP type 1
*May 12 16:48:37.304: Released port 43478 in Transport Port Agent for IP type 1%
Unrecognized host or address, or protocol not running.
이 문제를 해결하려면 다음 단계를 완료하십시오.
-
라우터가 DNS 서버에 연결할 수 있는지 확인합니다. IP 주소로 라우터에서 DNS 서버를 ping하고, ip name-server 명령을 사용하여 라우터에 DNS 서버의 IP 주소를 구성해야 합니다.
-
라우터가 조회 요청을 전달하도록 하려면 다음 단계를 수행합니다.
-
DNS 패킷에서 일치하는 ACL(Access Control List)을 정의합니다.
access-list 101 permit udp any any eq domain
access-list 101 permit udp any eq domain any
-
debug ip packet 101 명령을 사용합니다.
주의: ACL을 지정해야 합니다. ACL 없이 debug ip packet 명령을 활성화할 경우 콘솔에 대한 많은 출력이 생성되고 디바이스에 대한 액세스에 영향을 미칠 수 있습니다.
-
라우터에서 domain-lookupcommand를 활성화했는지 확인합니다.
웹 서버를 Ping할 수는 있지만 HTML 페이지를 볼 수는 없습니다
드문 경우이지만 특정 웹 사이트에 이름으로 액세스할 수 없습니다. 이 문제는 일반적으로 소스 IP 주소에 대해 역방향 DNS 조회를 수행하여 주소가 스푸핑되지 않았는지 확인하는 액세스 할 수 없는 사이트에서 발생합니다. 잘못된 항목이 반환되거나 항목이 반환되지 않으면(즉, IP 범위에 연결된 이름이 없는 경우) HTTP 요청을 차단할 수 있습니다.
인터넷 도메인 이름을 가져올 때 inaddr.arpa 도메인도 신청해야 합니다. 이 특수 도메인은 리버스 도메인이라고도 합니다. 역방향 도메인은 숫자 IP 주소를 도메인 이름에 매핑합니다. ISP에서 이름 서버를 제공하거나 ISP에서 자체 주소 블록에서 주소를 할당한 경우에는 in-addr.arpa 도메인을 자체 지원할 수 없습니다. ISP에 확인하십시오.
다음은 www.cisco.com을 사용하는 예입니다. 이 다음 출력은 UNIX 워크스테이션에서 캡처되었습니다. nslookupprogram 및 dig 프로그램이 사용됩니다. 출력의 차이점에 유의하십시오.
sj-cse-280% nslookup www.cisco.com
Note: nslookup is deprecated and can be removed from future releases.
Consider with the 'dig' or 'host' programs instead. Run nslookup with
the '-sil[ent]' option to prevent this message from appearing.
Server: 172.16.226.120
Address: 172.16.226.120#53
Name: www.cisco.com
Address: 192.168.219.25
sj-cse-280% nslookup 192.168.219.25
Note: nslookup is deprecated and can be removed from future releases.
Consider with the 'dig' or 'host' programs instead. Run nslookup with
the '-sil[ent]' option to prevent this message from appearing.
Server: 172.16.226.120
Address: 172.16.226.120#53
10.219.133.198.in-addr.arpa name = www.cisco.com.
dig 프로그램은 DNS 패킷에서 더 자세한 정보를 인쇄합니다.
sj-cse-280% dig 192.168.219.25
; <<>> DiG 9.0.1 <<>> 192.168.219.25
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5231
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.219.25. IN A
;; AUTHORITY SECTION:
. 86400 IN SOA
A.ROOT-SERVERS.NET. nstld.verisign-grs.com.
( 2002031800 1800 900 604800 86400 )
;; Query time: 135 msec
;; SERVER: 172.16.226.120#53(172.16.226.120)
;; WHEN: Mon Mar 18 09:42:20 2002
;; MSG SIZE rcvd: 107
라우터가 여러 이름 서버를 쿼리합니다.
라우터는 네트워크 활동 레벨에 따라 컨피그레이션에 나열된 여러 이름 서버를 쿼리할 수 있습니다. 다음은 출력 debug ip 도메인 세부 정보의 예입니다.
Router#show run | section name-server ip name-server 192.168.1.1 10.0.0.2 Router#
Router#debug ip domain detail
Router#test002
*May 12 17:56:32.723: DNS: detail: cdns_name_verify_internal: Checking if hostname is valid or not..
*May 12 17:56:32.723: DNS: info: cdns_name_verify_internal: Hostname is valid
*May 12 17:56:32.723: DNS: detail: cdns_get_rr_type: converting name kind 2000 to type 28
*May 12 17:56:32.723: DNS: detail: read_forwards: Forward zone server list:
*May 12 17:56:32.723: DNS: info: delegpt_log: DelegationPoint<.>: 0 names (0 missing), 2 addrs (0 result, 2 avail) parentNS
*May 12 17:56:32.724: DNS: detail: val_operate: validator[module 0] operate: extstate:module_state_initial event:module_event_new
*May 12 17:56:32.724: DNS: info: log_nametypeclass: validator operate: query test002. AAAA IN
*May 12 17:56:32.724: DNS: detail: iter_operate: iterator[module 1] operate: extstate:module_state_initial event:module_event_pass
*May 12 17:56:32.724: DNS: info: log_nametypeclass: resolving test002. AAAA IN
*May 12 17:56:32.724: DNS: detail: error_response: return error response NXDOMAIN
*May 12 17:56:32.724: DNS: detail: val_operate: validator[module 0] operate: extstate:module_wait_module event:module_event_moddone
*May 12 17:56:32.724: DNS: info: log_nametypeclass: validator operate: query test002. AAAA IN
*May 12 17:56:32.725: DNS: detail: cdns_get_rr_type: converting name kind 2000 to type 28
*May 12 17:56:32.725: DNS: detail: read_forwards: Forward zone server list:
*May 12 17:56:32.725: DNS: info: delegpt_log: DelegationPoint<.>: 0 names (0 missing), 2 addrs (0 result, 2 avail) parentNS
*May 12 17:56:32.726: DNS: detail: val_operate: validator[module 0] operate: extstate:module_state_initial event:module_event_new
*May 12 17:56:32.726: DNS: info: log_nametypeclass: validator operate: query test002. AAAA IN
*May 12 17:56:32.726: DNS: detail: iter_operate: iterator[module 1] operate: extstate:module_state_initial event:module_event_pass
*May 12 17:56:32.726: DNS: info: log_nametypeclass: resolving test002. AAAA IN *May 12 17:56:32.726: DNS: info: log_nametypeclass: processQueryTargets: test002. AAAA IN *May 12 17:56:32.726: DNS: info: log_nametypeclass: sending query: test002. AAAA IN *May 12 17:56:32.726: DNS: detail: log_name_addr: sending to target: <.> 192.168.1.1#53 *May 12 17:56:32.726: DNS: detail: cdns_get_first_hop: dst 192.168.1.1, intf GigabitEthernet1
*May 12 17:56:32.726: DNS: detail: cdns_set_udp_source_interface: using source interface GigabitEthernet1 with address 192.168.1.10
*May 12 17:56:33.726: DNS: detail: cdns_get_first_hop: dst 192.168.1.1, intf GigabitEthernet1
*May 12 17:56:33.726: DNS: detail: cdns_set_udp_source_interface: using source interface GigabitEthernet1 with address 192.168.1.10
*May 12 17:56:34.726: DNS: detail: iter_operate: iterator[module 1] operate: extstate:module_wait_reply event:module_event_noreply
*May 12 17:56:34.726: DNS: info: log_nametypeclass: iterator operate: query test002. AAAA IN
*May 12 17:56:34.726: DNS: info: log_nametypeclass: processQueryTargets: test002. AAAA IN
*May 12 17:56:34.727: DNS: info: log_nametypeclass: sending query: test002. AAAA IN
*May 12 17:56:34.727: DNS: detail: log_name_addr: sending to target: <.> 192.168.1.1#53
*May 12 17:56:34.727: DNS: detail: cdns_get_first_hop: dst 192.168.1.1, intf GigabitEthernet1
*May 12 17:56:34.727: DNS: detail: cdns_set_udp_source_interface: using source interface GigabitEthernet1 with address 192.168.1.10
*May 12 17:56:35.729: DNS: detail: iter_operate: iterator[module 1] operate: extstate:module_wait_reply event:module_event_reply
*May 12 17:56:35.729: DNS: info: log_nametypeclass: iterator operate: query test002. AAAA IN
*May 12 17:56:35.729: DNS: info: log_nametypeclass: response for test002. AAAA IN
*May 12 17:56:35.729: DNS: info: log_name_addr: reply from <.> 192.168.1.1#53 *May 12 17:56:35.729: DNS: info: processQueryResponse: query response was THROWAWAY
*May 12 17:56:35.729: DNS: info: log_nametypeclass: processQueryTargets: test002. AAAA IN
*May 12 17:56:35.729: DNS: info: log_nametypeclass: sending query: test002. AAAA IN *May 12 17:56:35.729: DNS: detail: log_name_addr: sending to target: <.> 10.0.0.2#53 *May 12 17:56:35.730: DNS: detail: cdns_get_first_hop: dst 10.0.0.2, intf GigabitEthernet1
*May 12 17:56:35.730: DNS: detail: cdns_set_udp_source_interface: using source interface GigabitEthernet1 with address 192.168.1.10
*May 12 17:58:35.732: DNS: error: comm_point_tcp_handle_write: tcp connect: Connection refused
*May 12 17:58:35.732: DNS: detail: log_addr: remote address is ip4 10.0.0.2 port 53 (len 16)
*May 12 17:58:35.732: DNS: detail: outnet_tcp_cb: outnettcp got tcp error -1
*May 12 17:58:35.732: DNS: detail: log_addr: tcp error for address ip4 10.0.0.2 port 53 (len 16)
*May 12 17:58:35.732: DNS: detail: iter_operate: iterator[module 1] operate: extstate:module_wait_reply event:module_event_noreply
*May 12 17:58:35.732: DNS: info: log_nametypeclass: iterator operate: query test002. AAAA IN
*May 12 17:58:35.732: DNS: info: log_nametypeclass: processQueryTargets: test002. AAAA IN
이 동작은 라우터가 DNS 서버에 대한 ARP(Address Resolution Protocol) 항목을 생성해야 할 때 발생할 수 있습니다. 기본적으로 라우터는 ARP 항목을 4시간 동안 유지합니다. 사용량이 적은 기간에는 라우터가 ARP 항목을 완료한 다음 DNS 쿼리를 수행해야 합니다. DNS 서버의 ARP 항목이 라우터 ARP 테이블에 없으면 DNS 쿼리를 하나만 전송하면 오류가 발생합니다. 따라서 두 개의 쿼리가 전송되며, 하나는 필요한 경우 ARP 항목을 가져오고, 두 번째는 실제로 DNS 쿼리를 수행합니다. 이 동작은 TCP/IP 애플리케이션에서 공통적으로 사용됩니다.
관련 정보