네트워크 실습

@ PC1(192.168.1.1) <- PC2(10.1.1.1)

 - PC2에서 PC1으로 전송되는 응답 데이터에 대한 주소에 대해서 알아보도록 한다.

1. PC2에서 응답 데이터가 전송될때 IP 주소 및 MAC 주소가 어떻게 설정될것인지 빈칸(?)을 채우도록 한다.

PC2>ping 192.168.1.1
PC2>ipconfig /all
PC2>arp -a

 

SA 

DA

------------------------------- IP

SA

DA

------------------------------- ETH

 

 

2. Switch2에서 목적지 MAC 주소와 매칭하는 정보가 있는지 확인하고, 어떤 포트로 응답 데이터를 출력하는지 확인한다. 

Switch2#show mac address-table

 

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
SA 00e0.f739.d44a
DA 000a.41ad.3301
------------------------ ETH

 

3. Router2 F0/0으로 수신한 응답 데이터의 목적지 MAC/IP 주소와 Router2 F0/0 MAC/IP 주소가 일치한지 확인한다.
   
Router2#show int fa0/0

 

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
SA 00e0.f739.d44a
DA 000a.41ad.3301
------------------------ ETH

 

4. Router2 라우팅 테이블에서 목적지 IP 주소와 일치한 경로를 확인하고, 어떤 인터페이스로 출력하는지 확인한다. 

Router2#show ip route

 

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP

 

5. Router2 S0/0으로 응답 데이터를 출력할때 새롭게 인캡슐레이션될 WAN 구간 프로토콜 정보를 확인하고 빈칸(?)을 채우도록 한다.

Router2#show int s0/0

 

SA

DA

------------------------------- IP

?

------------------------------- ?

 

6. Router1 S0/0으로 수신한 데이터의 HDLC 정보/IP 주소와 Router1 S0/0 HDLC 정보/IP 주소가 일치한지 확인한다.

Router1#show int s0/0

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
HDLC
------------------------ HDLC

 

7. Router1 라우팅 테이블에서 목적지 IP 주소와 일치한 경로를 확인하고, 어떤 인터페이스로 출력하는지 확인한다.

Router1#show ip route

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP

 

8. Router1 F0/0으로 응답 데이터를 출력할때 새롭게 인캡슐레이션될 ETH 헤더의 출발지 및 목적지 주소를 확인한다.

Router1#show int fa0/0
Router1#show arp

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
SA 0090.2b01.7e2e
DA 0060.7030.6E19
------------------------ ETH

 

9. Switch1에서 목적지 MAC 주소와 매칭하는 정보가 있는지 확인하고, 어떤 포트로 응답 데이터를 출력하는지 확인한다. 

Switch1#show mac address-table

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
SA 0090.2b01.7e2e
DA 0060.7030.6e19

------------------------ ETH

 

10. PC1에서 수신한 응답 데이터의 목적지 MAC 주소/목적지 IP 주소가 자신의 정보와 일치한지 확인한다.

PC1>ipconfig /all

SA 10.1.1.1
DA 192.168.1.1
------------------------ IP
SA 0090.2b01.7e2e
DA 0060.7030.6e19
------------------------ ETH

 

 

PC2는 다른 네트워크로 패킷을 보내려면 도착지 mac address를 기본 게이트웨이로 지정해야한다.

 

arp -a (pc)

apr table 확인, ip 주소에 대한 mac 주소 확인

PC는 eth 프로토콜을 만들때 ip 프로토콜에 적혀있는 ip 주소에 대한 mac 주소를 arp table에서 찾고 그에 맞는 mac 주소를 eth 프로토콜에 적는다. ip 주소에 대한 mac 주소가 없으면 arp 프로토콜을 먼저 한다.

 

show mac address-table (switch)

스위치에서 mac address table 확인

스위치는 패킷을 받으면 eth 헤더에 적혀있는 mac address를 확인 한 후 mac address에 맞는 포트 번호로 패킷을 내보낸다.

 

 

 

@ 데이터 전송 프로토콜

1. TCP(Transmission Control Protocol)

 - 헤더 크기 : 20byte(옵션이 있기 때문에 더 크게 나오는 경우도 있음)
 - Layer 4 계층 프로토콜
 - 연결 지향성 프로토콜 : 다른 시스템과 통신 수립 연결을 실시하고 난 이후, 데이터 요청 및 응답 실시
 - '3-Way 핸드 쉐이킹' 동작 실시

 - filter : tcp.port == 80
와이어샤크 94,5,6번 -> 3way handshark
연결하기 전까지 http을 보내지 않는다.

A(클라이언트)                                      B(서버)
172.16.5.254:1980                                 114.111.46.227:80

1980 포트                                            80 포트
1. Syn(통신합시다.) ->
                                                       <- Syn, Ack(확인 응답)
Ack -> 
                          ~ 통신 수립 완료 ~
                            (ESTABLISHED)

데이터/서비스 요청 ->
HTTP GET
                                                       <- 데이터/서비스 응답
                                                       HTTP/1.1 200 OK

3-Way 핸드쉐이킹



EX) TCP 3-Way 핸드쉐이킹 동작 파악

 - filter : tcp.port == 23
 - filter : tcp.port == 443

 - TCP Control Flag (6bit)

    urg (1.....) : 긴급한 데이터 표기
    ack (.1....) : 확인 응답/승인
    psh (..1...) : 수신처리 이후, 상위 프로세스로 처리
    rst (...1..) : 강제 종료 
    syn (....1.) : 통신 개시
    fin (.....1) : 정상적인 종료

URG ACK PSH RST SYN FIN
2^5 2^4 2^3 2^2 2^1 2^0  10진수 16진수 tcp.flag
32  16    8     4    2    1

0    0     0     0    1    0      2         0x02    syn
0    1     0     0    1    0      18       0x12     syn+ack
0    1     0     0    0    0      16       0x10     ack


 - 데이터 스트림 서비스 : 데이터를 세그먼트 단위로 생성하여 전송 및 수신 처리 실시
                                      (순서 번호 및 확인 번호 사용) -> 흐름제어

 - 흐름 제어 기능 : stop & wait 기법 -> 슬라이딩 윈도우 기법

stop & wait : 송신한 세그먼트에 대한 Ack를 수신해야지만, 그 다음 세그먼트 전송
                 (다음 세그먼트 송신 처리 지연 발생 및 Ack 양 많음)
                  한 번만 줄떄 어울림

슬라이딩 윈도우 : 수신측 세그먼트 처리양에 맞게 송신측에서 세그먼트 다수 전송, 양을 증가 시키면서
                      (세그먼트 송신 지연 발생 및 Ack 양 최소함)
                      여러 번 보내야 할 때            

 - 혼잡 제어 기능 : 혼잡 발생시 전송률을 최소화하는 기능

 - 오류 검사 : 수신한 세그먼트 손상 여부 판단
     (손상된 세그먼트는 드랍 처리 실시)

 - 재전송 기능 : 송신한 세그먼트에 대한 Ack를 수신하지 못하면, 해당 세그먼트를 재전송 실시

 - Window Size : 송수신할 수 있는 세그먼트양 동기화, 100 vs 80
 
 - HTTP(80), HTTPs/SSL(443), Telnet(23), SSH(22), FTP(21), FTP-Data(20), SMTP(25), POP3(110), MYSQL(3306)
  -> 3way 핸드쉐이킹 먼저 하는 애들이다.

 

 

2. UDP(User Datagram Protocol)

 - 헤더 크기 : 8byte 
 - Layer 4 계층 프로토콜
 - 비연결 지향성 프로토콜
바로 요청을 보낼 수 있다.

A(클라이언트)                  B(서버)
172.16.5.254:53258           168.126.63.1:53

데이터/서비스 요청 ->
DNS(query)
                                  <- 데이터/서비스 응답
                                  DNS(response)

'3-Way 핸드 쉐이킹' 동작 X
데이터 스트림 서비스 X
혼잡 제어 기능 X
재전송 기능 X
Window Size X

 - 오류 검사
 - DNS(53), TFTP(69), DHCP Server(67), DHCP Client(68), SNMP(161), NTP(123)

 

3. IP(Internet Protocol)

 - 헤더 크기 : 20byte 
 - Layer 3 계층 프로토콜
 - 비연결 지향성 프로토콜
 - 로컬 환경에서 리모트 환경으로 데이터 전송 담당
 - TTL(Time to Live) : 8bit(0~255), 패켓 루프 방지 기능 및 거리 측정
 - 기타 기능 : IP Fragments, QoS 관련 
 - 데이터 단위 : 패킷

[참고] 운영 체제 TTL 기본값 -> 라우터가 지나간 만큼 감소

 - Cisco         255
 - Window     128
 - Linux         64

라우터는 데이터를 받으면 ttl을 1 감소한다. 0이 되면 드랍

 

4. TCP/IP 5 Layer

상위계층 http, https(ssl), telnet dns, tftp, snmp, ntp
(Application) ssh, ftp, ftp-data, smtp, pop3 dhcp server/client, syslog

Layer 4                                  TCP - 세그먼트                  UDP               포트 번호
(Transport)                             통신 연결 O                     통신 연결 X

'3-Way 핸드 쉐이킹' 동작           O                                   X
데이터 스트림 서비스                O                                   X
혼잡 제어 기능                        O                                    X
재전송 기능                            O                                    X
Window Size                           O                                   X 
오류 검사                                O                                  O

Layer 3                                              IP - 패킷                                   IP 주소
(Internet)                     로컬 환경에서 리모트 환경으로 데이터 전송
                                 TTL를 이용하여 패켓 루프 방지 기능 및 거리 측정

Layer 2                                       Ethernet - 프레임                               MAC 주소
(Nework Interface)            Ethernet 내부 환경에서 데이터 전송
                                   최종적으로 오류 검사 실시

Layer 1                                   전기 신호 변환 및 입출력                        bit(0,1)
(Physical)

[참고] OSI 7 Layer 확인! - 계층 설명을 하라고 하면 해당 계층 프로토콜을 설명하면된다.

 - 데이터 생성과 전송 과정을 7개 계층으로 설명/제시한 모델
 - 이것을 통해서 네트워크에서는 장애 처리 접근을 손쉽게 할 수 있다.

Layer 7 어플리케이션        서비스가 구현되는 계층
Layer 6 프리젠테이션        서비스를 어떤 방식으로 표현할 것인지를 결정
Layer 5 세션                    OS/서비스 간에 논리적인 연결
---------------------------------------------------------- 상위 계층(서비스 구현, OS/응용 프로그램 담당)
Layer 4 트랜스포트                   TCP            UDP
Layer 3 네트워크                                IP
Layer 2 데이터 링크                        Ethernet
Layer 1 물리 계층                 전기 신호 변환, 입출력
----------------------------------------------------------- 하위 계층(전송 담당, 네트워크 장비/전송 프로토콜 담당)


 

5. ICMP(Internet Control Message Protocol)

 - IP 프로토콜을 이용한 데이터 전송이 가능한지를 확인하기 위해서 메세지를 생성하고 전송하는 프로토콜
 - 메시지 유형 : ICMP Echo(요청), ICMP Echo-Reply(응답), ICMP Destination Unreachable(목적지 도달 불가능 응답)
 - 관련 명령어 : 'ping', 'tracert', 'traceroute'

 

ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.

 

IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. 따라서 정상적으로 목적지 호스트에 도달하는 경우에는 IP에서 통신이 성공하고 종료되므로 아무런 문제가 없다.

 

 그러나, 만일 전달해야 할 호스트가 꺼져 있거나, 선이 단절된 경우와 같은 비정상적인 경우에 이 패킷 전달을 의뢰한 출발지 호스트에 이러한 사실을 알려야하지만, IP에는 그러한 에러에 대한 처리 방법이 명시되어있지 않다.

 

따라서 icmp는 ip 프로토콜을 도와주는 역할을 한다.

 

네이버랑 다음은 방화벽에서 icmp echo를 막아놨다.

관리자                                 C
192.168.1.100                        10.1.1.1

ping 10.1.1.1

ICMP Echo ->                        <- ICMP Echo-Reply
SA 192.168.1.100                     SA 10.1.1.1
DA 10.1.1.1                            DA 192.168.1.100

관리자_PC>ping 10.1.1.1

Pinging 10.1.1.1 with 32 bytes of data:

Reply from 10.1.1.1: bytes=32 time=8ms TTL=126
Reply from 10.1.1.1: bytes=32 time=9ms TTL=126
Reply from 10.1.1.1: bytes=32 time=1ms TTL=126
Reply from 10.1.1.1: bytes=32 time=11ms TTL=126

Ping statistics for 10.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 11ms, Average = 7ms

관리자_PC>tracert 10.1.1.1

Tracing route to 10.1.1.1 over a maximum of 30 hops: 

  1   0 ms     0 ms      0 ms      192.168.1.254 <- TTL=1로 'Echo'를 전송하고 'Destination Unreachable'를 수신한 내용
  2   2 ms     0 ms      2 ms      13.13.12.2 <- TTL=2로 'Echo'를 전송하고 'Destination Unreachable'를 수신한 내용
  3   6 ms     1 ms      0 ms      10.1.1.1 <- TTL=3으로 'Echo'를 전송하고 'Echo-Reply'를 수신한 내용

Trace complete.                            <- 목적지로부터 'Echo-Reply'를 수신했기 때문에 경로 추적 테스트 완료


[참고] ICMP 공격을 방지하기 위해서 방화벽에서 차단한 경우

C:\Users\Administrator>ping www.naver.com

Ping www.naver.com.nheos.com [223.130.200.107] 32바이트 데이터 사용:
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.
요청 시간이 만료되었습니다.

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

 

6. ARP(Address Resolution Protocol)

와이어 샤크 
arp 맨위

 - 주소 변환 프로토콜
 - 목적지 IP 주소에 대한 MAC 주소를 설정하는 프로토콜
 - 만약, 목적지 IP 주소에 대한 MAC 주소가 없을 경우, 다음과 같이 ARP 요청 및 응답 실시

C                            D
10.1.1.1                    10.1.1.2
00E0.F739.D44A         000A.4196.458A


 1) C에서 D로 'ICMP Echo'을 전송할때, D에 대한 MAC 주소 정보가 ARP 테이블에 없는 경우

C_PC>arp -d              -> arp 테이블 삭제
C_PC>arp -a
No ARP Entries Found


C(10.1.1.1) -> D(10.1.1.2)

ICMP Echo
--------------------- ICMP
SA 10.1.1.1
DA 10.1.1.2
---------------------- IP
SA 00E0.F739.D44A
DA X <- ARP 테이블 D(10.1.1.2)에 대한 MAC 주소 정보가 없기 때문에 목적지 MAC 주소 설정 X
---------------------- ETH X <- Ethernet 프로토콜 인캡슐레이션 불가능


 2) C는 D(10.1.1.2)에 대한 MAC 주소를 학습하기 위해서 ARP 요청 메세지를 전송한다.

C D
10.1.1.1 10.1.1.2
00e0.f739.d44a 000A.4196.458A

"10.1.1.2, MAC...?"
---------------------- ARP 요청 메세지
SA 00E0.F739.D44A
DA FFFF.FFFF.FFFF <- 브로드케스트 MAC 주소
---------------------- ETH


 3) D는 자신의 IP 주소/MAC 주소 정보를 ARP 응답 메세지를 생성해서 C한테만 전송한다.

C D
10.1.1.1 10.1.1.2
00E0.F739.D44A 000A.4196.458A

"10.1.1.2, MAC 000A.4196.458A"
------------------------------------- ARP 응답 메세지
SA 000A.4196.458A
DA 00E0.F739.D44A <- 유니케스트
---------------------- ETH


 4) ARP 응답 메시지를 수신한 C는 ARP 테이블에 D의 IP 주소/MAC 주소 정보를 등록한다.

C_PC>arp -a
  Internet Address      Physical Address      Type
  10.1.1.2              000A.4196.458A        dynamic


 5) C는 ARP 테이블에 D에 대한 IP 주소/MAC 주소 정보가 있기 때문에 'ICMP Echo'를 전송할 수 있다.

C(10.1.1.1) -> D(10.1.1.2)

ICMP Echo
--------------------- ICMP
SA 10.1.1.1
DA 10.1.1.2
---------------------- IP
SA 00E0.F739.D44A
DA 000A.4196.458A <- ARP 테이블에 '10.1.1.2' IP 주소 정보에 대한 MAC 주소를 설정한다.
---------------------- ETH

Ex) C에서 10.1.1.2, 10.1.1.3으로 Ping 테스트를 실시한 이후, ARP 테이블 정보 확인

C_PC>ping 10.1.1.2
C_PC>ping 10.1.1.3

C_PC>arp -a
  Internet Address      Physical Address      Type
  10.1.1.2              000a.4196.458a        dynamic
  10.1.1.3              000c.8562.d6c2        dynamic


[참고] 다른 네트워크로 ARP 요청 불가

 - 라우터는 브로드케스트를 다른 네트워크로 전송하지 않는다.
 - 그렇기 때문에 다른 네트워크 환경에 있는 시스템에 대한 ARP 요청은 불가능하다.
 - 이런 경우 로컬 PC는 Gateway IP에 대한 MAC 주소를 학습하기 위한 ARP 요청을 실시한다.

Ex) C에서 192.168.1.100으로 Ping 테스트를 실시한 이후, ARP 테이블 정보 확인

C_PC>ipconfig

FastEthernet0 Connection:(default port)

   Link-local IPv6 Address.........: ::
   IP Address......................: 10.1.1.1
   Subnet Mask.....................: 255.255.255.0
   Default Gateway.................: 10.1.1.254

C_PC>ping 192.168.1.100

PC>arp -a
  Internet Address      Physical Address      Type
  10.1.1.2              000a.4196.458a        dynamic
  10.1.1.3              000c.8562.d6c2        dynamic
  10.1.1.254            000a.41ad.3301        dynamic

C(10.1.1.1) -> 관리자(192.168.1.100)

ICMP Echo
--------------------- ICMP
SA 10.1.1.1
DA 192.168.1.100
---------------------- IP
SA 00E0.F739.D44A
DA 000A.41AD.3301 <- ARP 테이블에 게이트웨이 '10.1.1.254' IP 주소 정보에 대한 MAC 주소를 설정한다.
---------------------- ETH

외부 네트워크 ping을 보내면 기본 게이트웨이가 학습된다.

proxyarp 알아보기



면접 준비 

1. TCP와 UDP에 대해서 설명, 차이점

2. IP 왜 필요한지

3. IP TTL이 무엇인지?

4. OSI7 Layer 무엇?

5. 계층별 장애 접근

6. ping 명령어와 treaceroute(ttl을 1부터 증가시킴 도착할 때가지) 명령어 공통점/차이점

 

 

 

'네트워크' 카테고리의 다른 글

서브넷팅 & IP 주소 (2)  (0) 2022.04.18
IP 주소 특징(1)  (0) 2022.04.17
와이어 샤크 사용법  (0) 2022.04.17
네트워크 주소 체계  (0) 2022.04.13
네트워크 및 네트워크 구성 요소  (0) 2022.04.12