📝 Kali 가상머신에서 dig(Domain Information Groper) 명령으로 naver.com 도메인 정보 조회
┌──(kali㉿kali)-[~]
└─$ dig www.naver.com # 사용법 dig 도메인이름 [레코드유형]
; <<>> DiG 9.19.17-2~kali1-Kali <<>> www.naver.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61471
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
;; QUESTION SECTION: # 질의 내용
→ www.naver.com 도메인 이름으로
A 유형의 레코드 질의
;www.naver.com. IN A
;; ANSWER SECTION: # 질의 결과
www.naver.com. 5 IN CNAME www.naver.com.nheos.com.
www.naver.com.nheos.com. 5 IN A 223.130.200.219
www.naver.com.nheos.com. 5 IN A 223.130.192.248
www.naver.com.nheos.com. 5 IN A 223.130.192.247
www.naver.com.nheos.com. 5 IN A 223.130.200.236
;; Query time: 19 msec
;; SERVER: 192.168.40.2#53(192.168.40.2) (UDP)
;; WHEN: Thu Mar 21 20:34:03 EDT 2024
;; MSG SIZE rcvd: 140
┌──(kali㉿kali)-[~]
└─$ dig blog.naver.com SOA
; <<>> DiG 9.19.17-2~kali1-Kali <<>> blog.naver.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15808
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
;; QUESTION SECTION:
;blog.naver.com. IN SOA
;; ANSWER SECTION:
blog.naver.com. 5 IN CNAME blog.naver.com.nheos.com.
;; AUTHORITY SECTION:
nheos.com. 5 IN SOA gns1.nheos.com. hostmaster.nheos.com. 2024032101 10800 3600 604800 180
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; Query time: 19 msec
;; SERVER: 192.168.40.2#53(192.168.40.2) (UDP)
;; WHEN: Thu Mar 21 20:37:25 EDT 2024
;; MSG SIZE rcvd: 142
gns1.nheos.com. Primary Name Server
hostmaster.nheos.com. 관리자 이메일 주소 ⇒ hostmaster@nheos.com 의미
2024032101 시리얼 번호
10800 Refresh 값 : 3시간 주기로 Secondary DNS가 Zone Transfer를 수행
3600 Retry 값 : Secondary DNS가 응답을 받지 못 하면 1시간 후 재시도
604800 Expire 값 : 7일 동안 Secondary DNS가 응답을 받지 못 하면 더 이상 해당 Zone 파일을
Secondary DNS에서 사용하지 않음
180 SOA 레코드 TTL(Time To Live) 값 : DNS Resolver에서 캐시되는 시간 (180초)
▪ 동적 호스트 구성 프로토콜
▫ 호스트의 IP 구성 관리를 단순화하는 IP 표준
▫ IP 주소와 관련된 기타 구성 정보(Subnet mask, Gateway IP 주소, DNS 서버 IP 주소 등)를 DHCP 클라이언트에게 동적으로 할당하는 서비스
▫ 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용
서비스 포트: 서버 67(bootps), 클라이언트 38(bootpc)
▫ DHCP 서버로부터 IP를 할당 받은 후 임대 시간(Lease Time)의 50%가 지나면 DHCP 갱신 과정을 수행
▫ 이미 사용 중인 IP 정보가 있으므로 DHCP Discover, DHCP Offer 과정은 생략
▫ 첫 번째 갱신에 실패하면 남은 시간의 50%가 지난 시점(즉, 초기 임대 시간의 75%가 지난 시점)에 다시 갱신을 시도
▫ 두 번째 갱신에 실패하면 추가 갱신 없이 임대 시간이 모두 지난 시점에 IP를 반납하고 처음부터 다시 IP를 할당 받음
▪ 물리적 주소
▫ 네트워크 세그먼트의 데이터 링크 계층(L2)에서의 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자
▫ LAN 카드(=네트워크 인터페이스 카드 = 네트워크 인터페이스 컨트롤러 = NIC)에 새겨진 주소(BIA, Burned-In Address)
▫ 48bit → OUI(Organizationally unique identifier, 24bit) + UAA(Universally Administered Address, 24bit)
📢 여기서 잠깐!
<OUI>
IEEE가 제조사에 할당
https://standards-oui.ieee.org/oui/oui.txt
<UAA>
각 제조사에서 네트워크 구성 요소에 할당
▫ LAN 영역에서 내부 통신을 수행하기 위해 필요한 주소
▫ 기본적으로 NIC는 패킷의 목적지 MAC 주소가 자신의 MAC 주소와 다르면 폐기
▫ 무차별 모드로 NIC를 구성하면 자신의 MAC 주소와 상관 없는 패킷이 들어와도 이를 분석할 수 있도록 메모리에 올려 처리할 수 있게 함
▫ 네트워크 상태를 모니터링하거나 디버깅/분석 용도로 네트워크 전체 패킷을 수집해야 하는 경우 사용
📝 IP 주소와 MAC 주소
구분 구성 기능
------------ ---------------------------------------- ---------------------
IP 주소 32비트 → 네트워크ID + 호스트ID IP 주소 기반 라우팅
MAC 주소 48비트 → OUI + UAA MAC 주소 기반 라우팅
▪ 주소 결정 프로토콜
▫ 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용되는 프로토콜
▫ 상대방의 MAC 주소를 알아내기 위해 사용되는 프로토콜
▫ 데이터 통신을 위해 2계층의 MAC 주소와 3계층 IP 주소 두 개를 사용
→ IP 주소 체계는 MAC 주소와 전혀 연관성이 없으므로 두 주소를 연계시켜주는 메커니즘이 필요한데 이 때 사용되는 것이 ARP
Hardware Type : 하드웨어 주소(MAC) 유형을 나타내며, 이더넷 통신 시 항상 1로 설정된다.
Protocol Type : 매핑 대상인 프로토콜 주소의 유형을 나타내며 IPv4의 경우 0x0800으로 설정 된다.
Hardware Address Length : 하드웨어 주소(MAC)의 길이를 byte로 나타낸다. 이더넷 상에서 6으로 설정된다.
Protocol Address Length : 프로토콜 주소의 길이를 byte로 나타낸다. IPv4의 경우 4로 설정 된다.
Operation Code(Opcode) : ARP의 구체적인 동작을 나타낸다.
⑴ ARP Request
⑵ ARP Reply
⑶ RARP Request
⑷ RARP Rely
Source Hardware Address : 송신자의 MAC 주소
Source Protocol Address : 송신자의 IP 주소
Target Hardware Address : 수신자의 MAC주소, ARP Request 동작시 0으로 설정된다.
(이더넷 헤더의 목적지 주소가 ff:ff:ff:ff:ff:ff로 설정되면 브로드 캐스팅이 됨)
Target Protocol Address : 수신자의 IP 주소
📢 여기서 잠깐!
목적지 MAC 주소를 브로드캐스트(ff-ff-ff-ff-ff-ff) → 이더넷 헤더
대상 MAC 주소를 00-00-00-00-00-00 → ARP 헤더
패킷을 보낼 때 마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하되므로 ARP Reply 정보를 메모리에 저장해서 재사용하도록 하는 것
C:\Users\r2com> arp -d # ARP 캐시 테이블 삭제
C:\Users\r2com> ping 8.8.8.8 # 구글 DNS
Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=33ms TTL=128
Reply from 8.8.8.8: bytes=32 time=31ms TTL=128
Reply from 8.8.8.8: bytes=32 time=33ms TTL=128
Reply from 8.8.8.8: bytes=32 time=33ms TTL=128
Ping statistics for 8.8.8.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 31ms, Maximum = 33ms, Average = 32ms
C:\Users\r2com> arp -a # ARP 캐시 테이블 확인
Interface: 192.168.40.131 --- 0x6 # 해당 호스트의 IP 주소
Internet Address Physical Address Type
192.168.40.2 00-50-56-f3-7b-bd dynamic # 기본 게이트웨이의 NIC
224.0.0.22 01-00-5e-00-00-16 static
C:\Users\r2com> ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : WinDev2401Eval
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : localdomain
Ethernet adapter Ethernet1:
Connection-specific DNS Suffix . : localdomain
Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection #2
Physical Address. . . . . . . . . : 00-0C-29-DA-3C-1F
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::98be:455e:650f:f92f%6(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.40.131(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Tuesday, February 14, 1888 2:36:12 AM
Lease Expires . . . . . . . . . . : Thursday, March 21, 2024 7:49:29 PM
Default Gateway . . . . . . . . . : 192.168.40.2
DHCP Server . . . . . . . . . . . : 192.168.40.254
DHCPv6 IAID . . . . . . . . . . . : 167775273
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2D-8F-64-61-00-0C-29-DA-3C-15
DNS Servers . . . . . . . . . . . : 192.168.40.2
Primary WINS Server . . . . . . . : 192.168.40.2
NetBIOS over Tcpip. . . . . . . . : Enabled
📝 ping 8.8.8.8 동작 순서
출발지 IP 목적지 IP
IP 192.168.40.131 8.8.8.8
Subnet mask 255.255.255.0 255.255.255.0 → 출발지의 Subnet mask 적용
Network ID 192.168.40. 8.8.8. → 두 개의 Network ID가 서로 상이
→ 목적지 주소를 게이트웨이 주소로 변경
# 수신처 미정 (목적지 MAC이 설정되지 않음)
출발지 목적지
IP 192.168.40.131 192.168.40.2
# LAN 영역의 모든 호스트는 ARP 브로드캐스팅 질의를 수신
목적지 IP 주소가 일치하는 호스트가 ARP Reply를 전송
MAC 00-0C-29-DA-3C-1F 00-00-00-00-00-00
출발지MAC | 목적지MAC | 출발지IP | 목적지IP | 출발지MAC | 목적지MAC
00-0C-29-DA-3C-1F | FF-FF-FF-FF-FF-FF | 192.168.40.131 | 192.168.40.2 | 00-0C-29-DA-3C-1F | 00-00-00-00-00-00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
브로드캐스팅 | ARP Request
출발지 목적지
IP 192.168.40.2 192.168.40.131
MAC 00-50-56-f3-7b-bd 00-0C-29-DA-3C-1F
출발지MAC | 목적지MAC | 출발지IP | 목적지IP | 출발지MAC | 목적지MAC
00-50-56-f3-7b-bd | 00-0C-29-DA-3C-1F | 192.168.40.2 | 192.168.40.131 | 00-50-56-f3-7b-bd | 00-0C-29-DA-3C-1F
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
유니캐스트 ARP Reply
C:\Users\User> arp -a
Interface: 192.168.40.131 --- 0x6
Internet Address Physical Address Type
192.168.40.2 00-50-56-f3-7b-bd dynamic
~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
224.0.0.22 01-00-5e-00-00-16 static
출발지 목적지
IP 192.168.40.131 192.168.40.2
MAC 00-0C-29-DA-3C-1F 00-50-56-f3-7b-bd
ARP 요청과 응답이 일어나는 영역
→ LAN 영역
▪ 동일한 네트워크 ID를 공유하는 호스트가 MAC 주소에 기반해서 스위칭 방식으로 내부 통신을 수행하면서 단일 ARP 영역을 생성하는 공간
네트워크에서 출발지에서 목적지로 데이터를 전송할 때 사용
유니캐스트
▫ 1 → 1
▫ 출발지와 목적지가 1:1로 통신
▫ 대부분의 통신은 유니캐스트 방식으로 진행
▫ TCP, UDP 모두 지원
브로드캐스트
▫ 1 → All
▫ 동일 네트워크에 존재하는 모든 호스트가 목적지
▫ 목적지 주소가 All(ff-ff-ff-ff-ff-ff)으로 표기되어 있는 통신 방식
▫ 로컬 네트워크에서 모든 호스트에 패킷을 전달해야 할 때 사용
▫ 유니캐스트 통신 전에 상대방(목적지)의 MAC 주소를 취득하기 위해 사용 = ARP Request
▫ UDP 지원
멀티캐스트
▫ 1 → N (멀티캐스트 구독 호스트 = 그룹)
▫ 하나의 출발지에서 다수의 특정 목적지로 데이터를 전송
▫ 멀티캐스트 그룹 주소를 이용해서 해당 그룹에 속한 다수의 목적지로 패킷을 전송하기 위한 통신 방식
▫ IPTV와 같은 실시간 방송, 사내 방송, 증권 시세와 같은 단방향으로 다수에게 동일한 내용을 전달할 때 사용
▫ UDP 사용
애니캐스트
▫ 1 → 1 (동일 그룹 내의 호스트 1개)
▫ 다수의 동일 그룹 중 가장 가까운 호스트에서 응답
▫ 애니캐스트 주소가 같은 호스트들 중 가장 가깝거나 효율적으로 서비스할 수 있는 호스트와 통신하는 방식
▫ 가장 가까운 DNS 서버를 찾을 때 사용
▫ 비음성 통신에서 데이터를 전송하기 위한 일련의 과정, 단계, 절차
▫ 송신자 운영체제가 응용 계층에서 시작해 전송, 네트워크, 데이터 링크 계층 순으로 데이터를 전송
▫ 수신자 운영체제가 역으로 물리 계층에서 시작해 데이터 링크, 네트워크, 전송, 응용 계층 순으로 데이터를 수신
--------------- 데이터 송신 ------------------>
<-------------- 데이터 수신 -------------------
응용 → 전송 → 네트워크 → 데이터 링크 → 물리
논리적이고 추상적 >>> ................................... >>> 물리적이고 구체적
헤더를 추가하는 과정
인캡슐레이션
▫ ISO(International Organization for Standardization, 국제 표준 기구)에서 개발
▫ 서로 다른 시스템(개방형 시스템, Open System)간 통신을 허용(상호 연결, Inter Connection)하기 위해 만든 모델
▫ OSI(Open System Interconnection)
📝 L7 응용 계층
애플리케이션 프로세스를 정의하고 애플리케이션 서비스 수행
User Interface 제공
▫ UI를 통해 데이터를 생성
▫ HTTP, FTP, Telnet, SMTP, SNMP, NFS, ...
📝 L6 표현 계층
📝 L5 세션 계층
📝 L4 전송 계층
양 끝단(end-to-end) 사이에 가상 회선(virual circuit) 설정·유지·해지
패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할
▫ 시퀀스 번호
패킷을 보내는 순서를 명시
▫ ACK 번호
받는 순서를 명시
로드밸런서, 방화벽
📝 L3 네트워크 계층
최적의 경로 결정(routing)
라우터(router)
IP 주소를 사용해 최적의 경로를 찾아서 패킷을 전송하는 역할의 장비
📝 L2 데이터 링크 계층
전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리
흐름 제어(flow control) - 수신자 상태에 따라 데이터를 전송
NIC, 스위치(switch)
📝 L1 물리 계층
전기적, 기계적, 기능적, 절차적 수단을 제공
들어온 전기 신호를 그대로 전달
주소 개념이 없기 때문에 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 신호를 전송
(더미) 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭
Forwarding
하나의 송신지 포트에서 하나의 수신지 포트로 트래픽을 전달
Flooding
송신지 포트를 제외한 나머지 포트들로 트래픽을 전달
Hub
주소가 없으므로 모든 포트로 Flooding 처리
📝 Vender Specific Protocol (독점적 프로토콜)
특정 업체에서 개발한 프로토콜
다른 프로토콜과 호환이 불가능
📝 Open Protocol (비독점적 프로토콜)
학교 또는 연구기관에서 개발
이기종 장비 간 통신이 가능
TCP/IP, 802.3 등
헤더3 + 헤더2 + 헤더1 + 페이로드
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
| +-- payload : 사용자가 상대방에게 전송하고자 하는
| 실제 정보가 담긴 공간
+-- 보내는 호스트의 주소(출발지 주소)와
받는 호스트의 주소(목적지 주소)가 담긴 공간
💡 메시지(message)
페이로드 만으로 이루어진 데이터 전송 단위
📝 인캡슐레이션
페이로드 앞에 헤더를 붙이는 과정
운영체제가 데이터를 송신하는 과정
💡 메시지 → 데이터그램/세그먼트 → 패킷 → 프레임 → 비트
📝 디캡슐레이션
헤더를 떼는 과정
데이터를 수신하는 과정
💡 비트 → 프레임 → 패킷 → 데이터그램/세그먼트 → 메시지
📝 인캡슐레이션의 역할
정보은닉
▫ 라우터는 패킷 헤더만 읽을 수 있을 뿐 데이터그램/세그먼트 헤더 이하는 읽을 수 없음
▫ 스위치는 프레임 헤더만 읽을 수 있을 뿐 패킷 헤더 이하는 읽을 수 없음
데이터그램 헤더 + UDP 페이로드
또는
세그먼트 헤더 + TCP 페이로드
데이터그램/세그먼트 헤더
▫ 페이로드 앞에 붙는 첫번째 헤더
▫ 출발지, 목적지 포트 번호를 포함
수신 측 운영체제
▫ 데이터그램 또는 세그먼트 헤더에 담긴 포트 번호를 통해 페이로드의 내용이 어떤 종류의 서비스로 전달할지 판단
송신 측 기준
▫ 목적지 포트
일반적인 서비스 포트 번호 사용
c:\Users\r2com> type c:\Windows\System32\drivers\etc\services # 확인 가능
▫ 출발지 포트
1024번 이후의 포트 번호 사용
패킷 헤더 + 데이터그램 헤더 + UDP 페이로드
또는
패킷 헤더 + 세그먼트 헤더 + TCP 페이로드
패킷 헤더
▫ 데이터그램/세그먼트 앞에 붙이는 두 번째 헤더
▫ 출발지, 목적지 IP 주소를 포함
▫ 라우터 장비가 라우팅 기능을 수행할 때 참조하는 부분
프레임 헤더 + 패킷 헤더 + 데이터그램 헤더 + UDP 페이로드 + 트레일
또는
프레임 헤더 + 패킷 헤더 + 세그먼트 헤더 + TCP 페이로드 + 트레일
프레임 헤더
▫ 패킷 앞에 붙이는 세 번째 헤더
▫ LAN 영역인 경우 MAC 주소를 포함
▫ 스위치 장비가 스위칭 기능을 수행할 때 참조하는 부분
▫ LAN 영역과 WAN 영역에 따라 상이하게 설정
구분 LAN 영역 WAN 영역
--------------------- ----------------------- ---------------------
데이터그램/세그먼트 헤더 출발지/목적지 포트 번호 출발지/목적지 포트 번호
패킷 헤더 출발지/목적지 IP 주소 출발지/목적지 IP 주소
프레임 헤더 출발지/목적지 MAC 주소 WAN 영역에 대한 정보
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~