TCP/IP 계층별 역할
- 데이터링크 : 전송 매체에 프레임 송수신
- 네트워크 : IP는 호스트 네트워크 주소를 관리하고 패킷을 라우팅한다. ARP는 네트워크 호스트들의 하드웨어주소MAC을 얻는데 사용되고 ICMP는 패킷 전송에 관한 오류 메시지 처리 담당.
- 전송 : 종단간 통신 서비스 제공 담당. TCP와 UDP
- 응용 : 응용프로그램이 네트워크에 접근 가능하도록 인터페이스 기능
★★★
패킷의 전송방법
- 유니캐스트 : 1:1 특정인에게 전송
- 멀티캐스트 : 1:N 네트워크 장치가 멀티캐스트를 지원해야 하고 멀티캐스트 그룹에 가입해야 함. 특정 다수인에게 전송 (IGMP 프로토콜)
- 브로드캐스트 : 같은 네트워크의 모든 호스트에게 패킷을 보낸다. 불특정 다수인에게 전송. 호스트 주소를 모두 1로 설정한다.
+ IPv6
- 유니캐스트
- 브로드캐스트가 없는 대신, 멀티캐스트의 특수한 형태로 브로드캐스트를 처리하게 된다.
- 애니캐스트 : 가장 가까운 노드에 전송
★★★
클래스별 IP 주소 분류
총 32비트
A클래스 : 0prefix / 0 to 127
B클래스 : 10prefix / 128 to 191
C클래스 : 110prefix / 192 to 223
D클래스 : 1110prefix / 224 to 239
E클래스 : 1111prefix / 240 to 255
클래스 별 IP 주소 내용
- 클래스 A : 첫 번째 비트가 0인 IP주소. 2의 24제곱 -2의 호스트 수용
- 클래스 B : 첫 번째 비트가 10인 IP주소. 2의 16제곱 -2의 호스트 수용
- 클래스 C : 첫 번째 비트가 110인 IP주소. 네트워크마다 254개의 호스트 수용
- 클래스 D : 첫 번째 비트가 1110인 IP주소. 멀티캐스트용으로 사용
- 클래스 E : 첫 번째 비트가 1111인 IP주소. 추후 사용을 위해 예약됨
+ 2개 = 네트워크 주소와 브로드캐스트 주소
★★★
클래스 서브네팅
netid + hostid
n bits + 32 -n bits
서브넷팅 : 서브넷을 만들기 위해 네트워크를 분할하는 것. host id 영역이 줄어듦.
슈퍼넷팅 : 네트워크를 합치는 것. host id 영역이 늘어난다 (= prefix가 작아진다)
prefix가 24이면 호스트 id는 8비트이고 256개의 ip가 할당된다.
이 8비트 안에서 서브넷 구분 비트를 설정한다.
1) 2등분 서브넷팅
0으로 시작하는 경우 : 0~127
1로 시작하는 경우 : 128 ~ 255
네트워크 주소와 브로드캐스트 주소를 빼야 하니
실질적으로는 1~126 / 129 ~ 254 범위를 사용한다.
2) 4등분 서브넷팅
00으로 시작 : 0 ~ 63
01으로 시작 : 64 ~ 127
10으로 시작 : 128 ~ 191
11으로 시작 : 192 ~ 255
( 참고 : 서브넷 마스크 계산기 https://damaha-labo.site/converter/ko/IT/CalcSubnetMask )
계산예시
[ 서브넷마스크 25 11111111 11111111 11111111 10000000 ]
할당가능한 IP 개수 = 2의 7제곱 -1개 = 127개
A의 IP 192.168.0.10
- 네트워크 주소 192.168.0.0
- 브로드캐스트 주소 192.168.0.127
- 호스트 ip : 192.168.0.1 ~ 192.168.0.126
B의 IP : 192.168.10.155
- 네트워크 주소 192.168.10.128
- 브로드캐스트 주소 192.168.10.255
- 호스트 ip : 192.168.0.129 ~ 192.168.10.254
만약 서브넷마스크가 28이라면?
마지막 옥텟이 1111 0000로 바뀌기 때문에, 할당 가능한 IP 개수가 2의 4제곱-1 = 15개로 줄어든다.
A의 네트워크 주소는 192.168.0.0 / 브로드캐스트 주소는 ~.15
B의 네트워크 주소는 192.168.10.144 / 브로드캐스트주소는 ~.158이다.
( 계산할 때, 마지막 주소에 따라 구간이 정해진다. 28이면 16개(브로드 캐스트 주소 포함)가 할당되니, 16개 단위로 보면 된다.
0 ~ 15, 16 ~ 31, 32 ~ 47 ... )
와 너무 어렵다 .......... 계산문제 안 나오게 해주세요
아직도 헷갈림
나중에 기출문제 해설에 계산문제가 나오면 그 때 다시 복습해야겠다 이해에 오래걸려서...
특별한 IP 주소
1) 네트워크 주소 + 호스트 모두 0 = 네트워크 주소 (송수신 불가)
ex) 192.168.10.0
2) 네트워크 주소 + 호스트 모두 1 = 직접적 브로드캐스트
ex) 192.168.0.255
3) 네트워크 모두 1 + 호스트 모두 1 = 제한적 브로드캐스트
ex) 255.255.255.255
4) 네트워크 모두 0 + 호스트 모두 0 = 네트워크의 한 호스트
ex) 0.0.0.0 (자신의 주소를 모를 때 사용하는 this host 기법)
5) 127 + 상관없음 = 루프백 주소
- 테스트 목적으로 사용
+ 사설 IP 대역
10.0.0.0/8 ~ 10.255.255.255
172.16.0.0/12 ~ 192.31.255.255
192.168.0.0/16 ~ 192.168.255.255
다이렉트 : 다른 네트워크에 브로드 캐스트 (스머프 어택에 이용)
리미트 : 로컬 네트워크 브로드 캐스트
IP 데이터그램 (Ipv4)
Header (20~60) + Payload
VER : 프로토콜 버전
HLEN (가변길이 헤더 값. 옵션을 포함)
Service type
Total length ( 헤더포함, 2의 16제곱인 65536 까지)
* Identification (식별자, 호스트가 보낸 각 데이터그램을 유일하게 식별)
* Flags (플래그)
첫 번째 비트 : 사용X
두 번째 비트DF : 1단편화 금지
세 번째 비트MF : 0은 마지막, 1은 단편이 더 있다
* Fragmentation Offset (단편화 위치)
* Time to Live (TTL 무한루프 방지, 패킷이 경유할 수 있는 최대 홉수)
Protocol (다중화 관련 식별 프로토콜)
Header checksum (헤더 체크)
Source Ip Address
Destination Ip Address
Options의 padding (Source routing, 공격에 악용되기도 함)
ARP 트랜잭션 절차
1. 출발지) ARP 캐시에서 목적지 장비 하드웨어 주소 확인
2. 출발지) ARP 요청 프레임 생성
3. 출발지) 브로드캐스트로 ARP 요청
4. 목적지) ARP 요청 프레임을 처리
5. 목적지) ARP 응답 프레임 생성
6. 목적지) ARP 캐시 갱신
7. 목적지) ARP 응답 프레임 송신 (유니캐스트 사용)
8. 출발지) ARP 응답 프레임 처리 후 ARP 캐시 갱신
( 요청은 브로드캐스트, 응답은 유니캐스트 )
+ ARP 스푸핑 공격 : ARP 캐시(MAC 주소)를 공격자의 것으로 위조함
스니핑 공격(도청)을 하기 위해 ARP 캐시를 위조하는 경우가 많다
RARP 트랜잭션 절차
1. 나의 MAC주소(하드웨어 주소)에 대한 IP 주소를 알기 위해 RARP 서버에 질의
2. RARP 서버가 IP를 응답해준다
발전
RARP -> BOOTP -> DHCP
DHCP
IP 주소, DNS 주소, Gateway(라우터) 주소, 서브넷 주소
4가지 정보를 정적+동적으로 제공
대표적인 ICMP 메시지
Echo Request / Echo Reply : Ping 메시지에 사용됨
Redirect : 좀 더 적합한 경로가 있음을 알리기 위해 라우터가 보내는 메시지 (ICMP Redirect 공격에 악용됨)
Source Quernch : 라우터의 집중 현상에 의해 손실되고 있음을 알리기 위해 라우터가 보내는 메시지. 대부분 구현되지 않는다.
Destination Unreachable : 데이터그램이 전달되지 못했다는 것을 알려주는 메시지
★★★
IPv6의 특징
확장된 주소 공간 : 128 주소체계를 사용, 주소부족 문제 해결, NAT 불필요
새로운 헤더 포맷 : 헤더를 고정길이로 변경, 단편화 필드 삭제, 체크섬 삭제
향상된 서비스의 지원 : 트래픽을 효과적으로 분류(Flow Label)
보안 기능 : 프로토콜 내에 보안관련 기능 탑재, 확장헤더(vpn)를 통해 네트워크 계층의 종단간 암호화제공
주소 자동설정 : LAN상의 MAC주소와 라우터가 제공하는 네트워크 프리픽스에 결합하여 IP주소 자동생성, 자동으로 포워딩 주소를 설정 가능
+ ipv6의 필드
버전, Traffic class(서비스 요구사항 구분), Flow Label(특정 트래픽 flow 라벨링),
Payload Length, Next Header(확장헤더 종류 표시, vpn 관련), Hop Limit, 기본 40바이트 헤더
★★★★★
IPv4와 IPv6의 비교
IPv4 | IPv6 | |
표시법 | 8비트씩 4부분 10진수 표시 | 16비트 8부분 16진수 표시 |
주소할당 | A,B,C,D 등 클래스 단위 비순차 할당 | 네트워크 규모, 단말기 등에 따른 순차 할당 |
브로드캐스트 | O | X |
헤더크기 | 가변 | 고정 |
보안 | IPSec 별도 설치 | IPSec 자체지원 |
IPv6으로의 변환
1) 이중스택 : 시스템이 IPv4와 IPv6 동시 지원
2) 터널링 : IPv4 지역에 들어선 IPv6 패킷은 IPv4로 캡슐화, 이후 역캡슐화된다.
3) 헤더 변환 : 일부만 IPv4를 사용할때 헤더 변환을 통해 헤더의 형태를 변경하는 기법
★★★
TCP UDP 차이점
TCP | UDP | |
신뢰성 | 패킷이 도달할 때마다 ACK 수신 신뢰성 있는 프로토콜 |
ACK 보내지않음 목적지에 도달되는 것을 보장하지 않음 |
연결 | 연결지향적. 가상연결 형성 | 비연결지향적 |
패킷 순서 | 순서번호 사용 | 순서번호 없음 |
사용 | 신뢰성 있는 전송이 필요할 때 | 신뢰성 있는 전송 불필요시 |
속도 오버헤드 |
UDP보다 느리고 상당한 양의 자원 사용 |
TCP보다 빠르고 적은 양의 자원 사용 |
기타 | 흐름제어, 혼잡제어, 오류제어 | 오류제어 |
★★★
사용자 데이터그램UDP 형식
Header 8Byte
Source port Number
Destination port Number
Total length
Checksum
★★★★★
TCP 세그먼트
Header 8Byte
Source port Number : 출발지 포트번호
Destination port Number : 목적지 포트번호
Sequence number : 순서번호
Acknowledge number : ACK 승인번호
data offset : 헤더의 크기를 바이트로 나타냄
Reservation : 예약
TCP flag (UAPRSF) : 제어비트
Window size : 데이터를 수용하기 위해 할당된 버퍼 크기 (MTU) 흐름제어 관련
Checksum : 데이터 무결성 보호를 위한 체크섬
Urgent pointer : 긴급 포인터 URG 제어비트와 사용
Option의 Padding : 0으로 채워서 32비트의 배수로 만듬
+ Seq Number와 ACK Number를 조작하여 TCP Session Hijacking 공격을 할 수 있다
★★★★★
TCP 주요 필드
1) 근원지 포트 주소 : 첫번째 필드. 응용프로그램의 포트 번호를 정의하는 필드
2) 목적지 포트 주소
3) 순서 번호 : 첫 번째 데이터 바이트에 할당된 번호를 정의
4) 확인응답 번호 : 응답 받기를 기대하는 바이트 번호
5) 헤더 길이
6) 제어비트 : 6개의 다른 제어 비트 또는 플래그 비트를 정의. 흐름제어, 연결설정/종료/중지, 데이터 전송 모드.
★★★
6개의 플래그 비트
URG : (긴급) 우선순위가 높은 데이터가 있다는 뜻
ACK : (승인) 세그먼트가 승인을 포함한다는 뜻
PSH : (밀어넣기) 받는 즉시 송신하라는 뜻
RST : (초기화) 문제가 발생했으니 초기화하라는 뜻
SYN : (동기화) 순서번호를 동기화하고 연결 수립을 요청하는 세그먼트
FIN : (종료) 송신장비가 연결 종료를 요청한다는 뜻
★★★
TCP의 주요 포트
FTP 데이터채널 : 20
FTP 제어채널 : 21
SSH : 22
TELNET : 23
SMTP : 25 메일전송
DNS : 53
TFTP : 69
HTTP : 80
POP3 : 110 메일 가져오기
IMAP4 : 143 메일 가져오기
SMNP Agent : 161 네트워크 관리
SMNP Manager : 162
HTTPS : 443
IMAP4S : 993
POP3S : 995
TCP 3-Way Handshake 상태정보
요청) SYN
응답) SYN+ACK
요청) ACK
SYN Flooding 공격
: SYN을 보냈는데, 연결작업이 끝나지 않고 지연되면서 연결자원을 소모시킴
연결종료과정 4-Way Handshake 과정
요청) FIN
응답) ACK
~ 내부 처리 중 응답쪽 CLOSE-WAIT ~
응답) FIN
~ 요청쪽 TIME-WAIT ~
요청) ACK
TIME-WAIT
: FIN을 받더라도 혹시 액션이 올 수 있으므로 일정시간 기다림
정적/동적 라우팅의 비교
정적 라우팅 | 동적 라우팅 | |
라우팅 테이블 관리 | 수동 네트워크 변화 자동 인지 불가 |
자동 네트워크 변화 자동 인지하여 경로 재설정 |
인터페이스 | 변경이 적을 때 유리 | 변경이 많을 때 유리 |
노드 추가/변경 | 관리자가 직접 작업 | 대처 용이 |
중간 경로 | 단일 경로에 적합 | 다중 경로에 적합 |
=> 정적 라우팅은 보안이 중요한 경우 선호함
★★★★★
대표적인 라우팅 프로토콜
라우팅 프로토콜 ( 동적 ) | |||
┌Intradomain ( AS 내 → 내부 IGP )┐ | Intradomain ( AS 내→외부 EGP ) | ||
Distance vector RIP |
Link state OSPF |
Path vector BGP |
+ 정적 : route 명령
+ AS : 기업 내 근거리 통신망 시스템 내 라우터 집단
RIP 거리벡터, 라우터 홉수 기준으로 최단경로 결정, 주기적으로 통신을 주고받음
OSPF 링크상태, 데이터베이스 형태, 변경이 있을때만 통신
BGP 경로벡터, 느리지만 대용량의 라우터 정보를 교환하기 적합, 보안 우수
( 이 부분은 요약집 강의 설명이 너무 불친절하여 검색으로 추가 첨언함 ㅡㅡ;; )
★★★
라우팅 프로토콜
RIPv1 : 거리벡터 알고리즘을 사용하는 가장 단순한 라우팅 프로토콜. 벨만-포워드 프로토콜
RIPv2 : RIPv1의 예약필드를 사용해 기능을 대폭 확장. 서브넷마스크 식별, 경로정보 인증 등.
IGRP : 시스코, 다양한 네트워크 파라미터를 이용해 거리벡터 계산 (대역폭, 지연, 신뢰도, 부하, MTU 등)
EIGRP : IGRP 기능 확장. CIDR, VLSM같은 새 네트워크 기술 지원을 위함
OSPF : 모든 라우터가 동일한 네트워크 토폴로지 데이터베이스를 기반으로 경로를 계산. 변화가 생길때만 전체 네트워크에 플러딩 수행. Dijkstras 링크상태 알고리즘
BGP : 라우팅 정보를 전달하는 EGP 중 하나로 널리 사용. 특수성 반영을 위해 패스 벡터 알고리즘 사용.
RIP 성능 개선 방법
1) Triggered update : 홉수 변경시 이를 즉시 통보하여 복구시간을 줄임
2) Hold down : 매트릭이 무한대인 경로에 대해서는 전체 네트워크 경로가 새로 갱신될 때까지 대기.
3) Split horizon : 루프 방지. A가 B에게 보낸 정보는 다시 A에게 보내지 않는다.
4) Route Poisoning : 회선 고장을 감지하면 해당 경로 매트릭을 16으로 지정해 전체 네트워크에 방송
+ 매트릭의 최대값은 15이다. 16은 불가능을 의미.
RIPv1과 RIPv2의 비교
- CIDR과 VLSM의 지원
- 메시지 전달시 브로드캐스팅과 멀티캐스팅 지원
- 메시지마다 인증 가능
- 호환성을 위해 RIPv1과 동일한 메시지 포맷
거리벡터와 링크상태 라우팅 프로토콜 비교
거리벡터 | 링크상태 | |
수집 | 인접한 이웃으로부터 망 정보 수집 | 모든 라우터로부터 망 정보 수집 |
전달정보 | 모든 라우팅 테이블 값 | 자신에게 직접 연결된 망 정보만 |
통신 | 주기적인 라우팅 정보 교환 | 변경될 때만 |
전파속도 | 느린 수렴시간 | 빠른 수렴시간 |
방식 | 브로드캐스트 (인접 이웃에게만) | 멀티캐스트 (모두에게, 플러딩 기법) |
+ 수렴시간 : 모든 라우터가 이 정보를 전파받는데 걸리는 시간
+ 거리벡터 RIP, IGRP / 링크상태 : OSPF, IS-IS / 하이브리드 : EIGRP
★★★
각종 네트워크 장비의 특징
1) 랜카드 : (1계층) PC 혹은 네트워크에서 전달되어오는 정보를 상호 교환할 수 있도록 만들어 줌
2) 허브Hub : (1계층) 집중화장비. 노드들을 연결시켜주는 역할.
3) 리피터 : (1계층) 전송거리에 따른 신호감쇄를 보상하기 위해 신호를 수신하고 증폭하여 재전송.
4) 브리지 : (2계층) 패킷 프레임에 대한 인지능력이 있고 둘 또는 그 이상의 네트워크를 상호 연결. 네트워크를 확장시기거나 통신을 격리시키기 위함. (충돌 도메인을 구분)
5) 라우터 : (3계층) IP 네트워크들간을 연결하거나 IP네트워크와 인터넷을 연결. (브로드캐스트 도메인을 구분). 이기종 LAN간의 연결, LAN을 WAN에 연결, 라우팅 기능, 에러 패킷에 대한 폐기 기능 등.
6) 게이트웨이 : (7계층) 서로 다른 통신규약을 사용하는 네트워크들을 상호연결하기 위해 자신의 통신규약을 상대방의 통신규약으로 전환하는 역할
+충돌 도메인 구분 : 충돌이 일어나지 않도록
+브로드캐스트 도메인 구분 : 브로드캐스트가 다른 네트워크로 넘어가지 않도록
브리지(2계층)와 라우터(3계층)의 주요 차이점
브리지 | 라우터 |
헤더를 읽지만 변경 불가 | 각 프레임에 새로운 헤더 생성 |
MAC 주소에 근거하여 전송 테이블 작성 | IP 주소에 근거하여 라우팅 테이블 작성 |
MAC 주소에 기반하여 트래픽 필터링 | IP 주소에 기반하여 트래픽 필터링 |
브로드캐스트 패킷 전달 | 브로드캐스트 패킷 차단 |
알려지지 않은 목적지 주소를 가진 트래픽도 전달 | 알려지지 않은 목적지 주소를 가진 트래픽은 차단 |
+ 라우터를 소규모 거점의 멀티 플레이어라고도 함 ( 라우팅과 포워딩 기능, 방화벽 기능, VPN 기능, NAT 기능 등 )
★★★
스위치의 종류
1) L2 스위치 : MAC Address 기반 스위칭
2) L3 스위치 : IP Address 기반의 트래픽 조절 가능
3) L4 ~ L7 스위치 : Port Number (L4) 또는 Packet 내용(L7)을 분석 및 판단. 패킷의 경로 설정, 변환, 필터링 동작 수행 가능
스위치 재밍 : 스위치가 허브처럼 동작(모든 트래픽을 다 도청 가능)하는 스니핑 공격
'(필기) 정보보안기사&산업기사' 카테고리의 다른 글
네트워크 보안 5, 6 (0) | 2024.05.02 |
---|---|
네트워크 보안 3, 4 (0) | 2024.05.01 |
시스템보안2 ~ 4, 네트워크 보안 (0) | 2024.04.29 |
접근통제3, 시스템 보안1 (0) | 2024.04.26 |
암호학5, 접근통제1~2 (0) | 2024.04.25 |