집에서 컴퓨터를 이용해서 인터넷을 이용을 한다면, IP가 필요하다.

컴퓨터에 IP를 할당하는 방식은 기본적으로 2가지가 있는데, 하나는 Static방식이고, 하나는 DHCP방식이다.

 

-Static 방식

 

Static방식은 내가 사용하고 싶은 IP를 자신이 직접 입력을 해서 할당하는 방식이다.

Static방식을 사용하게 되면 자신만의 고정 IP를 갖게되어서 자신의 IP를 이용해 무언가를 하려고할때(예를들어 원격접속 등)

DHCP 동적 할당 방식에 비해 편리하다.

Static방식을 사용하기 위해서는

 

1. 자신이 사용할 수 있는 IP

2. 자신의 네트워크의 서브넷마스크

3. 자신의 게이트웨이

4. DNS 주소

 

를 알아야한다.

따라서 자신의 네트워크 구조를 어느정도 알고있어야 Static 방법을 사용할 수 있다. (DNS는 입력하지 않으면 알아서 할당을 해준다.)

실제로 DHCP를 통해 동적으로 할당 받을 때도 위의 정보들을 받아온다.

 

-DHCP 방식

 

DHCP 할당 방식은 클라이언트(자신 PC)가 DHCP서버에게 IP를 요청하고, DHCP가 현재 사용하지 않는 IP를 잠시 임대 해주는 방식이다.

따라서 같은 IP를 계속 부여하는 것이 아니라 임대시간(IP Lease Time)동안 빌려주는 것이기 때문에 항상 같은 IP가 아니라 그때 그때 동적으로 IP가 변경 될 수도 있다.

 

========================================================================

 

DHCP : 통신 규약 RFC1541에 규정되어있음

     BOOTP의 확장형

     UDP 67,68 포트

 

 

DHCP헤더 구조

전체 길이 :  최대 576Byte (IP 헤더 20byte + UDP 헤더 8byte + DHCP메시지 548byte)

 

Operation Code (1Byte) : 메세지 유형을 구분하는 코드

- 요청 : 1 (Client --> Server)

- 응답 : 2 (Server --> Client)

 

Hardware Type (1Byte) : 물리적 네트워크 유형을 나타냄.

 

Hardware Length (1Byte) : 하드웨어 주소의 길이

- Ethernet은 6

Hop count (1Byte) : 서버와 클라이언트가 다른 망에 있을 때, 중계 에이전트(Relay Agent)가 패킷 중계

- Request 클라이언트가 0을 세팅하여 발송, 경우 중계 수 마다 증가

 

Transaction ID (4Byte) : 클라이언트가 선택하는 랜덤한 32bit 수

- 요청 및 응답 메세지를 연결하는데 사용

 

Number Of Seconds (2Byte) : 임대 획득 또는 갱신 이후 경과한 시간(초)

 

flags (2Byte) :요청 클라이언트가 서버 응답을 유니캐스트인지 브로드캐스트인지 구분시켜 응답 희망

- 16Bit 중 앞 1bit

  Unicast : 0

  Broadcast : 1

나머지 15비트는 모두 0으로 세팅

 

Client IP Address (4Byte) : 클라이언트의 IP 주소

최초 요청시에는 0.0.0.0 ( IP를 할당 받기 전이므로)

 

Your IP Address (4Byte) : 클라이언트에 할당되는 IP

응답메세지에 포함됨

 

Server IP Address (4Byte) : Bootstap에서 사용하기 위한 서버의 IP주소

서버에서는 DHCPOFFER, DHCPACK로 자신의 IP주소를 돌려주게 됨

 

Gateway IP Address (4Byte) : Defualt Gateway의 IP 주소 또는 DHCP Relay Agent의 IP 주소

 

Client H/W Address (16Byte) : 요청한 클라이언트의 MAC 주소

 

Server Name String (64Byte) : 서버 호스트 이름

Null 문자열로 끝난다.

 

File : Boot File Name (128Byte) : 부트 파일 경로 및 파일명

역시  Null 문자열로 끝난다.

 

Options (가변 Byte) : 추가적 정보

DHCP 메세지는 BOOTP 메세지와 동일하면서 확장한 형태인데,

원래 BOOTP에 없었던 필드들은 모두 옵션으로 전달된다.

 

========================================================================

 

DHCP의 동작 원

 

DHCP 프로토콜은 D O R A라는 4가지 과정을 통해 클라이언트 PC에 IP를 할당한다.

D : Discover (Client가 DHCP서버를 찾는다.)

O : Offer (DHCP서버가 Client에게 자신이 DHCP서버라고 알린다.)

R : Request (Client는 DHCP서버에게 자신이 필요한 정보를 요청한다. IP, Subnetmask, Default Gateway 등)

A : Ack (DHCP 서버는 Client에게 요청한 정보를 제공한다.)

 

 

환경 : Client1이 DHCP서버에게 아이피를 동적으로 할당 받으려 한다.

 

-DISCOVER

 

 

Client1은 Broadcasting으로 DHCP Discover 패킷을 보내 DHCP 서버를 찾는다.

 

 

위 사진은 Wireshark 툴로 캡쳐한 DHCP Discover 패킷의 구조이다.

DHCP는 Bootp을 기본으로 하기 때문에 DHCP로 잡히지 않고 Bootp로 잡힌다.

 

2계층의 Dst를 보면 Boradcast로 되어있는것을 알 수 있다.

현재 Client는 누가 DHCP서버인지 모르기 때문에 Broadcast로 DHCP 서버를 탐색 하는 것이다.

 

Bootp Protocol 쪽을 보면

Message type : Request (클라이언트가 서버에게 요청하는 패킷)

Client IP Address : 0.0.0.0 (아직 할당받은 IP가 없음)

Your IP Address도 현재는 특정 아이피를 요청하는 Request 패킷이 아니라 Discover 패킷이기 때문에 0.0.0.0이다

 

========================================================================

 

-OFFER

 

 

위 사진은 DHCP Discover 패킷을 받은 DHCP 서버가 클라이언트에게 나 여기있다고 보내는 OFFER 패킷이다.

 

여기서 중요한부분은 Your IP Address이다.

OFFER에서는 DHCP서버가 "저 여기있어요!" 라고 답변을 하는 패킷이라고 했는데, Client가 아직 요청하지도 않은 IP를 주고있다.

그 이유는 다음과 같다.

본 필자는 컴퓨터를 DHCP를 통해서 IP를 할당받아서 사용하고 있는데, 패킷을 캡쳐하기 위해 잠시 Static으로 바꿨다가 DHCP로 다시 바꾸었다.

사실 Client는 DHCP를 통해 할당받았던 IP정보를 가지고 있고, 그를 토대로 한 IP주소를 Discover에서 보낸적이 있다.

Discover 패킷의 Option(50)에 자신이 할당받았었던 IP의 주소를 입력해두었다.

다른 특정한 이유가 없다면 그 IP를 할당할 것이다.

만약 DHCP에서 IP를 받은적이 없는 PC에서 DHCP할당을 했다면 Your IP Address가 0.0.0.0일것이다.

 

========================================================================

 

-REQUEST

 

 

Request 패킷에서는 IP를 할당하는데 필요한 정보들을 DHCP 서버에 요청한다.

Discover와 마찬가지로 Broadcast로 패킷을 보낸다.

 

 

 

Request 패킷의 Option (55)를 보면 요청하는 내용들이 나와있다.

Option (50)에 요청받았던 IP Address가 있기때문에 따로 IP는 요청하지 않는다.

 

========================================================================

 

-ACK

 

ACK 패킷은 DHCP 서버가 Request를 받고, 요청받았던 정보들을 제공하는 패킷이다.

DHCP서버에 요청받았던 정보들중에 자신이 가지고 있는 정보들만 제공한다.

만약 현재 DHCP서버에 Router에 대한 정보가 없다면 Router 정보는 제공하지 않는다.

ACK 패킷에서는 Option 부분에 정보들을 담아서 Client에게 보낸다.

그럼 이제 Client는 제공받은 정보들을 통해 IP를 할당하고 네트워킹이 가능하게 된다.

 

========================================================================

 

-DHCP Renewal(갱신)

 

IP를 임대하는과정에서, IP Address Lease Time이 정해진다.

그 임대시간이 동안 할당받은 IP를 사용 가능하다는 얘기이다.

그럼 PC를 사용하는동안 임대시간이 만료가된다면 더이상 인터넷을 사용할 수 없다는 얘기인가??

 

도서관에서 책을 빌린다고 생각해보자. 책 한권을 2주간 빌려서 그 책을 읽고 있다.

그런데 아직 책을 더 봐야하는데 임대 기간이 거의다 끝나간다. 책을 다시 반납하고, 다시 빌려야하는데 번거롭고 책을 봐야하는 시간의 낭비이다.

이를 해결하기 위해 많은 도서관에서는 '기간 연장'이라는 기능을 제공한다.

책을 빌려서 보다가 조금 더 읽고 싶다면 '기간 연장'을 통해 임대기간을 더 늘리는 것이다. 

이로써 도서관에 다시 가서 반납하고 다시 빌리는 수고와 시간을 아낄 수 있다.

 

이와 비슷하게 DHCP 할당 방식에서는 DHCP Renewal(갱신) 이라는 것이 존재한다.

IP를 할당받아 사용하다가 어느정도 시간이되면 갱신을 한다는 의미이다. 갱신이 성공적으로 이루어진다면,

IP를 다시 반환 할 일 없이 다시 사용이 가능하다.

 

 

IP를 할당받고 임대시간의 50%가 지나면 DHCP 서버에게 DHCP Request 패킷을 보내서 갱신을 시도한다.

DHCP에게서 Ack 신호가 와서 성공적으로 진행이 된다면 임대시간이 초기화되서 다시 0%가 되어 처음처럼 사용할 수 있다.

이때에는 Dhcp에게 1:1 Unicast로 통신을 한다.

 

만약 Ack신호가 오지 않는다면 (클라이언트 전원이 꺼져있거나, DHCP서버가 없어졌거나 등등의 이유)

임대시간의 87.5%의 시간이 다시 지났을 때 다시 시도하게 된다.

이때에도 실패한다면 Client는 DHCP서버가 사라졌다고 판단하고, 임대 기간이 끝나는 시점에 주소를 반환하고

Descover부터 다시 시도하게 된다.

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

참고한 사이트

 

-정보통신기술용어해설

-나무위키

 

'Network.' 카테고리의 다른 글

TCP와 UDP  (1) 2016.08.28

-본 포스팅은 Cisco Packet Tracer 6.3버전을 이용하여 실습하였습니다.

 

 

패킷트레이서를 실행시키면 위와 같은 화면이 나온다.

기본적인 프로그램 사용 방법은 아실 것이라 생각하고 포스팅 할 것이다.

 

빨간색으로 표시된 부분에서 자신이 쓸 장비를 드래그해서 사용할 수 있다.

 

기초 셋팅 화면이다. PC1과 PC0에 아이피를 할당하고 스위치와 연결된 Router0의 Interface에 IP를 설정할 것이다.

PC1과 PC0은 인터넷으로 나가기위해 Router0을 통해야 한다. 그래서 외부와 연결할 때 기본적으로 나가는 통로(Gateway)를 Router0으로 설정할 것이다.

장비간의 케이블은 일단은 Automatically Choose로 사용하여 자동으로 적당한 선을 사용하도록 할 것이다.

 

네트워크는 192.168.0.0/24로 C클래스 네트워크를 사용 할 것이고

Gateway(Router 0)의 아이피는 192.168.0.1로 할당할것이고,

PC1과 PC2는 각각 192.168.0.10, 192,168.0.20 로 할당할 것이다.

 

위 화면은 PC1을 클릭했을 때 나오는 화면이다.

현재 탭은 Physical 탭인데,

왼쪽에 있는 것들은 PC에 장착할수 있는 여러가지 모듈이다.

드래그 앤 드랍으로 가운데있는 PC에 장착할 수 있다. 만약 장착을 하려면 맞는 위치에 장착해야한다.

현재는 필요없기 때문에 무엇이 있는지만 보고 넘어가도록하자.

 

Config 탭에서는 현재 장치에 대한 대략적인 설정을 하는 부분이다.

물론 이 탭에서도 IP할당을 할 수 있지만, 우리는 Desktop 탭에서 할당을 할 것이다.

 

 

이 탭은 Desktop 탭이다.

IP설정, 터미널(원격접속), CMD창, Web 브라우저, 방화벽 등 실제 PC에서 사용할 수 있는 여러가지 구성들이 있다.

우리가 할 것은 IP 설정이므로, IP Configuration을 들어가도록 하자.

 

 

IP Configuration에 들어오면, 일반 PC와 비슷하게 IP할당하는 화면이 나온다.

IP를 할당하는데는 두가지 방법이 있는데, 하나는 DHCP이고 하나는 Static이다.

 

- DHCP

간단하게 설명하면 네트워크 상에 있는 DHCP서버에 IP 임대를 요청하고, DHCP서버가 IP를 임대해 주는 방식이다.

DHCP는 남아있는 IP를 할당해 주는 것이기 때문에 상황에 따라 할당받는 IP가 달라진다.

 

- Static

Static은 내가 원하는 IP를 할당하는 방법이다.

현재 네트워크에서 사용되고 있지 않은 IP중에서, 할당하고 싶은 IP를 입력하고, 그 네트워크의 Subnet Mask, 그리고 Default Gateway와 DNS Server를 입력해주면 된다.

 

현재 초기 셋팅상황에서는 DHCP서버가 없기 때문에(라우터가 그 기능을 할 수 있다.) DHCP로 설정해도 IP를 할당 받을 수 없다.

그리고 DNS 서버도 현재는 없기 때문에, 입력하지 않아도 된다.

입력을 하지 않으면 알아서 DNS서버를 할당해준다.

 

위와같이 PC1의 IP를 설정하고, PC2도 똑같은 방법으로 IP를 할당해 준다.

 

IP를 할당해 준 후에, Desktop 탭에 있는 Command Prompt(CMD)에 들어가서 IP할당 현황을 확인한다. (명령어 : ipconfig /all)

정상적으로 IP를 할당 받은 것을 알 수 있다.

PC에 IP를 설정할 때 우리는 Default Gateway를 192.168.0.1로 설정해 주었다.

현재의 Gateway는 Router0번이기 때문에 Router0번에 IP를 설정해주어야한다.

 

Router0번을 클릭하고, CLI탭을 클릭한다.

이 화면은 Router장비를 관리 할 수 있는 화면이다.

 

(원래는 배경이 하얗고 글씨가 검은색인데, 보기 힘들까봐 바꿨습니다.

바꾸는 방법은 Packet Tracer의 Option - Preferense - Font - Color 에서 바꿀수 있습니다.)

 

처음에 설정 대화를 시작하겠냐고 물어보는데 Yes를 누르면 라우터 기본 설정을 대화형으로 하나하나 물어보면서 설정해 주게 된다.

우리는 라우터 명령어를 통해 IP를 설정해 줄 것이기 때문에 no를 입력해 준다.

 

no를 입력하게 되면, 명령어를 칠 수 있게 되는데, 기본적으로 User모드가 된다.

Router> : 유저모드

IP를 설정해주기 위해서는 Privilieged(특권을 가진) 모드로 넘어가야한다.

넘어가는 명령어는 Enable이다.

만약 명령어를 모르겠다면 ?를 누르면 사용할 수 있는 명령어를 볼 수 있다.

아무나 특권을 가지면 안되기 때문에 Privilieged모드에 암호를 걸어놔야하지만 현재는 암호가 없기 때문에 바로 변경이 가능하다.

 

입력모드가

Router#

로 변하게 된다.

이 모드에서는 여러가지 설정을 확인할 수 있다.

여기에서 우리는 설정을 바꿔야하기 때문에 Configuration 모드로 넘어가야한다.

 

Configure terminal을 입력해 터미널을 설정하는 모드로 넘어가준다.

Configue 명령어를 입력하면 어떠한 것을 설정할 모드로 넘어갈것인지 입력을 받는다.(Default : terminal)

우리는 terminal을 설정할 것이므로, t를 입력한다.

 

이제 설정할 수 있는 모드로 들어왔으니 IP를 설정할 수 있다. 

그전에, 라우터에는 일반적으로 2개의 Interface가 있다. 한쪽이 스위치에 연결되어 있다면 다른 한쪽은 인터넷으로 연결될 Interface이다.

(물론 모듈 추가를 통해 Interface를 더 추가할 수 있다.)

어느 Interface에 IP를 할당해줄 것인지를 확인해야한다.

 

라우터와 스위치가 연결된 선에 마우스를 올려놓게 되면 어떠한 Interface에 연결이 되었는지 확인할 수 있다.

라우터에는 Fa(Fast Ethernet)0/1번 Interface에 입력이 된 것을 볼 수 있다.

 

 

인터페이스를 확인하고,

Router(config)#interface fastEthernet 0/0

를 입력하여 Fa0/0 인터페이스 설정화면에 들어간다.

이 모드에서 IP 설정이 가능하다.

Router(config-if)#ip address 192.168.0.1 255.255.255.0

을 입력하면 해당 Interface에 192.168.0.1번 아이피를 할당하게 된다.

그리고 기본적으로 라우터는 Interface가 shutdown 설정으로 사용을 못하게 되어있는데 그것을 해제한다.

Router(config-if)#no shutdown

명령어를 입력하면 인터페이스 상태가 up으로 바뀐것을 확인 할 수 있다.

 

Enable모드로 빠져나와서(exit 또는 end 명령어)

 

Router#show ip int brief

(Interface들의 IP정보를 간략적으로 보여준다.)

를 입력하면 위와 같은 화면으로 fa0/0포트에 192.168.0.1 IP가 할당된 것을 볼 수 있다.

 

 

PC로 돌아와서 192.168.0.1(gateway)에 ping을 보내보면

이상없이 넘어가는 것을 볼 수 있다.

이로써 PC들과 Gateway에 IP할당을 완료하였다.

 

그림과 글로 보면 어렵고 헷갈릴 수도 있지만, 직접 여러번 해보면 금방 익숙해져서 어렵지 않다는 것을 알게 될 것이다.

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

'Network. > Cisco Packet Tracer' 카테고리의 다른 글

[Packet Tracer] 설치 및 실행  (1) 2016.08.24

- 패킷트레이서란 ?

패킷트레이서란 네트워킹 하드웨어, 보안 서비스를 제공 및 판매하는 CISCO에서 만든 네트워크 시뮬레이션 프로그램이다.

GUI환경으로 되어있어 네트워크 관련 공부 및 실습 할 때 좋은 프로그램이다.

여러가지 시스코 장비들과 PC들을 연결하며 스위치, 라우터 등 네트워크 장비에 대한 명령어들을 직접 입력해보며 네트워크 설정을 할 수 있다.

 

-패킷트레이서 다운로드

CISCO 공식 페이지에서 계정이 있는사람에 한에서 다운받을 수 있다.(아마 Academy 버전)

 

-패킷트레이서 설치

 

필자는 Cisco Packet Tracer 6.3버전을 사용하였다.

 

1. 설치프로그램을 시작하면 위와 같은 화면이 나온다. Next를 눌러준다.

 

2. 라이센스를 동의하는 화면이다. I accept the agreement에 체크하고 Next를 눌러준다.

 

3. 설치 경로를 설정하는 화면이다. 자신이 설치를 원하는 곳을 선택하고 Next를 눌러준다.

 

4. 시작메뉴에 만들 폴더 이름을 정하는 화면이다. 폴더 이름을 설정하고 Next를 눌러준다.

 

5. 바탕화면 및 퀵 런치 아이콘을 만들것인가 설정하는 화면이다. 설정하고 Next를 눌러준다.

 

6. 설치하기 전 지금까지 설정한 항목들을 확인하는 화면이다. 별 다른 이상이 없다면 Install을 누르고 설치를 시작한다.

 

7. 설치하는 화면이다. 기다리면 설치가 완료된다.

 

패킷트레이서의 아이콘이다. 이 아이콘으로 패킷트레이서를 실행시킨다.

 

패킷트레이서의 실행화면이다.

 

앞으로 패킷트레이서를 이용한 간단한 네트워크 구축, PC IP할당, 라우팅 등의 포스팅을 할 계획이다.

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

본 게시물은 공부한 내용을 바탕으로 작성한 글로써, 점차 수정 및 추가를 통해 내용을 발전시킬 계획입니다.

따라서 오타 및 내용상의 오류, 추가할 내용 등이 있을 경우 주저 없이 알려주시면 감사하겠습니다.

궁금한점을 물어보시면 제가 아는 선에서 최대한으로 알려드리겠습니다.

 

 

+ Recent posts