Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 비박스
- bee-box
- XSS
- reversing
- dreamhack
- hacking
- 네트워크
- network
- 웹
- 알고리즘
- 드림핵
- TCP
- 순서도
- WarGame
- 워게임
- Webhaking
- System
- CodeEngn
- 모의해킹
- Web
- 소프트웨어보안
- 시스템해킹
- 웹해킹
- 소프트웨어
- 해킹
- 시스템
- ftz
- webhacking
- 네트워크보안
- 리버싱
Archives
- Today
- Total
Without a Break
Internet Protocol 본문
IP 헤더
- 20byte
- 16비트 전체 길이(total length) : IP 데이터그램의 총 바이트 길이. 전체길이-헤더길이=데이터 부분의 실제 크기
- 16비트 식별자(identification) : 한 호스트에 의해 보내지는 각 데이터그램을 식별하기 위해 사용. 데이터 그램을 보내는 순서에 따라 1씩 증가
- 3비트 플래그 (flags)
- 13비트 분할 오프셋 : fragment의 시작 위치를 표시
- TTL(Time-to live: 8-bit) : 데이터그램의 수명을 제한(라우터 경유 시 1씩 감소) => 패킷이 라우팅 과정에서 루프에 빠지는 것을 방치하기 위한 것
- 프로토콜(8-bit) : 어느 프로토콜이 IP로 데이터를 보냈는 가를 구분하기 위한 것 => Demultiplexing을 하기 위한 것
- header checksum(16bit)
- Source IP address, destination address : 각각 32비트
- PAD (Option) : IP 헤더가 32비트의 배수가 되도록 하기 위하여 사용
빅 엔디안
- 낮은 주소에 높은 바이트부터 저장 (Most Significant Bit, MSB)
- 평소 사용하는 방식과 같음
- 소켓 통신에 사용
리틀 엔디안
- 낮은 주소에 데이터의 낮은 바이트부터 저장 (Least Significant Bit, LSB)
- X86-64 CPU 계열
- 소켓 사용을 위해서 데이터 배열을 변경
IP 헤더 필드
- 프로토콜 버전(4bit) - IPv4
- 헤더 길이 (4bit) : 60바이트까지 제한 (Option+Header length)
- 서비스 유형 필드 (TOS: Type-of service) : 8bit선행필드(3bit), TOS(4bit), 비사용 비트(1bit)
8bit선행필드(3bit) | 현재 무시 |
TOS(4bit) | - 최소 지연, 최대 처리율, 최대 신뢰성, 최소 비용 - 하나만 선택 가능 - 4bit 모두 0일 시 표준 서비스 제공 |
비사용 비트(1bit) | 사용하지 않는 비트 |
TOS example
- minimum delay (빠른 응답 요구) : Telnet, rlogin
- maximum throughput (최대 처리율 요구) : FTP
- maximum reliability (최대 신뢰성 요구) : SNMP, routing protocol
- minimize monetary cost (최소 비용 요구) : NNTP
Option
데이터그램에 대한 가변길이 정보
- 보안과 제한 사항
- 레코드 route : 각 router가 자신의 IP 주소 기록
- time stamp : 각 router가 자신의 IP 주소와 time 기록
- loose source routing : 데이터그램이 거쳐야 하는 IP 주소 기록
- strict source routing : 데이터그램은 기록된 IP 주소를 따라 목적지까지 감
IP Routing
- 호스트와 목적지가 직접 연결되어 있거나 공유된 네트워크일 경우, 목적지로 직접 전송
- 호스트와 목적지가 직접 연결되어 있거나 공유된 네트워크가 아닐 경우, 데이터그램을 디폴트 라우터로 보낸 후, 라우터가 목적지로 직접 전송
- IP layer가 상위 계층(TCP, UDP, ICMP, IGMP) 혹은 Network Interface로부터 datagram을 받았을 때, 메모리 내의 routing table 검사 후 전송
Routing table이 갖고 있는 정보
- 목적지 IP 주소 : host or network address
- next-hop router 혹은 직접 접속된 네트워크의 IP 주소
- flags : 목적지 IP 주소가 네트워크인지 호스트인지 식별, next-hop router address가 실제 라우터인지 직접 접속된 인터페이스인지 식별
- 전송을 위해 datagram을 넘겨 줄 network interface specification
IP routing
목적지 IP 주소 = IP 주소 일 경우 | next-hop router나 직접 접속된 interface로 패킷을 전송 |
목적지 network ID = network ID 일 경우 | next-hop router나 직접 접속된 interface로 패킷을 전송 |
Routing table에서 "default"를 찾은 경우 | 지시된 next-hop router로 패킷을 전송 |
위 3개에서 일치하는 것이 없을 경우 | - datagram 폐기 - "host unreachable" or network unreachable" 메세지가 해당 application에게 return |
bsdi(송신자)
- routing table search. Host or network entry와 매치되지 않음. 따라서 default 사용
- ARP 후 sun에게 전달
Sun(router)
- 목적지 주소가 자신이 아니고 라우터의 기능을 갖고 있으므로 datagram을 forward
- routing table search. Host or network entry와 매치되지 않음. 따라서 default 사용하여 netb에게 전달
Netb(router)
- sun과 동일한 절차를 따르지만 default를 사용하여 gateway에게 전달하고자 할때 ARP를 사용하여 Enet.Address를 구함
Gateway(router)
- Sun과 Netb와 동일한 절차를 따름. default를 사용하여 next-hop router인 140252.104.2에게 datagram을 forward
Key points
- 모든 host와 router는 default를 사용
- 목적지 IP 주소는 변겨오디지 않으며, 모든 routing의 기준이 됨
- 각 link별로 다른 link header와 link address가 사용
Subnet Addressing
- RFC 950
- host ID 부분을 subnet ID와 host ID로 나누어 사용
- Subnet 장점 : routing table의 크기를 줄일 수 있다
Subnet Mask
- subnetID와 hostID에 몇 bit가 할당되는 지를 결정하기 위해 사용 (32-bit)
- 일반적으로 IP 주소는 dotted-decimal notation으로 표기하나 subnet mask는 hexdecimal(16진수)로 표현
- IP 주소와 subnet mask를 이용하면 같은 subnet인지, 같은 network의 다른 subnet인지, 다른 network인지를 알 수 있다.
ifconfig 명령어
- 물리적 네트워크 인터페이스 및 할당된 인터페이스 주소에 대한 정보 제공 : 인터페이스 동작이 정상적인지, 패킷 수신이 준비 되었는지, 네트워크 인터페이스 소프트웨어가 정상적으로 설치되었는지
- Option : -a (모든 인터페이스를 알려줌)
netstat 명령
시스템 인터페이스에 대한 정보 제공
- MTU, 입력 패킷 개수, 입력 에러 개수, 출력 패킷 개수, 출력 에러 개수, 충돌 개수, 현재 출력 큐의 크기
Option
-i | 인터페이스 정보 출력 |
-n | 호스트 이름 대신 IP 주소 출력 |
IP의 미래
IP의 세 가지 문제점
- 현재의 IP 할당 속도가 매우 빠름
- 32비트 주소공간이 장기적으로 부적당
- 현재의 라우팅 구조에서 라우팅 테이블의 크기 증가 문제 - CIDR에서 대안 제시
IPv4
- 32bit 주소 사용
- TCP, UDP, ICMP, IGMP를 위한 패킷 전송 서비스 제공
- 멀티캐스팅 옵션으로 제공
IPv6
- IPv4를 대신하기 위하여 1990년대 중반에 설계
- 128bit 주소
- TCP, UDP, ICMPv6를 위한 패킷 전송 서비스 제공
- ICMPv6=ICMP+IGMP+ARP
'Network > 네트워크보안과프로그래밍' 카테고리의 다른 글
TCP: Transmission Control Protocol (0) | 2022.09.30 |
---|---|
UDP: User Datagram Protocol (0) | 2022.09.30 |
Address Resolution Protocol, ARP (0) | 2022.09.27 |
Link Layer (0) | 2022.09.24 |
Introduction (0) | 2022.09.24 |