Internet Layer | 인터넷 계층
라우팅과 인터넷 계층
인터넷 계층의 역할
인터넷 계층의 프로토콜은 수신지 컴퓨터가 아무리 멀리 있더라도 데이터를 전달할 수 있도록 설계되어 있다.
IP 어드레스 정보를 보고 데이터를 전달한다
인터넷 계층은 네트워크 인터페이스 계층과 협력하여 다른 컴퓨터에게 데이터를 전달하는 역할을 한다.
하드웨어에 의존하는 부분은 네트워크 인터페이스 계층이 담당하고 인터넷 계층은 IP 어드레스라는 식별자 정보로 데이터를 전달할 수 있는 체계를 제공하도록 역할이 구분되어 있다
라우터와 라우팅
데이터를 목적지까지 전달하기 위해서는 라우터라고 하는 네트워크 장비가 필요하다.
라우터는 네트워크와 네트워크를 연결하는 역할을 하는데 하나의 라우터는 데이터를 목적지까지 전달하기 위해 다음 네트워크의 경로를 찾고 그 경로 상에 있는 라우터에게 데이터 전달을 위임하게 된다.
이런 과정은 최종 목적지를 찾기까지 연쇄적으로 반복되는데 이렇게 라우터가 목적지의 경로를 찾아 나가는 과정을 라우팅이라고 한다.
IP 어드레스와 관련된 여러 기술
인터넷 보급이 확산됨에 따라 사용 가능한 IP 어드레스가 점점 줄어들고 있다. 그래서 IP 어드레스의 고갈을 방지하기 위한 대한으로 프라이빗 어드레스와 퍼블릭 어드레스를 구분하는 기법을 사용한다.
근본적인 방법으로는 IPv4보다 주소체계가 확장된 IPv6의 도입이 가속화되고 있다.
그외에도 숫자로 된 IP 어드레스를 사람이 알아보기 쉬운 도메인명과 연결해주는 DNS가 있다.
IPv4와 IPv6
IPv4와 IPv6는 인터넷 계층에서 사용되는 중요한 프로토콜로, IP 어드레스를 결정할 때 사용하는 비트의 길이가 서로 다르다.
IPv4는 32비트 어드레스
IPv4는 현재까지 컴퓨터의 어드레스를 지정할 떄 가장 많이 사용되는 인터넷 계층의 프로토콜이다.
네트워크에 연결된 컴퓨터를 식별하기 위해 32비트의 IP 어드레스가 사용되는데 사람이 알아보기 어려우므로 32비트를 8비트씩 나누어서 10진수로 변환해서 사용한다.
IPv4 헤더
IPv4 패킷의 IP 헤더에는 송신지와 수신지의 IP 어드레스 외에 패킷 길이와 같은 다양한 정보들이 포함되어 있다.
IPv4패킷
버전 (IPv4에서는 4) | 헤더 길이 (IP 헤더의 길이) | 서비스 타입 (패킷의 우선순위를 결정) | 패킷 길이 (패킷 전체의 길이) |
식별자 | 분할 플래그 | 프래그먼트 옵셋 (식별자에서 프래그먼트 옵셋까지는 데이터가 분할된 경우에 사용된다) | |
생존 기간 (패킷의 생존 기간) | 프로토콜 (트랜스포트 계층의 어느 프로토콜에 전달하지 판단하는 번호) | 헤더 체크섬 | |
송신지 IP 어드레스 | |||
수신지 IP 어드레스 | |||
옵션 설정 | 패딩 | ||
TCP/UDP의 헤더 | |||
데이터 본체 |
IP 패킷에도 유통기한이 있다.
수신지로 지정된 컴퓨터가 실제로 존재하지 않거나 통신 경로를 찾지 못해 패킷이 제대로 전달되지 않는 경우가 종종 발생할 수 있다.
이렇게 패킷이 목적지를 찾지 못해 네트워크 안을 떠돌아다니면 네트워크가 혼잡해 질수 있으므로 IPv4에는 생존 기간(TTL, Time To Live) 정보를 설정할 수 있게 되어 있고 만약 생존 기간을 초과한 패킷이 네트워크상에 발견되면 그 패킷을 소멸시키도록 규정하고 있다.
좁은 길을 지날 떄는 작게 분할해서 지나간다
한 번에 전송할 수 있는 데이터 크기를 MTU(Maximum Transmission Unit)라고 하고, 이 값은 통신 경로의 상태에 따라 달라진다.
경로 상태가 좋지 않으면 이 값이 줄어드는데 라우터에는 MTU 값에 따라 패킷을 분할해서 전송해는 기능이 구현되어 있다.
다만 라우터의 작업 부하가 높아지거나 분할된 패킷 중의 일부가 유실되면 복원이 어려워지는 단점이 있다.
그래서 라우터가 데이터를 송신하기 전에 통신 경로 전체의 MTU를 살펴본후 처음부터 MTU보다 작은 크기의 패킷을 만들도록 설정하기도 한다.
데이터를 분할하고 복원하는 방법
역할 | |
---|---|
식별자 | 같은 데이터인지 식별하기 위한 16비트 숫자 값 |
분할 플래그 | 분할 허가 플래그와 이후 남은 분할 부분이 더 있는지 표시하기 위한 플래그 |
프래그먼트 옵셋 | 원래 데이터에서의 위치 값을 표현하는 13비트 숫자의 값 |
IP 패킷을 분할할때 분할된 패킷들은 같은 식별자를 가진다.
다른 패킷들과 섞여서 전달된다.
식별자나 IP 어드레스 정보등을 보고 같은 데이터가 분할된 조각을 모아 복원한다.
IPv6
인터넷의 급격한 성장으로 인해 IPv4의 어드레스가 고갈된 상황에 쳐했다 그래서 최근 128비트 어드레스로 만든 IPv6의 보급이 가속화되고 있다.
버전 (IPv6에서는 6) | 트래픽 클래스 (패킷의 우선순위를 결정) | 플로우 레이블 |
페이로드의 길이 (데이터 부분의 길이) | 다음 헤더 | 홉 리미트 (IPv4의 생존 기간과 같은 역할을 함) |
송신지 IP 어드레스 | ||
수신지 IP 어드레스 | ||
확장 헤더 | ||
TCP/UDP의 헤더 | ||
데이터 본체 |
IPv6로 갈아타기
IPv4와 IPv6는 어드레스나 패킷 어느 것으로도 서로 호환이 되지 않는다.
그래서 현재 다양한 기법으로 두 가지를 병행 할 수 있도록 만들고 있다.
듀얼 스택
하나의 장비에 두 종류의 어드레스를 할당한 후 둘 다 사용 가능하도록 만든다
터널링
IPv4 네트워크를 지나갈 떄는 IPv4 패킷안에 IPv6 패킷을 채워서 보낸다
IP 어드레스의 활용
IP 어드레스는 주소 할당 방법에 따라 네트워크 부와 호스트 부로 나누어진다. 해당 주소에 접근 범위에 따라 프라이빗 어드레스와 퍼블릭 어드레스로 나누어 진다.
네트워크 부와 호스트 부
IP 어드레스는 네트워크 부 와 호스트 부로 구성된다.
여기서 호스트는 네트워크에 연결된 컴퓨터나 네트워크 장비를 의미한다.
라우터는 송신지 IP 어드레스의 네트워크부의 정보를 보고 데이터를 송실한 목적지가 같은 네트워크 안에 있는지 다른 네트워크에 있는지를 판단하게 된다.
어드레스 클래스
하나의 IP 어드레스 안에서 어디까지가 네트워크 부 이고 어디까지가 호스트 부인지 미리 길이를 고정해서 결정해 둔것을 어드레스 클래스 라고 한다.
어드레스 클래스의 제약
클래스 A의 어드레스는 한 개의 네트워크 당 약 1677만 대의 호스트의 어드레스를 할당할 수 있다.
하지만 실제로 많은 호스트를 하나의 네트워크에 연결하는 경우는 거의 없기 때문에 수많은 어드레스가 사용되지 않고 낭비되고 있다.
서브넷 마스크
어드레스 클래스는 네트워크 부의 길이가 미리 정해져 있다.
하지만 서브넷 마스크를 사용하면 이 길이를 비트 단위로 유연하게 늘려서 쓰는 것이 가능하다.
서브넷 마스크는 IP 어드레스에 추가되는 정보이므로 32비트 길이 만큼의 정보가 더 필요하다
IP 어드레스의 할당 방법
IP 어드레스는 네트워크 상에서 호스트를 식별하기 위해 사용되는데 전체 32비트 중에서 네트워크 부를 제외한 호스트 부 부분만 자유롭게 할당하여 사용할 수 있다.
서브넷 마스크로 네트워크 세분화하기
서브넷 마스크를 사용하면 네트워크를 더 세분화하여 서브 네트워크 ,즉 서브넷을 만들 수 있다.
한 네트워크에 연결하고 싶은 호스트들의 규모에 맞게 적절히 서브넷을 구성하면 부서나 지사, 지역 단위와 같은 작은 네트워크들을 만들어 네트워크 운영을 보다 유연하고 효과적으로 할 수 있다.
가정에서 사무실에서 자유롭게 사용하는 프라이빗 IP 어드레스
프라이빗 어드레스는 가정이나 사내에서 자유롭게 사용할 수 있는 어드레스다.
인터넷이나 다른 네트워크에 연결되지 않아서 주소가 충돌만 나지 않는다면 다른 네트워크에서 사용중인 어드레스를 사용해도 문제는 없다.
다만 프라이빗 IP 어드레스는 인터넷에 연결해도 외부에서 접근할 수 없기 떄문에 NAT(Network Address Translation)와 같은 어드레스 변환 기술을 사용해서 퍼블릭 IP 어드레스로 변환해 주는 기법이 필요하다
프라이빗 IP 어드레스는 같은 네트워크 안에서만 중복되지 않으면 된다.
라우터는 프라이빗 IP 어드레스와 퍼블릭 IP 어드레스 둘 다 가지고 있다.
인터넷에서 접속해야 하는 서버들은 퍼블릭 IP 어드레스가 반드시 필요하다.
퍼블릭 IP 어드레스의 관리
퍼블릭 IP 어드레스는 인터넷 안에서 중복되면 안되기 떄문에 ICANN이나 KRNIC과 같은 단체가 관리하고 있다.
인터넷 레지스트리
퍼블릭 IP는 인터넷 레지스트리를 통해 인터넷 서비스 제공자들에게 할당되고 기업이나 가정은 인터넷 서비스 제공자가 확보한 IP 어드레스들을 빌려서 쓴다.
라우팅이란?
라우팅 과 경로 탐색
인터넷에서 데이터가 목적지까지 제대로 전달되기 위해서는 라우터가 자신과 연결된 다른 라우터를 찾아나가면서 최종 목적지까지 연결되는 경로를 찾을 수 있어야 한다.
이러한 과정을 라우팅이라 하고 이떄 찾은 최적의 경로를 사용해서 통신을 하게 된다.
만약 통신 경로상에 장애가 발생하면 다음 차선책의 통신 경로를 사용하여 통신을 재개한다.
라우팅 프로토콜
데이터가 전송될 경로를 찾기 위해서 네트워크 상의 각 라우터는 서로 누구와 연결되었는지 에 대한 정보를 교환한다.
이때 라우팅 프로토콜이 사용되는데 대표적인 것으로는 BGP, OSPF, RIP 등이 있다.
자율 시스템
인터넷 서비스 제공자가 사용하는 규모가 큰 네트워크에서는 몇 개의 네트워크를 하나로 묶어 자율 시스템이라는 단위로 관리한다.
네트워크의 경로 하나하나 찾아 다니면서 이동하는 대신, AS와 같이 큰 덩어리의 접속 경로 단위로 이동하면 멀리 있는 컴퓨터와 더 빠른 속도로 통신할 수 있다.
라우터와 라우팅 프로토콜
라우터의 역할
라우터의 역할은 네트워크 간의 패킷을 전달하는 것이다.
이떄 연결하고 있는 각 네트워크에서 사용하는 IP 어드레스가 각각 하나씩 필요하며, 결과적으로 네트워크 개수만큼의 IP 어드레스를 여러 개 가지게 된다.
라우팅 테이블
라우터는 내부에 저장하고 있는 라우팅 테이블이라는 정보를 활용하야 라우팅을 한다.
라우팅 테이블에는 목적지 호스트가 속한 네트워크 정보와 그 네트워크로 도달하기 위해 경유해야 하는 라우터의 정보가 들어 있다.
정적 라우팅과 동적 라우팅
라우팅 테이블을 만드는 2가지 방법이 있는데 네트워크 관리자가 직접 수작업으로 라우팅 테이블을 설정하는 방식인 정적 라우팅과 라우팅 프로토콜을 사용하여 자동으로 경로 정보를 수집한 후 라우팅 테이블을 설정하는 방식을 동적 라우팅 이라고 한다.
네트워크 간의 접속 형태가 복잡하면 정적 라우팅으로 설정하는 것이 사실상 불가능하기 때문에 대부분은 동적 라우팅을 사용한다.
라우팅 테이블에 목적지 정보가 없을 경우
인터넷에는 수많은 네트워크가 연결되어 있기 떄문에 모든 네트워크의 통신 경로를 저장하는 것은 불가능하다.
그래서 한 라우터의 라우팅 테이블에 목적지의 정보가 없다면 해당 라우터보다 더 많은 정보를 가지고 있는 기본 라우터 혹은 디폴트 라우터에게 물어보게 된다.
동적 라우팅 알고리즘
라우팅 프로토콜에는 여러 종류가 있는데 경로를 찾는 방식에 따라 크게 거리 벡터형과 링크 상태형의 두 가지가 많이 사용된다.
이들 위에 자율 시스템 AS 간의 통신에서 사용되는 경로 벡터형도 있다.
거리 벡터형
RIP(Routing Information Protocol) 프로토콜이 사용하는 방식으로 네트워크의 통신 상태 정보를 맵으로 관리하면서 상태가 가장 좋은 경로를 선택하는 방식이다.
이때 거리는 경유하는 라우터의 수를 의미하는 홉의 수를 센다.
이 방식은 비교적 구성이 간단한 LAN 네트워크에 적합하다
링크 상태형
OSPF(Open Shortest Path First) 프로토콜이 사용하는 방식으로 네트워크의 통신 상태 정보를 맵으로 관리하면서 상태가 가장 좋은 경로를 선택하는 방식이다.
복잡하고 변화가 잦은 네트워크 구성에 적합하다
AS 내에서 사용되는 OSPF
AS 안에서는 주로 링크 상태형인 OSPF를 사용한다.
다만 링크 상태형은 네트워크 규모가 커지면 맵 정보를 처리하는 부하가 커질 수 있다.
따라서 네트워크를 몇 개의 영역으로 분할한 후 각 영역별로 맵을 따로 만드는 방식을 사용한다.
AS 간에 사용되는 BGP
AS 끼리는 경로 벡터형인 BGP(Border Gateway Protocol)가 사용된다.
경로 벡터형은 경로의 거리 뿐만 아니라 경로 도중에 경유하는 AS 정보도 포함하여 경로 정보를 만든다.
네트워크 오류를 통보하는 ICMP
ICMP의 동작 방식
ICMP(Internet Control Message Protocol) 프로토콜은 데이터 전송 중에 문제가 생길 경우 장애 상황을 통보하기 위해 사용된다.
수신측 컴퓨터가 전원이 꺼져 있어 데이터가 전달되지 못한다면 송신측으로 타입 3번 ICMP 메세지가 전달된다.
송신 측은 이 메세지를 보고 데이터가 수신 측까지 전달되지 않았다는 것을 파악하고 적절한 처리를 하게 된다.
주요 ICMP 메세지
목적지에 도착하기 전에 패킷의 생존 기간이 경과하게 되면 이 패킷은 네트워크 상에서 소멸되는데, 이때 라우터가 패킷을 보낸 송신 측으로 타입 11번 ICMP 메세지를 보내게 된다.
한편 네트워크에 속한 라우터의 IP 어드레스를 알고 싶을 때는 타입 10번과 타입 9번 ICMP 메세지를 사용하면 된다.
어드레스 변환
프라이빗 IP 어드레스를 할당받은 호스트와 퍼블릭 IP 어드레스를 할당받은 호스트는 기본적으로 서로 통신을 하지 못한다.
네트워크 어드레스 변환의 동작 방식
가정이나 사무실의 네트워크에서는 보통 프라이빗 IP 어드레스를 사용한다. 이 주소는 내부에서 사용하는 가상의 주소라서 인터넷에 연결된 퍼블릭 IP 어드레스를 사용하는 서버와의 통신은 불가능하다.
그래서 이떄 네트워크 어드레스 변환 기술이 사용된다.
NAT 기술은 프라이빗 IP 어드레스와 퍼블릭 IP 어드레스 간의 변환 외에도 IPv4와 IPv6 간의 변환에도 응용되고 있다.
송신할 떄
IP 어드레스를 변환했다는 것을 기억해 둔다
송신할 때는 송신지의 프라이빗 IP 어드레스를 라우터의 퍼블릭 IP 어드레스로 바꿔서 데이터를 보냅니다.
수신할 때
기억해 둔 송신지 주소로 데이터를 보낸다
수신할 때는 라우터의 퍼블릭 IP 어드레스를 송신지의 프라이빗 IP 어드레스로 다시 바꿔 보냅니다.
NAT에서 발생할 수 있는 제약 사항
NAT는 단순히 IP 어드레스를 변환할 뿐이다 그래서 몇 가지 상황에서 제약이 발생할 수 있다.
우선 내부의 여러 호스트가 공교롭게 같은 포트 번호를 사용하고 있다면 라우터는 이 요청에 대한 응답을 어느 호스트에게 되돌려 보내야 하는지 포트만 보고 판단하지 못한다.
또 내부에서 보낸 요청에 대한 응답은 받을 수 있지만 외부에서 일방적을 보낸 데이터는 NAT 범위 안에 있는 호스트로 전달되지 않는다.
송신지의 IP 어드레스가 서로 다르지만
둘 다 같은 포트인 49152를 사용하고 있어서 구분을 하지 못한다
외부에서 온 데이터를 전달하지 못한다
요청한 데이터에 대한 응답이 아니라서 어디로 보내야 하는지 모른다.
네트워크 어드레스 포트 변환
NAT의 포트 번호 충돌을 막기 위해 만들어진 방식이 네트워크 어드레스 포트 변환(NAPT, Network Address Port Translation)이다.
이 방식은 IP 어드레스뿐만 아니라 포트 번호도 함께 변환한다.
내부 네트워크에서 프라이빗 IP를 사용하는 여러 호스트가 같은 포토 번호를 사용하고 있다면 외부와 통신할 때 포트 번호가 충돌 나지 않도록 변환해서 요청을 보낸 호스트를 구분할 수 있도록 한다.
외부에서 접속이 가능하게 하려면
사용자의 요청 없이 외부에서 들어오는 요청을 받아야 하는 경우에는 다음과 같은 기법을 사용할 수 있다
메세지의 자동 확인
SNS 등에서는 자동으로 메세지 도착 알림이 되는데 이러한 서비스는 대부분 내부에서 메세지 도착 여부를 정기적으로 확인 요청하는 방법으로 구현된다.
사용자가 직접 요청한 것은 아니지만 내부에서 외부로 자동으로 정볼르 요청하고 응답을 받는 방식이라서 라우터가 데이터를 도달하는 데 큰 문제가 없다.
포트 포워딩
LAN 안에 웹 서버나 FTP 서버를 운영하면서 외부로 이 서비스를 공개해야 할 때가 있다.
이때 라우터의 특정 포트 번호로 통신이 들어오면 내부의 특정 서버에 전달되도록 설정할 수 있는데 이 방법을 포트 포워딩라고 한다.
도메인명
호스트명과 도메인명
서로 다른 컴퓨터를 구분하는 식별자로 IP 어드레스와 호스트명이 있는데, 이들 정보를 관리하기 위해 DNS와 도메인명이라는 것이 만들어졌다.
다만 도메인의 표현 방식이 호스트명을 계층적인 형태로 표현하고 있으나 실제로는 단순히 분류 체계의 성격으로 표현하고 있을 뿐 실제 네트워크 구성 형태가 계층적이라는 의미는 아니다.
DNS 서버에 질의하기
도메인명에 대응하는 IP 어드레스 정보가 알고 싶다면 DNS 서버에게 물어보면 된다.
다만 사전에 컴퓨터나 라우터에 DNS 서버의 IP 어드레스가 등록되어 있어야 한다.
도메인의 계층 구조
도메인명은 계층 구조 형태를 마침표로 구분하여 표현한다.
가장 뒤에 나오는 kr이나 com과 같은 도메인은 상위 도메인에 해당하고, 최상위 도메인 혹은 탑 레벨 도메인이라고도 부른다.
탑 레벨 도메인의 하위 도메인은 2단계 도메인 혹은 서브 도메인이라고 부른다.
DNS 서버의 계층 구조
도메인명의 계층과 완전히 일치하지는 않지만 DNS 서버도 계층적으로 구성된다.
DNS 서버는 자신이 담당하는 영역에 대한 도메인 명을 관리하게 되는데, 이렇게 도메인명 데이터를 직접 관리하는 DNS 서버를 DNS 콘텐츠 서버라고 부른다.
DNS 서버에 질의하는 처리 과정
DNS 서버는 크게 도메인명을 관리하는 콘텐츠 서버와 질의에 응답하기 위한 캐시 서버의 두 종류로 구분된다.
DNS 캐시 서버는 루트 네임 서버부터 순차적으로 질의하게 되고, 질의 결과로 IP 어드레스를 알게 되면 그 내용을 요청한 클라이언트에게 응답하게 된다.
한번 질의한 내용은 캐시로 보관되기 때문에 이후 같은 질의가 들어오면 콘텐츠 서버까지 가지 않고 바로 IP 어드레스를 알려줄 수 있다.
DNS 캐시 서버로 도메인명으로 IP 어드레스를 질의한다.
루트 네임 서버에 도메인 명으로 IP 어드레스를 질의한다.
KR을 관리하는 DNS 서버의 IP 어드레스를 응답으로 회신한다.
KR DNS 서버로 도메인명으로 IP 어드레스를 질의한다.
sample.co.kr을 관리하는 DNS 서버의 IP 어드레스를 응답으로 회신한다.
sample.co.kr을 관리하는 DNS 서버에 도메인명으로 IP 어드레스를 질의한다.
www.sample.co.kr 도메인의 IP 어드레스를 응답으로 회신한다.
DNS에 도메인 등록하기
도메인명은 퍼블릭 IP 어드레스와 마찬가지로 ICANN에서 관리한다.
이 떄 신청한 도메인명은 해당 사업자가 운영하는 DNS 서버에 등록된다.
이때 DNS 서버에 등록되는 정보를 리소스 레코드라고 부르고 리소스 레코드가 등록된 파일을 존 파일이라고 한다.
리소스 레코드의 의미
레코드 | 의미 |
---|---|
SOA 레코드 | 해당 도메인명을 관리하는 DNS 서버를 기술함 |
NS 레코드 | 프라이머리 세컨더리 DNS 서벌르 기술함 |
A 레코드 | 호스트명과 IP 어드레스를 연결함 |
CNAME 레코드 | A 레도크에서 지정된 호스트에 별명을 부여함 |
MX 레코드 | @도메인명과 같은 형식의 메일 어드레스와 메일 서버를 연결함 |
IP 어드레스를 자동으로 할당하는 DHCP
DHCP의 장점
TCP/IP가 제대로 동작하기 위해서는 네트워크에 속한 각 호스트의 IP 어드레스가 중복되지 않아야 한다.
중복되지 않게 관리하는 작업을 자동으로 해주는 것이 DHCP(Dynamic Host Configuration Protocol)이다.
이 방식을 사용하면 호스트가 네트워크에 연결될 때 IP 어드레스와 서브넷 마스크 등의 정보가 자동으로 설정된다.
IP 어드레스 할당 방법
네트워크에 새로운 호스트가 연결된 직후에는 아직 IP 어드레스가 할당되지 않은 상태이고 DHCP 서버의 IP 어드레스 조차 모르는 상태이므로 특정 호스트와 통신하는 것이 불가능하다.
그래서 신규 호스트는 네트워크의 모든 호스트에게 브로드캐스트 방식으로 DHCP 발견 메세지를 보내고, 이 메시지를 받은 DHCP 서버가 사용가능한 IP 어드레스를 알려주는 방식으로 자동 할당이 이루어진다.
단 이때 신규 호스트에만 선택적으로 IP 어드레스 정보를 알려주지 못한다.
그래서 DHCP 서버도 브로드캐스트 방식으로 네트워크 내의 모든 호스트에게 사용 가능한 IP 어드레스를 알려주게 된다.
ipconfig 명령과 ping 명령
ping 명령으로 통신 상대의 생사 확인하기
ping은 지정한 IP 어드레스로 ICMP 타입 8번 메시지를 보내는 명령이다.
ICMP 타입 8번 메시지는 에코를 요청하는 것으로 송신자가 수신자에게 메세지를 보낸 후 수신자가 자신이 받은 메세지를 다시 송신자에게 되돌려 보내라는 의미다.
에코 요청을 답은 수신자는 응답으로 ICMP타입 0번 메세지를 보내는데 이 메시지는 에코 응답에 해당한다.
이렇게 에코 요청과 응답이 오가면 상대방이 통신이 가능한 상태인지 확인할 수 있게 된다.
nslookup 명령으로 IP 어드레스 알아내기
도메인명으로 IP 어드레스 알아내기
웹 브라우저와 같은 애플리케이션에서 URL에 도메인 명을 입력하게 되면 웹 서버와 통신하기 전에 DNS 서버에게 IP 어드레스를 물어보는 작업이 선행된다.
이렇게 웹 브라우저가 수행하는 것과 동일한 작업을 nslookup이라고 한다.
nslookup 도메인명 형태로 입력하면 IP 어드레스를 확인할 수 있다.
IP 어드레스로 도메인명 알아내기
도메인명을 주고 IP 어드레스를 알아내는 방법을 정방향 조회라고 하고 반대로 IP 어드레스를 주고 도메인명을 알아내는 방법을 역방향 조회라고 한다.
역방향 조회를 하려면 nslookup IP 어드레스를 입력하면 된다.
MX 레코드 살펴보기
DNS 서버에 등록된 정보에는 도메인명과 IP 어드레스를 연결한 A 레코드 외에도 메일 어드레스를 위한 MX 레코드도 있다.
nslookup -type=mx 도메인명 을 실행하면 레코드 정보도 확인할 수 있다.