[SK shieldus Rookies 16기][네트워크 보안] 네트워크 기초와 OSI참조모델

Jina·2023년 11월 13일
0

SK shieldus Rookies 16기

목록 보기
12/59
post-thumbnail
post-custom-banner

1. 내부망, 외부망, DMZ 구간

내부망과 외부망은 네트워크의 범위와 사용 목적에 따라 구분되는 개념

  1. 내부망
    • 조직이나 기업 내부에서 사용되는 사설 네트워크로 내부 통신과 자원 공유를 위해 사용하는 근거리 통신망
    • 물리적 망분리, 접근통제시스템 등에 의해 인터넷 구간에서의 직접적인 접근이 통제 또는 차단되는 구간
    • 일반적으로 사설 IP 주소 범위 사용
  2. 외부망
    • 외부망은 인터넷을 통해 연결된 네트워크로 외부와의 연결과 정보 교환을 위해 사용
    • 공인 IP 주소 사용
  3. DMZ
    • 외부에 서비스를 제공 시 내부 자원을 보호하기 위해 내부망과 외부망 사이에서 접근제한을 수행하면서 외부망에서 직접 접근이 가능한 영역
    • 일반적으로 웹 서버, DNS 서버, SMTP 서버 등 외부에서 접근되어야 할 필요가 있는 서버를 호스팅하는데 사용
    • 외부 네트워크에서 DMZ로 들어오는 연결은 일반적으로 PAT를 통해 제어

2. MAC주소(2계층 주소)

2.1. 정의

MAC주소 = 물리적 주소 = 2계층 주소

2.2. 특징

  • LAN카드(=이더넷 카드)에 이미 고정되어 있는 주소이자 유일한 주소
  • 25비트까지 제조사 식별번호, 23비트까지 일련번호
  • 총 6자리로 16진수로 표현
  • MAC주소가 8C-B0-E9-1D-B0-8B 경우 앞에 3자리 8C-B0-E9 는 제조사 식별번호, 뒤에 3자리 1D-B0-8B는 일련번호

2.3. Win에서 물리적 주소 확인하는 방법

# 컴퓨터의 모든 네트워크 인터페이스 정보 표시
$ ipconfig /all

Windows IP 구성

   호스트 이름 . . . . . . . . : DESKTOP-FIM6H62
   주 DNS 접미사 . . . . . . . :
   노드 유형 . . . . . . . . . : 혼성
   IP 라우팅 사용. . . . . . . : 아니요
   WINS 프록시 사용. . . . . . : 아니요

이더넷 어댑터 이더넷:

   미디어 상태 . . . . . . . . : 미디어 연결 끊김
   연결별 DNS 접미사. . . . : pxelinux
   설명. . . . . . . . . . . . : Realtek PCIe GbE Family Controller
   # 총 6자리로 16진수로 표현
   # 앞에 3자리 8C-B0-E9 제조회사 식별번호
   # 뒤에 3자리 1D-B0-8B는 일련번호
   # 이 Mac Address 매우 중요 ***
   물리적 주소 . . . . . . . . : 8C-B0-E9-1D-B0-8B
   DHCP 사용 . . . . . . . . . : 예
   자동 구성 사용. . . . . . . :

3. IP주소(3계층 주소)

3.1. 정의

IP주소 = 논리적 주소 = 3계층 주소

3.2. 특징

  • 네트워크 아이디 + 호스트 아이디로 구성되고, 서브넷 마스크로 구분
  • 예를 들어, IP주소가 192.168.1.10 인 경우 192.168.1 의 10번째 IP 라는 뜻

3.3. 서브넷 마스크

  • 서브넷 마스크는 네트워크 아이디와 호스트 아이디를 구분하는데 사용
  • 2진수 숫자로 표현되며 1은 네트워크 주소, 0은 호스트 주소
  • IP 주소를 서브넷 마스크와 & 연산자로 처리하면 네트워크 아이디
    • 예를 들어 IP주소 192.168.1.10 와 서브넷 마스크255.255.255.0& 연산하면 다음과 같다.
      • IP 주소 : 11000000.10101000.00000001.00001010
      • 서브넷 마스크 : 11111111.11111111.11111111.00000000
        각 비트 위치에서 둘 다 1인 경우에만 1이 결과로 나온다.
      • 결과 : 11000000.10101000.00000001.00000000
        결과를 10진수로 변환하면 192.168.1.0 가 된다.
  • 네트워크 분할, 네트워크 트래픽 감소, 네트워크 보안 향상, IP 주소 절약하기 위해 사용

4. 포트 번호(4계층 주소)

4.1. 정의

애플리케이션 식별번호로 프로그램이 실행될 때 해당 프로그램에 부여되는 번호

4.2. 프로그램 종류

  • 클라이언트형 프로그램(Client Program) - Chrome
  • 서버형 프로그램(WebServer Program) - Apache

Q. Chrome에 탭이 3개인 경우 1개의 프로그램이 돌아가는건지 3개의 프로그램이 돌아가는건지?
A. 답은 3개. 왜? 각각의 포트 번호가 붙어있고, 한 탭을 닫는다고 다른 탭이 모두 닫히지 않기 때문이다.

4.2. 포트 번호

0번을 제외하고 총 1~65535번까지 사용 가능

4.3. 포트 번호 유형

  • Well-Known Port : 서버에 부여하는 포트번호(1-1023), 클라이언트가 알 수 있는 번호
  • Registered Port : 클라이언트에 부여하는 포트번호(1024-49151)
  • Dynamic Port : 임시 포트. 다른 포트에게 재할당되는 포트번호(49152-65535)
    • Well-Known Port와 Registered Port는 상대적 정적 포트
    • 필요에 따라 다른 포트에 재할당 가능
    ※ 하지만 혼란을 야기할 수 있으며, 정상적 접속이 불가할 수 있다.

4.3. 포트 번호 관리

C:\Windows\System32\drivers\etc\services
시스템에서 포트번호를 관리하는 파일

4.4. Win에서 포트 번호 확인하는 방법

$ netstat [options]

options :
-a : 모든 연결과 리스닝 포트
-n : 주소와 포트 번호를 숫자로 표시
-l : 리스닝 중인 포트
-t : TCP 연결 포트 확인
-u : UDP 연결 포트 확인
-p : 프로세스 ID(PID)와 프로그램 이름 확인
-o : 연결되어 있는지 여부 및 시간 확인
-r : 라우팅 테이블 확인
-c : 실행한 명령을 초 단위로 재실행 (ex. -c 22초 단위로 명령을 재실행)

# LISTEN 상태의 네트워크 연결 찾기
$ netstat -nap | grep LISTEN

# 특정 포트가 사용 중인지 확인
$ netstat -an | grep [포트번호]

💡 컴퓨터는 단독주택이 아니고, 아파트다.
192.168.1.10:21 인 경우
192.168.1.10 까지는 아파트 입구==동인거고, 포트번호 21번이 호수다.

💡 만약 아파치 서버 포트번호를 5000번으로 바꿔도 되나?
된다. 왜? 클라이언트에게 통보만 해주면 되기 때문에

💡 네이트온 vs 카카오톡 등 메신저들은 포트번호 할당되어야 함. IANA라는 기관에서 포트번호를 관할. 여기서 포트번호는 Registered Port를 말한다.

5. FQDN주소(7계층 주소)

5.1. 정의

  • Fully Qualified Domain Name의 약어로 전제 주소 도메인 이름이라는 뜻
  • 예를 들어 www.naver.com 주소가 있다면
    • www : 호스트 이름 (보통 프로토콜명을 쓴다.)
    • naver : 도메인 이름
    • com : 도메인 유형

5.2. 특징

  • 필수 주소 X. 주로 클라이언트 유치를 위해 사용.
  • 보통 호스트명을 프로토콜명을 사용하여 기능을 쉽게 파악할 수 있게 함.

5.3. 클라이언트와 서버

  • 클라이언트들은 자신의 이름으로 시작한다. (ex. 티스토리 블로그 주소)
  • 클라이언트가 존재해야 서버가 존재하며, 항상 클라이언트가 서버를 호출한다.
  • 클라이언트가 서버를 호출할 때 3개의 이름으로 호출 할 수 있다.
구분클라이언트서버
IP Address192.168.1.10192.168.1.20
Mac Address1111.2222.33333333.4444.5555
FQDN Address-www.test.com

6. 주소 변환 프로토콜

6.1. DNS(Domain Name System)

문자 주소를 기반으로 IP주소를 찾아주는 기능
IP주소를 기반으로 문자 주소를 찾아주는 기능

DNS Cache Table 조회하는 방법

$ ipconfig /displaydns

Windows IP 구성

    checkappexec.microsoft.com
    ----------------------------------------
    데이터 이름 . . . . . : checkappexec.microsoft.com
    데이터 유형 . . . . . : 5
    TTL(Time To Live) . : 1
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    CNAME 레코드  . . . . : wd-prod-ss.trafficmanager.net


    데이터 이름 . . . . . : wd-prod-ss.trafficmanager.net
    데이터 유형 . . . . . : 5
    TTL(Time To Live) . : 1
    데이터 길이 . . . . . : 8
    섹션 . . . . . . . : 응답
    CNAME 레코드  . . . . : wd-prod-ss-as-southeast-3-fe.southeastasia.cloudapp.azure.com


    데이터 이름 . . . . . : wd-prod-ss-as-southeast-3-fe.southeastasia.cloudapp.azure.com
    데이터 유형 . . . . . : 1
    TTL(Time To Live) . : 1
    데이터 길이 . . . . . : 4
    섹션 . . . . . . . : 응답
    (호스트) 레코드 . . . : 20.6.0.192

DNS Cache Table 초기화하는 방법

$ ipconfig /flushdns

Windows IP 구성
DNS 확인자 캐시를 플러시했습니다.

$ ipconfig /displaydns
Windows IP 구성

6.2. ARP(Address Resolution Protocol)

IP주소를 기반으로 MAC주소를 찾아주는 기능

ARP패킷 종류

ARP requestARP reply
질의 패킷
(송신지가 수신지의 MAC주소를 조회하기 위함)
응답 패킷
브로드캐스트. 방식으로 운영
(MAC주소를 모르니까)
유니캐스트 방식으로 운영

request를 주고 reply를 받으면 arp 캐시 테이블에 저장한다.
왜? 다음에 다시 상호작용할 때 또 request를 던지면 비효율적이기 때문에

ARP Cache Table 조회하는 방법

$ arp -a # ARP Cache Table

인터페이스: 172.30.1.94 --- 0x3
  인터넷 주소           물리적 주소           유형
  172.30.1.50           08-00-27-18-eb-52     동적
  172.30.1.254          b4-a9-4f-66-81-2a     동적
  172.30.1.255          ff-ff-ff-ff-ff-ff     정적
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적
  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

인터페이스: 192.168.56.1 --- 0x11
  인터넷 주소           물리적 주소           유형
  192.168.56.255        ff-ff-ff-ff-ff-ff     정적
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적
  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

6.3. RARP(Reverse Address Resolution Protocol)

MAC주소IP주소를 찾아주는 기능

문자주소 → MAC 주소를 찾아주는 프로토콜은 없다.
왜? 문자주소가 필수 주소가 아니기 때문에

7. 전송모드

7.1. 유니캐스트(Unicast)

클라이언트가 서버를 호출하는 것은 등기우편을 보내는 것과 같다.
편지 내용(전송데이터 get www.test.co.kr)
편지를 전달하기 위해선 발신자 주소와 수신자 주소를 모두 작성해야한다.

  • 1(송신지) : 1(수신지) ⇒ 송신지는 항상 한 곳
  • 수신지 IP / 수신지 MAC 주소를 모르는 경우, DNS가 문자 주소를 기반으로 수신지의 IP 주소를 찾아내고, ARP가 IP 주소로 수신지 MAC 주소를 찾아낸다.

7.2. 브로드캐스트(Broadcast)

  • 1(송신지) : 불특정다수(수신지)
  • 가상주소(Virtural Address) 사용
  • 시스템(운영체제)운영, 프로토콜 운영, 특정 애플리케이션 운영을 위해 사용
  • 운영체제를 설치 시 기본적으로 할당되는 주소(Window, Linux, Mac 상관없이 모두)
  • 브로드캐스트 주소
    • BIP
      • 255.255.255.255 (All) ⇒ Local Broadcast
      • 192.168.1.255 ⇒ Directed Broadcast
    • BMAC : FFFF.FFFF.FFFF
  • DHCP Data : 브로드캐스트로 운영되는 프로토콜
  • 브로드캐스트는 DNS나 ARP의 도움 없이 자동 변환
  • 수신지MAC주소가 FFFF.FFFF.FFFF인 경우 브로드캐스트 패킷으로 인지할 수 있다.

7.3. 멀티캐스트(Multicast)

  • 1(송신지) : 특정다수(수신지)
  • 가상주소(Virtural Address) 사용
  • 멀티캐스트 주소
    • MIP : 224~239 로 시작되는 주소
    • MMAC : 0100.5E 로 시작되는 주소
      0100.5E여도 멀티캐스트가 아닌 경우는? MAC주소는 25비트가 일치해야하는데 25비트가 아닌 경우가 있기 때문에 되도록 수신지IP로 멀티캐스트임을 판단하자
  • 멀티캐스트는 IP주소로만 국한되지 X

Q. 192.168.1.255 ⇒ 192.168.1.0 에 있는 여러분(All)은 멀티캐스트인가?
A. 아니다. IP주소의 첫번째가 224~239로 시작되지 않기 때문에

브로드캐스트 확인하는 방법

# ARP Cache Table
$ arp -a

인터페이스: 172.30.1.94 --- 0x3
  인터넷 주소           물리적 주소           유형
  172.30.1.50           08-00-27-18-eb-52     동적
  172.30.1.254          b4-a9-4f-66-81-2a     동적
  # 다이렉트 브로드캐스트----------------------------
  172.30.1.255          ff-ff-ff-ff-ff-ff     정적
  # 멀티캐스트-------------------------------------
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적
  # 브로드캐스트-----------------------------------
  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

인터페이스: 192.168.56.1 --- 0x11
  인터넷 주소           물리적 주소           유형
  # 브로드캐스트-----------------------------------
  192.168.56.255        ff-ff-ff-ff-ff-ff     정적
  # 멀티캐스트-------------------------------------
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적
  # 브로드캐스트-----------------------------------
  255.255.255.255       ff-ff-ff-ff-ff-ff     정적
  • 멀티캐스트나 브로드캐스트 주소는 보통 수신용으로 쓰인다.
  • 멀티캐스트나 브로드캐스트는 ARP나 DNS를 사용하지 않는다 → 자동변환되기 때문에.

8. Forwarding과 Flooding

  • 케이블이 들어가는 물리적 인터페이스 == 포트(4계층주소X)
  • Forwarding : 1송신지-1수신지 포트로 트래픽 전송
  • Flooding : 송신지 제외 나머지 포트로 트래픽 전송
  • 유니캐스트 방식으로 전송 == 포워딩 방식으로 전송
  • 브로드캐스트 방식 == 플러딩 방식으로 전송
구분RouterSwitchHub
계층3계층 장비2계층 장비1계층 장비
경로DBRouting TableMAC Adress Table(MAT)X
데이터 전송방식포워딩 방식포워딩 방식, 플로딩 방식플로딩 방식

포워딩과 플러딩은 어떤 경우에 사용하는지?

  • Forwarding과 : MAT에 목적지 주소가 있는 경우
  • Flooding : MAT에 목적지 주소가 없는 경우

계층별 장비

Hub

  • 1계층 장비 == 더미허브 == 스위치허브
  • 경로DB : 없음 ⇒ 1계층에는 주소가 없다.
  • 데이터 전송방법 : 플러딩 방식 ⇒ 기준주소가 없기 때문에
  • 특징
    1. 계층이 올라갈 수록 제어 기능이 강화된다.
    2. 계층이 없으면 플러딩 방식으로만 전송한다.
    3. 장비 입장으로 허브(하위)-스위치(중위)-라우터(상위)로 나뉘는데 상위의 경우 필터 기능이 강화되어 있다.

Switch

  • 2계층 장비(물리적 주소/MAC주소)
  • 경로DB : MAC Address Table(MAT)
  • 데이터 전송방법 : 포워딩 방식, 플로딩 방식
    • 포워딩 방식: MAT에 목적지 정보O
    • 플러딩 방식: MAT에 목적지 정보X
  • 경로DB에는 브로드캐스트/멀티캐스트 주소를 등록X
  • 브로드캐스트/멀티캐스트 패킷의 전송방법
    • 스위치 : 플러딩 방식

Router

  • 3계층 장비(논리적 주소/IP주소)
  • L2 Switch 기능 + Routing 기능을 갖고 있는 장비가 Router
  • Routing : 최적 경로를 선정하는 작업
  • Route : 최적 경로

게이트웨이

  • 망과 망을 연결 시켜주는 중계장비
  • 게이트웨이로 사용하는 장비 : 라우터, 멀티레이어 스위치, 게이트웨이(방화벽)
  • 내부에서만 사용하면 필요없음
  • 게이트웨이 사용 원칙
    • 내부망 주소를 사용해야한다.
      송신지IP(192.168.1.10)―수신지IP(192.168.3.10)
    • 적어도 3계층 이상의 장비에서 사용
  • 경로DB : Routing Table
  • 데이터 전송방식 : 포워딩 ONLY
    • RT에 목적지 정보O : 데이터 전송
    • RT에 목적지 정보X : 데이터 전송 폐기(drop)
  • 라우터가 브로드캐스트 패킷을 받으면 폐기(drop)해버린다.

L2 Switch에는 없는 멀티레이어 Switch 의 기능에는 라우팅이 있다.

L4 Switch

  • Load Balancer의 역할을 한다.
  • Load Balancing 을 수행하기 위해서 필요 조건 : 동일한 기능을 수행하는 서버가 2대 이상 필요하다.
  • Load Balancing 이란? 트래픽 분배 작업
  • 방화벽이 2대 이상일 때 사용
  • IP 주소 + Port번호로 최정 목적지를 결정

L7 Switch

  • L4 Switch의 기능 + Security 기능이 포함
  • IP 주소 + Port번호 + Content까지 인식해서 최정 목적지를 결정

Media Translation

  • 3계층 이상의 장비에서 처리
  • 패킷이 출발지 → 목적지 가는 동안 3계층 장비 거칠 떄마다 L2헤더 변경
SIPDIPSMACDMAC
PC1→RA21.734.2506662222
목적지의 MAC Address를 알 수 없는 경우
게이트웨이의 MAC Address(GMA)를 사용
RA→RB21.734.25099993333
RB→FTP21.734.25077775555

SourceIP주소와 DestinationIP는 바뀌지 않는다.
왜? 산업표준주소기 때문에 어떤 장비든 이해할 수 있기 때문에

  • L3 : IP주소 (산업표준주소)
  • L2 : MAC주소 (비산업표준주소)
    ⇒ 어떤 LAN카드를 사용하냐에 따라 달라질 수 있다.(LAN==2계층)

목적지가 외부망이면 MAC주소 모름 → 게이트웨이 사용해야한다.

  • 송수신지MAC → 2계층 장비가 참조
  • 송수신지IP → 3계층 장비가 참조

외부망에 데이터 전송이 실패하면 게이트웨이에서 실패한 것

NAT

  • 네트워크 주소 변환(Network Address Translation)
  • 송신지 또는 수신지 IP address를 다른 주소로 변환
  • Source NAT(SNAT)와 Destination NAT(DNAT)
    • 송신지에서는 SNAT가 진행되며, 수신지에서는 DNAT가 진행된다.
  • 1:1 / N:N / M:M 인 경우 NAT가 진행된다.
  • IPv4의 부족 현상으로 나오게 되었으나 현재 보안 목적으로 더 많이 사용되고 있다.
  • 사설 IP 대역
    • 각 네트워크당 연결할 수 있는 호스트 수가 다르다.
    • A Class : 10.0.0.0 ~ 10.255.255.255
    • B Class : 172.16.0.0 ~ 172.31.255.255
    • C Class : 192.168.0.0 ~ 192.168.255.255

PAT

  • 포트 주소 변환 (Port Address Translation : PAT)
  • N:1 / 100:4 인 경우 PAT가 진행된다.
  • 만약 우리집에 내 PC와 동생PC가 있으면 IP 다르더라도 포트 번호는 다를 수 있다. 공인 IP에 있는 경우 둘 다 동일한 IP로 변경되는데 각각의 PC를 구분하기 위해서 포트 번호를 변환시킨다.

PAT와 NAT의 차이점? NAT는 IP주소만 변환되지만 PAT는 IP주소와 포트번호가 변환된다.

Port Forwarding

  • DNAT에서 진행되는 것으로 포트번호로 IP와 Destination Source가 바뀐다. 여기서 Destination Source는 IP address + Port 이다.
    DNAT ( Port : IPaddress.Port) 1:N

트래픽 흐름

Packet Tracer 이용

ping 구성

echo-request echo-reply

ping 응답

$ arp -a
  Internet Address      Physical Address      Type

# ping echo-request
$ ping 192.168.1.20

Pinging 192.168.1.20 with 32 bytes of data:

# ping echo-reply
Reply from 192.168.1.20: bytes=32 time=107ms TTL=128
Reply from 192.168.1.20: bytes=32 time=62ms TTL=128
Reply from 192.168.1.20: bytes=32 time=62ms TTL=128

Ping statistics for 192.168.1.20:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 62ms, Maximum = 107ms, Average = 77ms
$ arp -a
  Internet Address      Physical Address      Type
  192.168.1.20          00d0.babc.ae1d        dynamic

ping 응답없음

$ ping 192.168.5.10

Pinging 192.168.5.10 with 32 bytes of data:

Reply from 192.168.1.254: Destination host unreachable.
Reply from 192.168.1.254: Destination host unreachable.
Reply from 192.168.1.254: Destination host unreachable.
Reply from 192.168.1.254: Destination host unreachable.

Ping statistics for 192.168.5.10:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
$ arp -a
  Internet Address      Physical Address      Type
  192.168.1.20          00d0.babc.ae1d        dynamic
  192.168.1.254         0001.9684.c001        dynamic

arp 캐시 테이블에서 외부정보는 기록되지 않지만 게이트웨이 MAC주소가 있다면 외부로 나가려고 시도했다는 것으로 판단한다.

ping 타임아웃

$ ping 192.168.3.2

Pinging 192.168.3.2 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.3.2:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Request timed out == 정해진 시간에 Reply가 안 왔다. NOT Dead

Switch

  • 스위치는 스위치를 통과하는 송신지의 MAC주소를 기반으로 Mac Address Table에 등록
  • MAT(Mac Address Tabe) = MAC주소 + 출구번호로 구성
Switch>en # enable
Switch#sh mac-address-table
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

   1    0000.0c54.dc12    DYNAMIC     Fa0/2
   1    0001.9684.c001    DYNAMIC     Fa0/1
   1    00d0.babc.ae1d    DYNAMIC     Fa0/3

Router

R1>en
R1#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, Serial0/0

트래픽 흐름(내부망)

1단계 수신지 IP 주소 조회
2단계 수신지 IP를 알아내면 송신자 서브넷 마스크를 이용하여 수신지가 내부망인지 외부망인지 확인
3단계 ARP로 수신지 MAC주소 조회
4단계 트래픽 전송

수신지 IP주소 조회 방법

  1. DNS 캐시 조회 ipconfig /displaydns
  2. hosts.txt 파일 조회 \windows\system.32\drivers\etc\hosts
  3. DNS서버(DNS Request/Response)

⇒ 이 모든 것을 누가할까? 운영체제

트래픽 흐름(외부망)

1단계 DNS를 이용해 수신지 IP 주소 조회
2단계 수신지 IP를 알아내면 송신자 서브넷 마스크를 이용하여 수신지가 내부망인지 외부망인지 확인
3단계 게이트웨이의 MAC주소 조회
4단계 Media Translation방법으로 트래픽 전송


OSI 7 참조모델

  • 개방형 시스템(Open System) : 원격 접속 가능
  • 폐쇄형 시스템 (Close System) : 원격접속 불가능

정의

개방형 시스템(Open System)간의 상호연결하기 위한 7가지 통신 기능이 필요한데 이 7개 기능에 대해 국제 표준 기구 ISO가 만든 모델을 OSI 7 참조모델이라고 한다.

숫자가 ↑상위 모델 ↓하위 모델

아 ┌───7계층 Application
파 ├───6계층 Presentation
서 ├───5계층 Session  -- 인증서
탈 ├───4계층 Transport -- middleware 상위이자 하위계층
났 ├───3계층 Network
다 ├───2계층 DataLink
피 └───1계층 Physical

앱 해킹 7,6계층
서버 해킹 5,4,3계층
네트워크 3,2,1계층

개발 상위3계층만
관제 전 계층

  • 시스템 공격/커널 공격 ⇒ 권한 탈취
  • 서비스프로그램의 취약점을 공격 = 어플리케이션 해킹
  • 원래 웹 해킹은 어플리케이션 해킹에 있었는데 떨어져나와 독립적으로 운영됨

Application(7계층)

  • 유저 인터페이스 제공 → 데이터 생성됨
  • HTTP, FTP, Telnet, SMTP, SNMP, Telnet, NFS.. ⇒ 7계층 프로토콜
    • 통신 규약은 UI form도 결정한다.

Presentation(6계층)

  • 코드 변환
    • 부호화(인코딩) : 이진화 (ex. ASII, UNICODE, BCD)
  • 압축 : 크키를 줄이는 작업 (ex. PNG, bmp, zip)
  • 암호화 : 보안 (ex. RSA, DES)

Session(5계층)

  • 양단간에 서비스 개시, 유지, 해지
    • 서비스 개시 : 인증 작업이 들어갈 수 있다.
    • 서비스 유지 : 지속적 인증 과정을 통해 서비스 유지
    • 해지 : 세션값(=인증값) 만료 ⇒ 서비스 종료

Transport(4계층)

  • 양단간에 가상회선 설정, 유지, 해지
  • End-to-End
    TCP, UDP
    3way handshake
    • 상호 확인 단계
    • 가상회선 설정(=세션수립=3way handshake이 맺어짐)
    • 서버가 정상적으로 구동 중(UP), 원하는 서비스 제공 가능(UP)!

내가 서비스를 받으려고 하는 서버가 정상적으로 운영하고 있는지, 내가 원하는 서비스를 제공하는지 확인해주는 층

세션과 트랜스포트는 은행 대출과 같다.
영업일, 영업시간에 은행에 가더라도 대출을 무조건 받을 수는 없다. 왜? 심사를 해야하기 때문에. 여기서 심사는 세션 계층을 말하고 은행의 서비스 개시 상태는 트랜스포트 계층을 말한다.

Network(3계층)

  • 라우팅
    • Router : 기기
    • Routing : 경로가 여러 개일 때 최적경로 선정
    • Route : 최적경로

Data Link(2계층)

  1. 데이터 전달
    • 전달방법(Switching)
      1. foarding 포워딩
      2. flooding 플로딩
  2. 오류제어
    • 송신지 : 원본데이터 + 오류 검출 코드 함께 송신
    • 수신지 : 수신된 오류 검출 코드를 이용해 원본데이터 무결성 검사
  3. 매체 접근제어
    A LAN : 하나의 장비를 여러 개의 호스트들이 공유해서 사용
    • LAN구간에서 발생되는 문제점 : 충돌(같은 시간 한 장비 사용 시)
    • 충돌로 인해 LAN구간에서 전송지연 유발
    • 충돌되지 않기 위해 (공유)매체접근제어 기술 필요
      ⇒ CSMA/CD → ethernet card →

Physical(1계층)

  • 7~2까지 가상
  • 전기적, 기계적, 기능적
    • 비트화 시켜서 물리적으로 전송

계층은 독립적이지 않다.

  • 7계층은 1~6계층의 기능을 모두 갖고 있다.
  • 기능이 높으면 낮춰서 사용가능 스위치가 없는 경우 라우터를 스위치처럼 사용가능
  • HUB는 1계층 기능만 있어도 가능
  • PC는 7계층이다. PC를 사용하기 위해서는 앱이 필요하기 때문에
  • 계층이 높을수록 속도가 저하된다.
    ⇒ 중계지역에서는 계층을 높이지 않는 것이 좋다.

Payload & Encapsulation

정의

  • 페이로드(Payload) : 데이터를 상위 계층에서 하위 계층으로 전송하는 것
  • 캡슐화(Encapsulation) : 제어정보를 붙이는 작업
  • 역캡슐화(De-encapsulation) : 제어정보 제거하는 작업

페이로드되면 캡슐화가 진행된다.
중계장비는 5,6,7은 안 본다. 굳이 볼 필요가 없다.
TCP/UDP 상관없이 3계층의 IP헤더와 2계층의 이더넷 헤더가 붙는다.

통신에 필요한 제어 정보

  • headertrailer
    • header : 원본 데이터 에 붙는 제어 정보
    • trailer : 원본 데이터 에 붙는 제어 정보
  • 송신자측-캡슐화, 수신자-역캡슐화

TCP/IP 프로토콜 스택

1. TCP/IP

  • 현업에는 TCP/IP만 존재하는게 아니라 다양한 통신 체계가 존재한다.
  • 특정 기업의 통신모델을 이용해 퍼블릭 망을 구성하는 것은 위험하다.
  • 인터넷은 비상업적 통신모델을 사용해야한다 ⇒ TCP/IP
    • TCP/IP 란?미국방성에서 제작 이후 대학에서 사용

TCP/IP통신모델

내 컴퓨터는 TCP/IP를 사용하기 좋도록 설정되어 있다.
우리가 사용하는 어플리케이션은 765,운영체제는 34,LAN카드는 12

  • IP필수 프로토콜이다.
  • DNS는 때에 따라 TCP 또는 UDP로 사용된다.
  • 프로토콜도 계층이 있다.

어떤 프로토콜을 사용하냐에 따라 TCP 또는 UDP 헤더가 부착된다.

와이어샤크에서 첫번째 프레임은 메타 정보로만 구성되어 있다.
[] : 메타정보 = 와이어샤크가 분석한 속성 정보(오리지널 데이터x)

Ethernet 헤더(3계층)

수신지
송신지
싵고 가는 데이터 Type: IPv4 (0x0800)

TCP 헤더(4계층)


원본 Port
목적지 Port
싵고 가는 데이터 Destination Port:80

원본데이터

Frame1 제외 > 가 2개만 나오는 이유는?
ARP가 3계층 프로토콜이기 때문에

  • TCP는 데이터 생략 가능
  • IP는 항상 데이터가 있어야 한다. 생략불가
  • Ethernet Frame 구조에서 와이어샤크가 PreambleSFD를 생략한다
  • 와이어샤크가 FCS를 숨겨놓는다.

FCS 표시되도록 설정하는 방법


HTTP가 TCP로 운영되는 이유? 신뢰성 때문에, 데이터 전달


TCP

: Stream-Oreiented Transport Protocol

  • TCP헤더는 기본이 20바이트 최대 60바이트로 구성
  • 헤더 길이의 끝지점이 데이터의 시작
  • TCP헤더는 가변적
  • 단편화 가능
  • 데이터 전송 전 (sys==1): 3-way handshake(가상회선 설정)
    • 서버 Up, 서버 Up
    • 세션 수립
  • 데이터 전송 중
    • 데이터 전송 유무 확인
  • 데이터 전송 후(fin==1)

TCP

  • 연결성 보장 필드 : 시퀀스 넘버(SYN)아크넘버(ACK)
  • 신뢰성 보장 필드 : 아크넘버(ACK)

framine 전송 전에 참여하는데 전송 후에 참여하는지

Established : 사앙의 선이 응답했다.
세션수립 == 채널이 열렸다.

netstat -an활성 연결
``

```bash
  프로토콜  로컬 주소           외부 주소              상태
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49665          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49666          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49667          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49668          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:49670          0.0.0.0:0              LISTENING
  TCP    172.30.1.94:139        0.0.0.0:0              LISTENING
  TCP    172.30.1.94:49408      20.198.118.190:443     ESTABLISHED
  TCP    172.30.1.94:49897      173.194.174.188:5228   ESTABLISHED
  TCP    172.30.1.94:51571      104.18.22.107:443      ESTABLISHED
  TCP    172.30.1.94:51584      104.18.22.107:443      ESTABLISHED
  TCP    172.30.1.94:51587      104.18.22.107:443      ESTABLISHED
  TCP    172.30.1.94:51701      146.75.49.51:443       ESTABLISHED
  TCP    172.30.1.94:51731      18.64.8.93:443         ESTABLISHED

  • 싱크 넘버 : 767
  • 시퀀스 넘버 : 데이터의 넘버를 나타낸다(=초기화 번호)
    • 전송을 안해도 먼저 부여한다.
    • 클라이언트가 서버와 작업하기 위해 만든 번호
  • ACK 플래그 : 대답을 해주는 플래그
    데이터를 잠정적으로 1바이트로 하기때문에 AN=768

ACK넘버가 다음의 Sync넘버

데이터는 명시되지 않는다.

HTTP
잘 받았다고 응답해주는 건 TCP

TCP연결 설정(3-way handshaking)

: 서로의 상태 확인

  1. Sync, MSS 사이즈 알려주기
  2. 클라이언트 → 서버 전송
  3. 서버 → 클라이언트 전송
  • 송신자는 전송 성공 시 ACK(Acknowledgment Number)로 확인한다.
  • 수신자는 전송 성공 시 SN(Sequence Number)로 확인한다.

만약 3개를 전송했을 때 1개가 실패했을 때 기본적으로 3개를 모두 다시 보내야 한다.

TCP - Options - TCP Options 확인

window: 8192 ACK없이 보낼 수 있는 바이트
TCP Option - SACK permitted 실패 시 선택된 ACK만 보내라
window size:0바이트 수신금지! ⇒ 트래픽 보내면 폐기(Drop) 된다.

TCP 연결 종료 (3-way handshaking)

# 프로토콜 통계와 현재 TCP/IP 네트워크 연결을 표시
$ netstat -a
네트워크 연결상태
closed채널 닫힘
Listen채널 열림
establish
--
close wait
last ack
time wait

장시간 close_wait에서 last_ack로 넘어가지 않으면 서비스 상태가 정상적이지 않다는 의미

서버가 먼저 종료되어야 클라이언트가 종료된다.

클라이언트→서버에게 ACK를 전달하는 도중 문제가 발생하면 서버는 클라이언트에게 할당되어 있는 리소스를 계속 갖고 있게 되면 오버헤드가 발생될 수 있다.
⇒ 세션이 연결된줄 알고 통로를 열어놓기 때문에

TCP Header

Source port address : 송신지
Destination port address : 수신지
Sequence number : 처리되는 순번
Acknowledgment number :
HELEN : Header Legnth 헤더 총 길이
Reserved :
urg : 시퀀스보다 긴급하게 전송해야하는 값일 경우, 우선순위 변경(Urgent Pointer)⇒ 숫자가 작은 것부터⇒ 요즘에는 사용x
ack ACK Number
psh : payload된 데이터가 MSS 보다 작을 때 내보낼 때 사용
rst : 비정상 종료(Reset)
fin : 정상 종료(Finish)
widnow size : ACK없이 연속해서 보낼 수 있는 데이터 양
Checksum : 오류검증
Urgent pointer : 우선순위 설정


UDP

: Message-Oriented Transport Protocol

UDP 헤더의 특징

  • 비신뢰성
    UDP Checksum은 있어도 문제가 있어도 재전송 요청 불가
  • 기능이 없기 때문에 헤더가 짧다.
  • payload된 데이터를 단편화 X
  • 3계층에서 단편화 작업을 한다.
  • 전송 완료 전까지 다른 데이터 흐름에 영향받지 X

와이어샤크에서 UDP

  • Total Length : 39 bite
  • Header : 8 bit
  • Data(=UDP payload) : 31 bite

IP Header

  • 헤더 길이 가변적(총 20~60byte)
  • VER : 버전명
  • HLEN : 헤더 길이
  • Service type : 전송하려는 데이터의 서비스 품질을 명시(=요구항목)
    ex. 안전하게 전송해주세요 / 빠르게 전공해주세요 등
  • Total length : 헤더의 총 길이
  • Identification : 고유 번호
  • Flags : 0 = No fragment, 1=More fragments
  • Fragmentation offset : 상대번호
  • Protocol : \window\system32\drivers\etc\protocol 에서 설정가능
  • Header Checksum : 오류검출 코드
  • Option 잘 사용 안한다.

MTU(Maximum Transfer Unit)

: LAN카드에는 한 번에 밖으로 보낼 수 있는 최대 데이터 단위 - 사용하는 LAN카드에 따라 전송할 수 있는 최대 데이터 단위가 다르다.

  • MTU는 불변값이다.

만약 애플리케이션에서 보내려고하는 데이터가 4000byte, LAN card에서 보낼 수 있는 데이터는 1500byte인 경우 나머지 데이터는 폐기된다.
데이터가 폐기되지 않기 하기 위해서는 단편화 작업이 필요하다. 단편화 는 3~4계층에서 진행된다.

단편화

: 데이터를 분할하는 작업

  • UDP는 단편화 할 수 없다.
App. 4000 byte
.
.
4계층 - 단편화할 수도 있고 안할 수도 있다.
3계층 - 반드시 단편화 해야 한다.
LAN. 1500 byte

데이터는 1500 byte(A.1.1) 1500 byte(A.2.1) 1000 byte(A.3.0) 으로 분할된다.

태그 (A.x.x) 를 붙이는 이유? 분할되어 들어온 데이터를 수신자 쪽에서 다시 재조립해야하기 때문에

Q. 단편화에 관련된 필드는 무엇인가?
A. (1) Identification (2) Flags (3) Fragmentation offset


TTL

: 목적지까지 통과하기까지 통과하는 최대 홉(hop) 수 지정

TTL값이 너무 작은 경우 목적지에 도착하기 전에 폐기되버린다.
TTL값이 너무 큰 경우

LAN카드 MTU 확인

C:\Users\USER>netsh interface ipv4 show interfaces

색인     메트릭         MTU          상태                이름
---  ----------  ----------  ------------  ---------------------------
  1          75  4294967295  connected     Loopback Pseudo-Interface 1
  3          35        1500  connected     Wi-Fi
  9           5        1500  disconnected  이더넷
 12          25        1500  disconnected  로컬 영역 연결* 9
 10          25        1500  disconnected  로컬 영역 연결* 10
 14          65        1500  disconnected  Bluetooth 네트워크 연결
 17          25        1500  connected     이더넷 2

LAN카드 MTU 사이즈 변경

✅ 사이즈를 변경할 수 있는 랜 카드인지 파악 해야한다.

TTL 값 변경

IP header filed ==> 레지스트리 편집기, netsh

MTU 추적파일
C:\Windows\System32\drivers\etc\protocol

Header Chaecksum

  • 헤더의 오류를 검증하기 위해 사용
    송신자 측에서 다 더한 값을 Header checksum 에 넣는다.
    수신자도 checksum만 제외하고 다 더했을 때 송신자 측이 보내준 checksum과 동일한지 비교한다.
    다를 경우 오류가 발생했음을 알 수 있다. 그러므로 해당 데이터는 신뢰할 수 없다.

Version + ToS
Total Length
ID
Flags
TTL + Protocol

TCP, UDP, IP, Ethernet의 Checksum이 모두 다르다.

MSS

: Maximun Segment Size

  • 각 계층마다 헤더를 부르는 이름이 다르다.
  • 4계층에서는 MSS 라는 말을 쓴다.
계층데이터헤더
   7   Message
4Segment
(=Datastream)
Port   
3PacketIP
2Frame
(=Datagram)
MAC
1Bit

최적의 MSS

3계층에서 단편화를 하지 않게 하기 위한 세그먼트의 크기

MSS 구하는 방법

MTU = (IP Header + TCP Header + IP data) == 1500 byte(Ethernet Header를 제외한 값)
실제 전송하는 데이터 길이 = 1500(MTU) + 18(Ethernet Header+Trailer) = 1518 byte

Etherne LAN = 1500 byte
IP Header = 20
TCP Header = 50
MSS = 1500 - 20(IP) - 50(TCP) = 1430

Ethernet Header 14 byte
FCS 4 byte

  • MSS가 2000byte
  • 시퀀스 번호는 순차번호다. Urgent point 와 연관
  • TCP Headerdp SN=1100 / 데이터가 2000byte면 다음 시퀀스 번호는 SN + 데이터 byte = 3100이다.
  • 4계층에서 단편하는 것이 좋다.
  • 3계층에서는 ID, offset,flag를 봐야하지만 4계층은 SN만 보면된다. 4계층에서 할 때 MSS값을 조절하면 된다.

ICMP

1. ICMP란?

  • Internet Control Message Protocol
  • IP 의 단점을 보안하기 위해 등장
  • 독립적으로 존재하지 못하고 IP Header 에 기생해서 살아간다.

2. ICMP의 용도

IP Header 를 조작하면서 통신이 되는지 안되는지 테스트 해주는 프로토콜(7계층이 있는 것처럼 테스트)

3. ICMP의 기능

  • IP 프로토콜을 이용하여 ICMP 메세지 전달
  • 네트워크 계층에 속하여 네트워크 관리 프로토콜의 역할 수행
    (여기서 포인트는 종단간 데이터 수송 역할 X)

4. 와이어샤크에서 ICMP 확인

  • 공통적으로 나오는 필드
    • SAP(Service Access Point)
    • Checksum
      ⇒ ICMP에서 Protocol : ICMP 부분이 SAP이다.

5. ICMP 실습

기본 게이트웨이 - 172.30.1.254

ping

# ping 개수 지정
C:\Users\USER>ping -n 1 172.30.1.254

Ping 172.30.1.254 32바이트 데이터 사용:
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64

172.30.1.254에 대한 Ping 통계:
    패킷: 보냄 = 1, 받음 = 1, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 0ms, 평균 = 0ms
# ping 무한으로 보내기
C:\Users\USER>ping -t 172.30.1.254

Ping 172.30.1.254 32바이트 데이터 사용:
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=4ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=2ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
# ping 보낼 때 같이 보낼 데이터 크기 지정
C:\Users\USER>ping -l 500 172.30.1.254

Ping 172.30.1.254 500바이트 데이터 사용:
172.30.1.254의 응답: 바이트=500 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=500 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=500 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=500 시간<1ms TTL=64

172.30.1.254에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 1ms, 평균 = 0ms

ping으로 보낸 데이터 단편화 확인

ping -f 단편화x

#
C:\Users\USER>ping -f 172.30.1.254

Ping 172.30.1.254 32바이트 데이터 사용:
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간<1ms TTL=64
172.30.1.254의 응답: 바이트=32 시간=1ms TTL=64

172.30.1.254에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
    최소 = 0ms, 최대 = 1ms, 평균 = 0ms

4000byte를 단편화하지 않고 보내려고 할 때 ping 실패

C:\Users\USER>ping -l 4000 -f 172.30.1.254

Ping 172.30.1.254 4000바이트 데이터 사용:
패킷 조각화가 필요하지만 DF가 설정되어 있습니다.
패킷 조각화가 필요하지만 DF가 설정되어 있습니다.
패킷 조각화가 필요하지만 DF가 설정되어 있습니다.
패킷 조각화가 필요하지만 DF가 설정되어 있습니다.

172.30.1.254에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 0, 손실 = 4 (100% 손실),

tracert 경로 추적
형식 : tracert 게이트웨이 번호

C:\Users\USER>tracert 203.241.132.34

최대 30홉 이상의
nic.samsung.co.kr [203.241.132.34]()로 가는 경로 추적:

  1     1 ms    <1 ms    <1 ms  172.30.1.254
  2    10 ms   122 ms     *     121.136.10.1
  3     4 ms     1 ms     2 ms  125.141.249.22
  4     *        *        *     요청 시간이 만료되었습니다.
  5     *        *        *     요청 시간이 만료되었습니다.
  6     7 ms     3 ms     3 ms  112.174.9.82
  7     4 ms     3 ms     3 ms  203.229.222.14
  8     4 ms     4 ms     5 ms  u153.ppp80.samsung.co.kr [157.197.80.153]
  9     8 ms     8 ms     7 ms  112.106.53.2
 10     4 ms     4 ms     3 ms  nic.samsung.co.kr [203.241.132.34]

추적을 완료했습니다.

ping -i : IP헤더의 TTL 값을 변경

C:\Users\USER>ping -i 3 203.241.132.34

Ping 203.241.132.34 32바이트 데이터 사용:
125.141.249.22의 응답: 전송하는 동안 TTL이 만료되었습니다.
125.141.249.22의 응답: 전송하는 동안 TTL이 만료되었습니다.
125.141.249.22의 응답: 전송하는 동안 TTL이 만료되었습니다.
125.141.249.22의 응답: 전송하는 동안 TTL이 만료되었습니다.

203.241.132.34에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),

Ethernet Frame

1. 구조

L2 PDU = Frame
같은 이더넷지만 2개의 프레임이 돌아간다.
1. host 발생 프레임 ⇒ DIX Frame(type)
2. 장비 발생 프레임 ⇒ IEEE 802.3 frame(Length)

DIX Frame(type)

  • Length PDU에
  • wiresharkPreamble 부분을 감춰놓는다.

IEEE 802.3 frame(Length)

ARP REQUEST

  • Opcode
    • request (1)
    • reply(2)

MAC주소를 모르는 경우
1. ARP 캐시 테이블 확인
2. ARP 캐시테이블에 주소가 없는 경우 브로드캐스트로 request
3. 브로드캐스트로 request됐으므로 클라이언트에서 일단 받는다.
4. 역캡슐화로 ARP Header 부분에 Destination IP 확인
5. Destination IP 가 자신을 향한 것이 맞다면 Source IPreply 를 보내면서 Source IP 를 자신의 ARP 캐시 테이블 에 추가한다.
⇒ 왜? 다시 통신해야되는 경우 다시 request-reply를 해야한다면 비효율적이기 때문에 효율적으로 통신하기 위해서 추가한다.

Q. 만약 내가 request를 보낸 적이 없는데 reply가 온 경우 역캡슐화 후 ARP캐시 테이블에 저장할까? 안 할까?
A. request 한 적 있건 없건 일단 역캡슐화 후 ARP 캐시 테이블에 저장한다. 이 부분으로 침투 시도가 있을 수 있다.

1.10(ip) 4444(mac)
request[ffff.ffff.ffff | 1111.222.3333 | 0x0806 | 1111.1111.1111/192.168.1.10]

IP는 동일한데 LAN카드 교체된 경우 MAC주소가 변경된다.
다른 컴퓨터에서 MAC주소가 변경된 컴퓨터에 ARP 캐시 테이블 업데이트용으로 ARP Request를 보내기도 한다.

profile
공부 기록
post-custom-banner

0개의 댓글