1. OSI 7계층은 이론적인 모델이며 이를 기반으로 TCP/UDP 등으로 사용된다.
TCP는 OSI와 다르다.
TCP에서는 OSI의 L7,L6,L5가 Aplication Layer으로 함께 사용된다.
TCP에서는 OSI의 L4가 Transport Layer로 사용된다.
TCP에서는 OSI의 L3가 Internet Layer로 사용된다.
TCP에서는 OSI의 L1,L2가 Network Layer로 사용된다.
따라서 OSI 계층은 7가지로 나누는데 TCP는 4가지로 나누어 구분하고 있다.
2. TCP(Transmission Control Protocol)에 대해 좀 더 자세히 알아보자.
2-1 앞서 살펴본 것처럼 TCP는 OSI와 다르게 4개의 계층으로 이루어져 있다. 첫번째로 가장 하단에 있는 Network Layer or Network Access Layer을 알아보자. 네트워크 접근 계층(The Network Access Layer)은 물리적 네트워크(L1,L2)에서 전송 데이터를 다룹니다.(이들 데이터를 다루는 프로토콜으로 ARP, RARP가 있음.)
2-1 ARP(Address Resolution Protocol) 주소 결정 프로토콜이란?
목적지의 MAC(그래픽카드의 고유 번호) 주소를 모를 경우에 이를 확인하는 프로토콜이라고 한다. 이미 정리된 글들이 있다. https://aws-hyoh.tistory.com/70 (한국어), https://www.auvik.com/franklyit/blog/what-is-an-arp-table/ (영어) 대략 정리해보면 LAN으로 네트워크를 구성할 때 MAC 주소와 IP 주소를 일치시키기 위해 ARP Table로 관리한다.
2-2 RARP(Revers Address Resolution Protocol) 역순 주소 결정 프로토콜이란?
목적지의 IP 주소를 모를 경우 이를 확인하는 프로토콜이라고 한다. http://www.ktword.co.kr/test/view/view.php?no=2386 (사전) 상에서는 MAC 주소를 가지고 있는 ARP를 이용하여 IP 주소를 얻을 수 있다고 한다. 상식적으로 생각해보면 ARP 테이블이 존재한다면 이론상 IP/MAC/ARP 중 하나만 접근해도 변환하여 알아 낼 수 있다는 의미이다.
2-3 그래서 도대체 어떻게 확인할 수 있을까?
2-3-1 MAC주소 알아내기
자신의 MAC 주소를 알아내보자. https://www.lge.co.kr/support/solutions-20153013802564 (ipconfig, getmac/v 명령어) cmd 창으로 확인할 수 있다. 공유기로 확인해보자. 192.168.0.1에 접속하여 mac 주소를 확인할 수도 있다.
2-3-2 IPTIME의 WAN과 공인 IP를 MACVLAN으로 관리하는 기능.
재밌는 것은 WAN용 MACVLAN이 있는데 https://iptime.com/iptime/?uid=24739&mod=document&page_id=67
IPTIME 공유기에서 제공하는 기능이다. 앞에서 살펴본 블로그에서는 LAN 환경에서 고유 주소인 MAC 주소를 IP 주소와 일치시킨 ARP table로 관리한다고 했는데 WAN(Wide area network) 광역 통신망이 나온다.
설명을 보면 WAN 네트워크에는 공인 IP를 사용하는데 IPTIME의 기능중 하나인 MACVLAN은 공인 IP를 할당받아 공유기를 사용하지 않는 환경과 동일한 인터넷 환경을 구성할 수 있는 기능이다.라고 설명되어 있다. (여기서 공인 IP는 ISP에게 할당된 IP 주소이다.)
예를들은 사례를 보면 공인 IP가 필요한 KT IPTV는 지정된 포트로만 연결해야 했는데 MACVLAN을 이용하면 지정된 포트로 선을 연결하지 않아도 사용이 가능해진다. 즉, 선을 꼽지 말하는 것이 아니라 공유기에서 MACVLAN으로 관리하기 때문에 다른 포트에 연결해도 된다는 것이다. (물론 해볼 일이 없다.)
2-3-3 ARP Table 확인하는 명령어
cmd창에서 arp -a라고 하면 여러가지 항목이 쭉 뜬다.
IP타임 공유기로 확인해보자. 참고로 데스크탑(LAN선) - 휴대폰(wifi) - 노트북(wifi)로 연결된 상태이다.
노트북에 cmd창으로 확인해보면 IPv4 주소가 192.168.0.3인 것을 확인할 수 있다. 휴대폰은 와이파이 버튼 - 설정(톱니바퀴) - 더보기 - 맨 아래에 192.168.0.5가 있는 것을 확인할 수 있다. 재밌는 것은 MAC 주소 유형을 여기서도 랜덤 MAC과 휴대전화 MAC으로 설정할 수 있는데 기존의 랜덤 MAC 주소는 사라지고 재할당이 되는 것을 확인할 수 있다.
2-3-4 근데 왜 재할당을 할까?
https://kr.ldplayer.net/blog/45.html
브릿지 기능 소개 및 사용 방법-네트워크-LDPlayer
브릿지 모드의 사용 방법을 소개해 드립니다
kr.ldplayer.net
IP 재할당으로 리세마라를 쉽게 할 수 있다고 한다. ^^
https://namu.wiki/w/%EB%A6%AC%EC%84%B8%EB%A7%88%EB%9D%BC
리세마라
リセマラ 게임 을 플레이하는 도중에 원하는 결과가 나오지 않았을 경우, 처음부터 다시 시작하거나 세이브 해 둔 파
namu.wiki
2-3-5 휴대폰에서 가상의 MAC 주소가 바뀌면 IP 주소도 바뀌는데 노트북의 경우 arp table도 바뀌는 걸까?
현재 노트북의 IP는 192.168.0.3이다. CMD의 getmac/v로 확인한 고유한 물리주소는 당연히 바뀌지 않는다. 그런데 휴대폰은 와이파이 설정에서 MAC주소를 바꾸면 IP 주소가 재할당이 된다. 그러면 arp table은 어떻게 될까? 노트북의 WAN MAC 주소를 04-7c-16-EC-14-33에서 맨 끝자리을 34로 바꿔보자.
노트북의 경우 IP가 재할당이 되지 않았고 arp table도 변경되지 않았다. 분명히 WAN MAC 주소를 변경했는데 왜 그런걸까? 휴대폰 자체적으로 랜덤 MAC 주소를 발생시킬 수 있다. 그러나 노트북은 랜덤 MAC주소를 발생시킬 수 없다. 그래서 WAN MAC 주소를 변경한다고 하더라도 arp table은 달라지지 않는다.
2-3-6 시스코 네트워크 장비는 arp와 관련된 다양한 기능을 제공한다.
ARP Commands
ARP Commands
www.cisco.com
여기보면 arp 캐시가 생성되며 DAGR라는 그룹이 생성되어 관리된다는 것을 알 수 있다. 다음 기사를 보면 https://m.boannews.com/html/detail.html?idx=48352 공격자의 MAC 주소로 우선순위가 변경되어 잘못 보내게 되어 문제가 생긴다는 기사가 있다. 실습해보고 싶다면 개인 망을 구성하여 해보면 된다. https://www.geeksforgeeks.org/arp-in-wireshark/
2-3-7 node.js로 arp 테스트해보기
npm init
npm install
npm install debug
npm install --save getmac
npm install pcap
WinPcap - Home
For many years, WinPcap has been recognized as the industry-standard tool for link-layer network access in Windows environments, allowing applications to capture and transmit network packets bypassing the protocol stack, and including kernel-level packet f
www.winpcap.org
npm ERR! pcap_binding.cc
pcap을 설치할 때 에러가 나온다. winPcap을 설치해도 안되는데 이유는
https://github.com/node-pcap/node_pcap/issues/249
Installation on Windows 10 still fails because of missing headers · Issue #249 · node-pcap/node_pcap
The last comment on #196 is "what about windows?", but there hasn't really been any motion there for a while, even though this seems to have been fixed on OSX and the various Linuces. A bare npm in...
github.com
라고 한다. 유튜브에 검색해보니 자바환경에서도 해볼 수 있다고 한다. https://www.youtube.com/watch?v=TZ98OeScUxI&list=PLRx0vPvlEmdBCJ68hRavPf4cJNYVsOcXs&index=6
2-3-8 Proxyman
Proxyman: Capture, Inspect, and Decrypt HTTP(s) traffic from NodeJS.
Narrow down your search with Proxyman's Multiple Filters. You can combine complex filtered criteria like Protocol, Content-Type, URL, Request Header, Response Header, Body, etc that find exact what you're looking for.
proxyman.io
node.js를 캡처할 수 있다고 하는데 mac에서만 가능하다. windows 버전에서는 지원하지 않는다. 패킷을 가져오는 건지 뭔지 잘 모르겠다. https://sequentialread.com/how-to-get-a-decrypted-wireshark-packet-capture-from-a-java-application-that-is-talking-https/
How to get a decrypted Wireshark packet capture from a Java application that is talking HTTPS
I have a Java application that is talking HTTPS with some server I don't have access to... How can I capture the traffic so that I can see the contents of the requests and responses? This post is Part 1 of a series. If you are interested in node.js
sequentialread.com
2018년에 wireshark로 node의 패킷 캡처를 하는 것을 만들려고 했지만 되지 않았다. 어찌되었든 arp에 대해서는 자바로 실습하는 게 아니라면 해보긴 어려울 것 같다.
'컴퓨터공학 > 네트워크관리사 2급 필기+실기' 카테고리의 다른 글
네트워크 관리사 2급 필기 [TCP/IP] #1 (1) | 2024.03.08 |
---|---|
네트워크 관리사 2급 필기 [네트워크 일반] #4 (0) | 2024.02.10 |
네트워크 관리사 2급 필기 [네트워크 일반] #3 (1) | 2024.02.04 |
네트워크 관리사 2급 필기 [네트워크 일반] #2 (1) | 2024.01.28 |
네트워크 관리사 2급 필기 [네트워크 일반] #1 (0) | 2024.01.25 |