웹 보안 및 네트워크보안 전문가

3일차, 네트워크 구조와 ping이 나가는 과정

컴공 2013. 6. 14. 02:12
반응형

원래는 서브넷팅하였을 때 마지막과 처음 네트워크단은 못 썼었지만
프로그래밍을 통해 사용할 수 있게 되었다.

Subnetting 목적은?

1)효율적인 broadcast domain을 나눌 수 있다.
2)IP address의 부족현상을 해소

Broadcast는 필요악
핸드폰 - unicast
마을방송 - broadcast (나머지가 귀를 기울여야 함)

마우스와 키보드가 인터럽트기능을 가진다
Cpu에게 사용중이던 프로그램 대신

브로드 케스트시
전기 - 1계층
NIC - 2계층 장비
Cpu - 3계층으로 올림

Decapsulation은 밑에서부터 간다.

ARP spoofing은 ip로 mac을 찾아와 지거인양 함
ARP요청은 broadcast이고 응답은 unicast이다.

### 브로드케스트
최종목적지에게는 좋은 일이나 나머지에게는 나쁜일이다.
같은 네트워크에서만 사용되는 통신방식이다.(router를 통할 수 없다)
첫날 한것이 arp프로토콜을 쓴 것
방송하면 들어야 하는 놈들이 브로드케스트 영역

Vlsm으로 브로드케스트를 효율적으로 나눌 수 있다.
난도질을하면 보안에는 좋다. 그러나 다른 동내는 라우터가 무조건 있어야 된다.

IP 주소 / MASK 가지고 장난치는 것
-subnetting
-VLSM(variable Length Subnet Mask) 쪼개진 걸 다시 쪼갬
-Supernetting 동내를 합치거나, 라우팅테이블을 줄이기 위해 사용한다. 특히 네트워크 장비가 많이 몰리는 백본장비에 쓴다.
Ip route 0.0.0.0 0.0.0.0 s0
-wildcard mask 서브넷가지고 표현 못하는 것을 표현하기 위해 사용.

OSI 7 Layer(TCP /IP 4layer)

7 application
6 presentation
5 session--------------application
4 transport// 엔지니어는 4계층이하, 개발자는 4계층 이상을 잘 알아야한다.
3 network
2 datalink
1 physiccal

TCP /IP 4layer가 1년 먼저 나왔다.
IPX/SPX 가 사라지고 tcp/ip프로토콜이 천하통일했다.


TCP/ip protocol suite

7 application

 

 

 

 

6 presentation

 

 

 

 

5 session

----------application

PROTOCOL

DEVICE

 

ADDRESS

 

4 transport

TCP

신뢰(재전송 매커니즘이있다) sequence / ack

연결지향(3wayhand handshacking)

70년대 말에 만들어져서 보안에 취약함

 UDP

오버헤드가 적다.

 

port

서비스간 연결보장

3 network

ICMP - TCP,UDP 뭐든 있다. 상병 7호봉

          데이터만들고 IP에게 내려준다.

IP -  상병 4호봉
ARP -
물봉

라우터

IP

종단간 연결보장

2 datalink

 

스위치/NIC

스위치허브는 5가지 ing   있다.

MAC

노드간 연결보장

1 physiccal

Tcp헤더에 sequence number 있다. +1

자기 sequence +1을해서 ack 담아 보낸다.

송신자(남자)--->수신자(여자)

사귀자

알았어

Ack

1)할말있어 syn보내고 // IP spoofing하여 출발아이피를 바꿔 공격함. Syn flooding 공격

2)해봐 

3)해장하러가자

 

1.1.1.1 ~ 223.254.254.254 계속 출발지를 바꿔서 보내면 된다.

 

HUB /cable

 

 

 # VLAN
Port security
Port mirroring

스위치랑 허브 구별은 똥구녕에 콘솔포트를 보면된다.

 

스위치와 브릿지의 5가지동작

 

Learning - 배운다.

Flooding - 모르면 들어온 포트를 제외한 나머지 포트에 뿌려준다.

Forwarding - 해당 포트로 건네준다.

Filtering - 다른 포트로는 못 건너가게 막는다

Aging - 나이를 먹는다.

Ping 역할

Ping.exe로 linking하여 ICMP를 직접호출하게 만듬.
컴퓨터는 7계층장비
라우터는 port를 acl빼고는 모른다.
스위치/nic는 IP를 모른다.
허브/케이블은 MAC을 모른다.

상위계층 정보를 모른다.
핑은 7계층에서 3계층으로 바로 간다.
Reply from 200.200.200.254

핑해서 되면 3계층이하는 안봐도 된다.

OSI 7layer 목적

-문제 발생시 빠른 해결을 위해서 외운다
-장비간 호환성(장비 사장들)

 

PDU 의미

각계층 헤더와 데이터를 합친 것이 PDU이다.
DATA+header
Packet data unit

- 제어정보는 Header와 Tailer라 불리는 필드에 위치
- PDU에 제어정보를 붙이기 위해 각 Layer는 Encapsulation이라는 과정을 거침
- Data Encapsulation

http://webip
A - 니가 갖고있는 html파일 내놔

 


4  DATA +TCP header | source주소, destination 주소를 모두 가진다.

DATA

s.p : 8000

d.p: 22

 

 

|<------------segment------>|   PDU =  data+port  4계층
Segment
1)4계층 PDU
2)collision domain  (하나의 segment당 하나의 목적지를 가져야 한다) 스위치가 flooding한다 CSMA/CD
-나랑 충돌될 가능성이 있는 것은 묶어서 컬리전 도메인이다.
-허브는 컬리전도메인 1개
-스위치는 20개를 가진다. 각각 하나의 pc가 하나의 컬리전 도메인을 가짐.
24개의 포트를가진 스위치의 sement는 어떻게 되느냐. 24개
3)최대 전송거리
UTP케이블의 segment는 어떻게 되는가. 이론은 100m이나 실제로는 70~80m된다.

DATA

S.IP

D.IP

 

 

 


|<--packet or Header -->| 3계층

 

DATA

S.MAC

D.MAC

 

 

 

|<---frame -------------->|  2계층

 

1계층은
101101010….. 2진수화됨.  5v 5v 0v 0v 등등 전기로 나감

CPU, LAN이 제일불쌍하고 하드가 제일 비쌈

데이터의 이동

2~4계층은 시작과 목적지 주소가 있다.

CSMA/CD

최민수 방식.
⑴ CSMA/CD 작동 과정
- 전송을 원하는 호스트는 네트워크에 캐리어를 감지해 전송이 가능한지 검사
- 호스트는 전송이 가능할 경우 전송을 하고, Collision이 감지될 경우 잼 신호를 브
로드 캐스트
- 전송을 시작하고, 목적지 호스트는 데이터의 CRC값을 검사해 데이터가 이상 없이
도달했는지 검사
- CRC 값이 이상이 없을 경우 상위 계층으로 데이터를 보내고, 이상이 있을 경우에는
폐기처분
- Collision에 의해서 전송을 못했을 경우는 Back-off 알고리즘에 따라 랜덤한 시간
이 지난 후에 다시 전송 시도
- 여러 대의 호스트가 같은 전송매체(케이블)에서 통신할 수 있도록 규칙을 제공

이더넷 환경에서의 통신

 

⑴ Host A와 Host B가 같은 네트워크 환경에서 통신
⑵ Host A에서 Host B와 통신을 위해 telnet 1.1.1.2
⑶ Data Encapsulation 과정 중 Host B의 MAC Address 모름
⑷ ARP 프로토콜 작동 후 Host B의 MAC Address를 획득
⑸ Data Encapsulation 후 Data 전송
- 다른 네트워크에서의 통신 방법
⑴ Host A와 Host B가 다른 네트워크 환경에서 통신
⑵ Host A는 Host B와 통신을 하기 위해 Routing Table 확인 후 Gateway로 데이터 전송
⑶ ARP 프로토콜에 의해 Gateway MAC Address 전송
⑷ Gateway에 전송된 Data는 Routing Table에 의해 전송

Routig Information Table (RIT) 참조

=> 목적지가 같은 네트워크인지 다른 네트워크인지 보는 것
=> Netstat -nr
NetworkDestination  netmask  gateway Interface Metric

0.0.0.0

0.0.0.0

200.254

200.1

127.0.0.0

255.0.0.0

127.0.0.1

127.0.0.1

200.200.200.0

255.255.255.0

200.1

200.1

 

 

 

 

224.0.0.0.0

240.0.0.0

 

 

255.255.255.255

255.255.255.255

200.1

200.1

 

 

 

 

 

 

 

 

 

 

라우터는 목적지만 본다.
목적지 IP주소랑 Netmask의 제일하단값이랑 AND연산한다.
200.200.200.2 목적지IP주소
255.255.255.255 netmask의 제일하단 값(안 맞으면 점차 올린다)
----------------
200.200.200.2

도출된 값을 Network Destination의 가장 마지막 값이랑 비교한다.

목적지 주소랑 netmask를 AND연산한 값이랑 바로옆의 NETWORK DESTINATION이랑 일치하는지 비교.
걸리면 샤우팅해라!!! (같은 동내에 있다)

 

스위치 jamming

출발지 IP를 계속 바꿔서 보낸다.
스위치가 부하가 걸려서 허브처럼 작동되어 다받아!!! 하는 것이 bypass모드이다.

Sniffing 전제조건이 도청할 수있게 된다.

1) Ping 되는 과정

책)성공과 실패를 좌우하는 1%의 원리 네트워킹


200.200.200.1 내아이피
>ping 200.200.200.2  //7계층이다
 1. Routig Information Table (RIT) 참조
 => 목적지가 같은 네트워크인지 다른 네트워크인지 보는 것
 => Netstat -nr
 NetworkDestination  netmask  gateway Interface Metric

.0.0.0

0.0.0.0

200.254

200.1

127.0.0.0

255.0.0.0

127.0.0.1

127.0.0.1

200.200.200.0

255.255.255.0

200.1

200.1

 

 

 

 

224.0.0.0.0

240.0.0.0

 

 

255.255.255.255

255.255.255.255

200.1

200.1

 

 

 

 

 

 

 

 

 

 

라우터는 목적지만 본다.
 목적지 IP주소랑 Netmask의 제일하단값이랑 AND연산한다.
 200.200.200.2 목적지IP주소
 255.255.255.255 netmask의 제일하단 값(안 맞으면 점차 올린다)
 ----------------
 200.200.200.2
 
 도출된 값을 Network Destination의 가장 마지막 값이랑 비교한다.
 
 목적지 주소랑 netmask를 AND연산한 값이랑 바로옆의 NETWORKDESTINATION이랑 일치하는지 비교.
 걸리면 샤우팅해라!!! (같은 동내에 있다)

2.Encapsulation

3계층 ICMP type 8 code 0으로해서 출발한다.

type

Code

8

0

 

 

 

상병 4호봉에게 보내준다. (internet protocol)

Data

IP header 붙인다.

S:200.1

D: 200.2

 

 

 

 

 

Stop!! 목적지 MAC주소가 없으므로 일단 멈춰서 Arp호출을 보낸다.

 

2계층

 

DATA

S.MAC: A

D: ?

 모든 것을 정지하고 ARP protocol을 출동시킨다.//객체 개념으로 필요할 때 쓰도록 모듈화해서 씀. 패킷크기가 작아서 빠름.
 Arp -s [목적지IP] [맥]을하면 arp출동안하고 나갈 수 있다.
 Cashe/Buffer가 모듈화한 사용을 도와준다. 와리가리를 하지만 더 빠름.

 3.ARP 통신을 시작함!!!

2) ARP 응답

NIC는 CPU의 n/w대리인
Cpu가 바쁘므로 목적지 맥어드레스까지 볼 수 있으므로 보고 올리라고 함.
그러나 FF는 전체이므로 못 찾음.
결국 Broadcast는 CPU가 관여한다.
인터럽트 걸리고 확인한다.

//스위치의 출발지를 계속 바꿔서 s/w jamming공격을 한다.
//스위치밑에 허브도 달려 하나의 스위치에 여러 개의 맥이 있을 수 있어서 결국 적다가 SPOF(single point of failure)가 된다. 부하가 걸리면 허브처럼 작동하게 한다.
//결국 필터링이 되지않아 B가 C에게 보내는 것이 A에게도 보내지게 된다. Sniffing의 전초단계

 

 

 1. Learning - 1번포트로 MAC어드레스가 들어온다.
 2. Flooding - 자기 빼고 다 보낸다.
 
 

커널까지 가려면 디바이스
 도 거쳐야한다. <--리버싱

ARP요청

1

S.M : A

S.I:200.1

D.M: 0----0

D.I:200.2

ARP응답

2

s.m:B

s.I:200.2

D.M:A

D>I:200.2

  3. Forwarding -
목적지 맥이 switch에 새겨놓은 것이면 forwarding으로 나아간다.
모르는 것이었으면 switching으로 보낸다.
자신있게 nic가 올리는게 unicast이다. 만약 허브로 switching되어 오면 Unicast는 렌단에서 확인 후 자신 게 아니면 버려진다. Data를 drop시킬뿐 완전

 

3) 프로세스 재개

재개된 핑 프로세스로
1-A // 기존의 스위치 테이블에서
3-B가 추가된다.
이더넷 통신에서는 FF에 따라 broad /uni가 결정된다.
 1) Routing Information Table (netstat -nr) 제일 위에 줄에있으면 우리 동내 애들이 아니다.
 2) Encapsulation
 3) Ping을 보냄 arp출동
 4) ARP replay
 5) Echo request
------------------------
 6) ICMP Echo reply
 3계층의 인터넷프로토콜까지만 보면 날 찾아온지를 봄
 4계층의 포토번호로 왜 찾아온지를 알아옴
 ICMP는 4계층부터 출발하므로 모찾아온 이유를 모른다.
 근데 encap에서 type 8 code0을 보고 왜 찾아온지를 안다.

ICMP

Type 0

Code 0

 

 

 

IP

-s 200.2

-d 200.1

DATA

 

 

1계층

 

 

 

 

 다음과 같이 도착하면 드디어 reply from 200.200.200.2가 뜬다.
 윈도우는 ARP케쉬 테이블에 2분동안 보관한다. 2분이 지나기 전에 다시 통신되면 10분으로 늘린다. 2분이 지나면 지워지기에 ARP-snoopfing할 때 계속해서 보낸다.
 Ping 의 경우 4번에 걸쳐받는데, 처음에는 8 0으로 보내고 arp로 0 0을 받아오면 reply from 200.2가 뜬다.

Arp -a

Arp 케쉬메모리를 보여달라.
>Arp -a (arp.exe)
Arp는 필요한 운영체제가 보내어 받는 것이다. 유저가 임의로 보내는 것이 아니다.
>Arp -d

항상 RAM을 사용하는 것들이기에 타이머를 사용해서 비워준다.

MAC 어드레스를 알아야 되나

Ping 168.126.63.1로 핑 때리면 kt의 맥 어드레스가 기억되야하나 안되는 것은 Relay가 이루어지지 않아서이다!

라우팅테이블 맨 위는 게이트웨이 밖인데, 브로드는 못 건너간다. 그래서 arp는 broadcast 내에서만 가능하다.

 

ARP 출동

200.200.200.4에서
 Ø Ping 168.126.63.1
 1) 라우팅 테이블을 먼저 본다.
 0.0.0.0 0.0.0.0 200.200.200.254(gateway) 200.200.200.4(interface)
 같은 동내이면 arp가 출동하고 mac어드레스를 가져오나
 다른 동내이면 gateway로 보낸다.
 라우팅 테이블에 아무것도 없으면 request timeout이 아닌 untouchable이 뜬다.
 2) Encapsulation
 ICMP 8 0
 IP data s.ip 200.4 D.ip:168.126.63.1 //부산 친구집에 보낸다. 핑은 168로 보내나 응답은 254로 오는 미친 컴터가 안되려면 168로 보내야 된다.
 2계층 : data  | S.MAC:A   D.MAC: ????  -> stop
 3) ARP request
 1 - 요청
 2 - 응답
 S.M : A
 S.I : 200.4
 D.M: 0-----0
 D.I:200.254  // 이미  1단계에서 알아왔으므로 254로 ip를 바꿔둔다.
 
 왜 고유한 주소를 두 개나 쓸까?
 2계층 주소를 안쓰면 2계층 장비를 인식하지 못한다… 지한테 없으면 cpu에게 다 보낸다.
 관여 장비가 없으면 무조건 broadcast가 되어 성능이 떨어진다.
 걸러 내고자 쓰는 것이다.
 
 OSI7layer같은 것이 나온 것은 중구난방을 막기 위한 것
 나라마다 주소가 다르듯이 계층마다 주소가 다르다.
 천하 통일을 위해 등장한 것이 3계층의 ip address이다.
 IP 어드레스는 종단까지, MAC은 로드간 (이동할 때만 보장)
 
 
 RARP= 3계층 -> 더 나아간 게 DHCP이다.

반응형