네트워크보안(2) | TCP/IP 구조2
# Internet 계층(L2)
- 기능
- 송수신자의 IP를 읽어서 경로를 결정 및 전송
- Point-to-Point 패킷 전송
- 논리주소 지정
- 주소 변환
- 단위 : datagram ( message + tcp/udp header + IP header)
- 프로토콜
- IP, ICMP의 TCP/IP 프로토콜군
- 멀티캐스팅을 위한 IGMP
- 라우팅을 위한 BGP, OSPF, RIP 등
1. 라우팅
IP header의 dst IP 주소를 읽어 최단 경로 선정 → 전송 수행
| 라우팅 고정 여부에 따른 프로토콜 종류
- 정적 라우팅 : 관리자가 미리 최적의 경로를 분석하여 설정하며, 비교적 환경변화가 적은 네트워크에 적합
- 동적 라우팅 : 라우팅 알고리즘에 기반하여 실시간으로 경로 설정
| 라우팅 범위에 따른 프로토콜 종류
- IGP (internet gateway routing protocol) : 동일 그룹(isp) 내에서 라우팅 정보교환
- EGP (exterior ~) : 다른 그룹과 라우팅 정보 교환
| 프로토콜 (동적 라우팅 기반)
distance vector | link state | |
알고리즘 | 최단 경로를 구하는 벨만-포드 알고리즘 기반 | 다익스트라 알고리즘 기반 |
동작원리 | 라우터는 자신이 아는 목적지까지의 거리 정보를 인접 라우터에게 전달 인접 라우터는 이 정보를 토대로 자신의 라우팅 테이블을 갱신. |
네트워크의 전체 링크 상태 정보를 바탕으로 최적 경로 계산 |
라우팅 정보 | 목적지까지의 거리(Hop Count) + 방향(인접 라우터) |
전체 네트워크의 토폴로지 (링크 상태 정보) |
정보 전송 시점 | 일정 주기(예: 30초) | 변화 발생시에만 |
대표 프로토콜 | RIP, ICRP, EIGRP,BGP | OSFP, IS-IS |
장점 | 메모리 절약 (한 라우터가 모든 라우팅 정보를 가지고 있을 필요가 없기 때문에 ) |
빠른 수렴 시간 필요할 때만 정보 교환 트래픽 효율적 |
단점 | 트래픽 낭비 (주기적 업데이트) 수렴 속도느림 홉 제한 정보변경에 문제 시, 라우팅loop 발생가능 |
네트워크 전체 정보 유지에 많은 메모리 사용 복잡한 구현 라우터의 CPU 사용량 많아짐 |
2. IP
| IP
주소화, 데이터그램 포맷, 패킷 핸들링 등을 정의해놓은 인터넷 규약
- IPv4 : 32bit, 네트워크 id+호스트id로 구분
- IPv6 : 128bit
| IP Header 구조
- Flag / fragment : 패킷의 크기가 너무크면 분할 → 분할 및 재조립을 위한 정보
- MTU(maximum transmission unit) : 한번에 통과가능한 패킷의 최대 크기
→ 패킷 > MTU이면 flag와 fragment가 분할된 정보를 가지게 됨
- MTU(maximum transmission unit) : 한번에 통과가능한 패킷의 최대 크기
- TTL : 패킷이 통과할 수 있는 라우터 수
- protocol : tcp/udp
- header checksum : 헤더의 무결성 검사
| IP 주소의 구조
IP 주소(32bit) = 클래스 종류 비트 + 네트워크ID + 호스트 ID
Class A | 0 + 7비트의 네트워크 ID 나머지의 24비트에 호스트 부여가능하므로 많은 호스트 가능 |
Class B | 10 + 14비트 네트워크 ID |
Class C | 110 + 21비트 네트워크 ID => 24비트 (3바이트)까지가 네트워크 식별자 |
Class D | 1110 + 멀티캐스트 주소 |
| 서브넷팅
주어진 네트워크 주소를 여러개의 서브넷으로 쪼개어 활용 가능
- 예를 들어, Class C의 기본 서브넷 마스크는 255.255.255.0
여기에서 서브넷팅을 위해 3비트은 subnet id로, 나머지 5비트를 host id로 설정하면 - 111 00000 (2) == 224 (10) 이므로 255.255.255.224가 서브넷팅 후의 서브넷 마스크
| 수퍼넷팅
ISP(internet service provider) 사업자가 많은 네트워크 망을 효율적으로 관리하기 위해 네트워크를 묶어 관리하는 방법
→ 서브넷팅의 반대
3. ICMP
| ICMP
TCP/IP에서의 오류 제어 프로토콜
- IP 프로토콜의 하위 프로토콜
- 타겟 호스트/라우터가 현재 도달 가능한지 여부를 확인
- 데이터 전송 자체를 담당하진 않고, 네트워크 상에서 무슨 문제가 생겼는지를 알려주는 용도
| ICMP 주요 기능
1. 오류 보고 메시지 : ip 패킷 처리 도중 발견된 문제 보고
- 목적지에 도달할 수 없음
- 포트 접근 불가
- 라우터나 호스트가 다운됨 등
2. 질의 메세지 : 다른 호스트로부터 특정 정보를 획득하기 위해 사용
- ping: 목적지 호스트가 살아있는지 확인
- traceroute: 목적지까지 가는 경로 추적
| ICMP 주요 메시지
Type | message | 설명 |
0/8 | echo reply | host의 존재를 확인 |
3 | destination unreachable | router가 목적지를 못찾음 |
5 | redirection | routing 경로를 수정 (smurf공격에 사용) |
11 | time exceeded | 패킷을 보냇으나, 시간 경과로 패킷이 삭제됨 |
+ smurf공격이란?
ping을 보낼때, 출발지ip를 공격자꺼가 아닌 타겟 대상으로 위조 → 브로드캐스트 주소로 보냄
네트워크 안의 모든 장비들이 다시 ping결과(echo reply) 돌아올 때 타겟으로 모여 트래픽 폭주 →서비스 마비
4. ARP/RARP
| ARP
IP 주소 → MAC주소로 변환하여 응답
- ARP Request를 보내고 ARP Reply 응답을 내용을 테이블에 저장
- ARP Cache table: ip-mac 주소를 저장한 매핑 테이블
- $arp / $arp-a
| RARP
물리적 MAC 주소 → 논리적 IP주소로 변환하여 응답
- 네트워크에 처음 접속한 장치가 자기 IP 주소를 모를 때 사용
- 그러나, 현재는 DHCP로 대체됨. DHCP는 IP뿐만 아니라 서브넷, 게이트웨이, DNS도 제공
# 네트워크 접근 계층(L1)
| 네트워크 접근 계층
IP → MAC 주소로 변환하고, 에러제어/흐름제어와 같은 기능을 제공한다.
- 물리적 계층이 이해할 수 있는 헤더를 붙여주는 계층
- Frame단위를 사용하고, mac주소를 사용
- osi 7layer의 data link, physical layer에 해당
| 주요 기능
- Point-to-point 간의 신뢰성있는 전송
- 에러제어 (에러 검출 및 정정)
- MAC : LAN카드의 물리적 주소
- datagram → frame
1. CSMA/CD
유선 LAN에서 메세지를 송수신하기 위한 접근 방법이다.
| 동작 과정
충돌이 일어나지 않는다면 (A가 D에게 전송)
- A가 전송하려고 함 → 먼저 채널에 누가 말하고 있는지 확인 (Carrier Sense)
- 조용하면 전송 시작
- A가 보낸 데이터는 전선 타고 B, C, D 전부에게 전달됨 (브로드캐스트)
- B, C는 자기꺼아니니까 버림
- D만 데이터 받고 → A에게 Unicast 응답
충돌이 일어난다면 ( A가 D에게, B는 C에게 전송하고싶은 상황)
- A와 B가 전송하며 충돌
- JAM signal을 모든 호스트로 전송하여 알림
- 일정 시간 후 재 전송 (최대 15번, back off 알고리즘)
(근데 사실상 요즘은 안쓰는 개념)
2. CSMA/CA
무선 LAN에서 메세지를 송수신하기 위한 접근 방법
프레임 전송 이전에 제어 메세지 전송하여 수신자로부터 간단한 확인 받고 프레임 전송
(현대 WIFI의 기본 메커니즘)
| 동작 과정 (A→B)
- 채널 감지(Carrier Sense)
- A가 RTS (ready to send?)를 보냄 → 데이터 전송 전에 채널이 비었는지 확인
- B가 A에게 CTS(clear to send)를 보내서 받으면 전송
- 아니면, 임시 시간동안 기다리고 RTS 전송