BOOTP(Bootstrap Protocol)

Similar documents
슬라이드 1

PowerPoint 프레젠테이션

Microsoft Word doc

TCP.IP.ppt

Microsoft PowerPoint - 12_name&address.ppt

bn2019_2

0. 들어가기 전

SMB_ICMP_UDP(huichang).PDF

0. 들어가기 전

PowerPoint 프레젠테이션

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

Sena Device Server Serial/IP TM Version

untitled

Chapter11OSPF

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

망고100 보드로 놀아보자-4

1217 WebTrafMon II

Network seminar.key

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

hd1300_k_v1r2_Final_.PDF

Solaris Express Developer Edition

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

슬라이드 제목 없음

PowerPoint 프레젠테이션

Microsoft PowerPoint - 03-Development-Environment-2.ppt

제20회_해킹방지워크샵_(이재석)

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

untitled

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

Subnet Address Internet Network G Network Network class B networ

Mango220 Android How to compile and Transfer image to Target

(SW3704) Gingerbread Source Build & Working Guide

APOGEE Insight_KR_Base_3P11

SRC PLUS 제어기 MANUAL


LXR 설치 및 사용법.doc

UDP Flooding Attack 공격과 방어

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

untitled

PowerPoint 프레젠테이션

untitled

Remote UI Guide

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

ARMBOOT 1

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

Microsoft PowerPoint - 02-Development-Environment-1.ppt

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

일반적인 네트워크의 구성은 다음과 같다

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

PowerPoint 프레젠테이션

휠세미나3 ver0.4


Assign an IP Address and Access the Video Stream - Installation Guide

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

단계

PowerPoint 프레젠테이션

강의10

PowerPoint 프레젠테이션

<343520B1E8C7FCC1F82DC1A4BAB820BAB8C8A3B8A620C0A7C7D120B3D7C6AEBFF6C5A920BDC5B7DABCBA20BAD0BCAEBFA120B0FCC7D120BFACB1B82E687770>

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR


PowerPoint 프레젠테이션

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

chapter4

Microsoft PowerPoint - Cross Development Environment [호환 모드]

6주차.key

PRO1_04E [읽기 전용]

Sena Technologies, Inc. HelloDevice Super 1.1.0

The Pocket Guide to TCP/IP Sockets: C Version

놀이동산미아찾기시스템

H3050(aap)

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

untitled

untitled

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

MAX+plus II Getting Started - 무작정따라하기

歯최덕재.PDF

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft PowerPoint _TCP_IP

歯김병철.PDF

Backup Exec

목차 개발환경 JTAG Bootp TFTP NFS 1

歯Cablexpert제안서.PDF

V5000_1.xx_CG_KO_ doc

슬라이드 1

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

3ÆÄÆ®-11

thesis

Microsoft PowerPoint - 04-UDP Programming.ppt

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Transcription:

& compile Real-Time Packet Analysis Lab. Various Protocol Team. 작성자 : 조학봉 작성일 : 2002/1/17 목차 1 BOOTP(Bootstrap Protocol)... 2 1.1 Packet format...2 1.2 Operation...5 1.3 Relay Agent...5 2 DHCP(Dynamic Host Configuration Protocol)... 5 2.1 Leasing...6 2.2 DHCP Operation...7 2.3 Packet Format...8 3 udhcp strongarm board에서실행하기... 10

1 BOOTP(Bootstrap Protocol) BOOTP는 disk가없거나, 처음부팅되는컴퓨터를위해위에서언급한네가지정보를제공하기위해제안된 / protocol이다. 이미 RARP가 hardware address를통해 IP address를제공할수있다는것은알고있으나, 나머지정보에대해서는알수가없어유용하지는않다. 이러한이유로 RARP는거의사용되지않는다. 1.1 Packet format Operation code 이 8bit는 BOOTP packet의 type을나타낸다. Request:1, Reply:2 Hardware type 이필드는 physical network의 type을나타낸다. Ethernet:1 Hardware length Physical address의길이를나타낸다. Ethernet:6 Hop count Packet이지날수있는최대의 hop을결정한다. Transaction ID 이필드는 에의해 request packet에채워지고, reply packet에서자기가보낸 request에대한 reply인지를구별하는데사용된다. Server는당연히이필드에같은값을반환한다. Number of seconds 이필드는 가부팅시작한후에경과된시간을나타낸다. Various Protocol Team ( 조학봉 ) - 2-2002/1/17

Client IP address Client의 IP address가채워진다. Client는이정보가없을시모두 0로채운다. Your IP address 이필드는 request에의해 에서 reply에 IP address를채우는데에사용된다. Server IP address 이필드는 에의해 reply packet에포함되는 Server의 IP address이다. Gateway IP address Server에의해채워지는필드로 router의 IP address를나타낸다. Client hardware address 이 16bytes의필드는 의 physical field가채워진다. 물론서버는다른프레임에서이정보를얻을수있지만, 이렇게함으로써이정보에대한신뢰성을확보할수있다. Server name Optional 64bytes의필드로 에의해 reply packet에실린다. 이곳에는 의 domain name을포함한다. Various Protocol Team ( 조학봉 ) - 3-2002/1/17

Boot filename 이서버에의해 reply된 packet의 128byte는 boot file의 full pathname을포함한다. 이정보를이용해 는다른부팅정보를얻을수있다. (for TFTP) Options 이 64bytes의필드는두가지목적으로사용된다. 즉, 부가적은정보를실을수있으며, 특정 vendor의정보도실어나를수있다. 이필드는오직 reply에의해서만사용된다. Server는 magic cookie라는 99.130.83.99라는 IP address의포맷의숫자를사용한다. Client가 message reading을끝마치면, 이정보를찾고만약있다면다음 60bytes는 option임을나타낸다. Option은 3개의필드로구성된다. 1byte tag, 1byte length, variable-length value. Length 필드는 value field의길이를나타내며, 4byte를곱하면길이가나온다. Tag(0) Padding Tag Length Value(variable length Other operations Tag(255) End of list <Option format> Description Tag Length Value Padding 0 Subnet mask 1 4 Subnet mask Time offset 2 4 Time of the day Default routers 3 Variable IP address Time s 4 Variable IP address DNS s 6 Variable IP address Print s 9 Variable IP address Host name 12 Variable DNS name Boot file size 13 2 Integer Vendor specific 128-254 Variable Specific information End of list 255 Various Protocol Team ( 조학봉 ) - 4-2002/1/17

1.2 Operation 1) BOOTP 는 UDP port number 67을열어놓고 를기다린다. 2) Client는 BOOTP request message를 UDP port 68을통해 UDP datagram에 encapsulate해보낸다. Client는자신의 source IP address는모두 0로, destination IP address는모두 1(broadcast) 로채워보낸다. 3) Server는 UDP destination port 68로 broadcast 또는 unicast message를 에게보낸다. 하지만 Unicast로보낼때에는상대방의다른정보를아직모르는상태이므로 ARP를이용하지않는다. 단지들어온 packet의 physical address를그대로이용할뿐이다. 1.3 Relay Agent 각각의 LAN에대해여러 BOOTP 를두는대신여러망을관리하는상위의한 remote BOOTP 를둬야할때, 는 broadcast를하기때문에한 router를지날수없다. 그래서이문제를해결하기위해 relay agent라는 router를이용한다. 즉, relay agent는 의 request에대해대신 remote Server에게서 reply를받고 에게보내준다. 2 DHCP(Dynamic Host Configuration Protocol) BOOTP는동적설정 (dynamic configuration) protocol이아니다. 단지 request에대해미리설정되어있는 table에서 physical address에해당하는 IP address를알려줄뿐이다. 즉, 미리이러한정보를서버가갖고있어야하는데만약 가다른 physical network에연결되어있다면, 서버관리자는이사실을미리알고 table에그컴퓨터의정보를미리입력해야할것이다. 그래서 BOOTP를 DHCP에대응해 static configuration protocol이라부르기도한다. 하지만 DHCP는 BOOTP를개선해사용한다는점을유념해야한다. 결국 Packet의구조도 BOOTP를그대로사용하며, BOOTP 도 DHCP 로부터 IP를얻을수있다. DHCP 는두개의 database를가지고있다. 첫번째 database는 IP와 Physical address를묶어둔것이며, BOOTP 와같은 type이다. 두번째 database는유효한 ( 사용하지않는 ) IP address의집합이다. 이부분이 dynamic을만드는부분으로 가임시 IP address를요청할때, 협상기간동안임시로 assign 하는 IP가있다. 만약 가요청을하면, 서버는먼저 static database를살피고, 있다면영구 IP 를보내주게된다. 반면에 static database에없다면위의유효 IP pool에서하나를 Various Protocol Team ( 조학봉 ) - 5-2002/1/17

골라 에게보내주게되며, 그 IP 는 dynamic database 에 entry 를추가한다. 2.1 Leasing Pool로부터 assign된 address는임시적이다. DHCP 는특정기간동안임대를주고, 그기간이끝나면, 는 IP 사용을멈추거나갱신을요청해야한다. Server는갱신에대한동의권을갖고있으며, 동의를안한다면 는즉시그 address의사용을멈춰야한다. Various Protocol Team ( 조학봉 ) - 6-2002/1/17

2.2 DHCP Operation DHCPDISCOVER passive open UDP 68 UDP 67 DHCPOFFER DHCPREQUEST DHCPACK DHCPREQUEST Before 50 percent of lease time expires DHCPREQUEST If the does not respond, the request is repeated. DHCPNACK If the responds with an ACK, the must start all over again. DHCPACK If the responds with an ACK, the has a new lease. DHCPRELEASE 1) 는 destination port 67로 DHCPDISCOVER message를 broadcast한다. 2) Server들은이 message에대해 DHCPOFFER로서응답을한다. 이메시지에서 IP와 lease duration을제공한다. 기본값은 1시간이다. DHCPOFFER packet을보낸 들은제공한 IP를다른 가사용못하도록잠시 lock을걸어둔다. 만약 가 DHCPOFFER message를못받았다면 2초간격으로재시도를한다. 그리고이런시도도실패하면 는 5분간기다린 Various Protocol Team ( 조학봉 ) - 7-2002/1/17

후재시도를한다. 3) Client는 로부터받은여러 packet에서하나를골라선택된 에 DHCPREQUEST message를보낸다. 4) Server는 DHCPACK message로응답하고 의 IP와 physical address를 mapping시키고 dynamic database에추가한다. 이시점부터 는 lease가끝날때까지이 IP address를사용할수있다. 5) Lease period가 50% 가지날때, 는다른 DHCPREQUEST를보내고갱신을요구한다. 6) 만약 가 DHCPACK로응답하면, 갱신했으므로 lease timer를초기화한다. 그러나만약 DHCPNACK로응답하면, 는즉시 IP 사용을중지하고다른 을찾는다. 7) 만약 가응답을안한다면, lease time이 87.5% 에다다를때다시한번 DHCPREQUEST를보낸다. 만약 lease time이다할때까지도응답이없으면처음 (step 1) 부터다시시작한다. 물론이럴경우 는 DHCPRELEASE를보내고처음과정으로돌아간다. 2.3 Packet Format DHCP packet은 BOOTP packet과거의완벽히호환되며, 단지 BOOTP의 unused 부분앞 (first bit) 에 Flag 1bit만붙는다. 하지만 DHCP만의기능을위해 option field 에부가적인 option이추가됐다. Flag 이필드는 가 로부터 reply를 unicast 또는 broadcast로받 을지선택하는데에사용된다. 만약 unicast로 reply를받는다면, destination field에 의 IP address를채워보내고, 자기가선택한 IP외의 packet은폐기한다. 그러나만약 broadcast라면모든 host가받 고, 그 packet에대한처리를하는만큼 network load가생긴다. Options DHCP option은부가되는 tag field에 53의값이채워져있다. 이 field 는최대 312bytes이다. Tag Length Value 53 1 1 DHCPDISCOVER 2 DHCPOFFER 3 DHCPREQUEST 4 DHCPDECLINE 5 DHCPACK Various Protocol Team ( 조학봉 ) - 8-2002/1/17

6 DHCPNACK 7 DHCPRELEASE (revision 2002-1-10 Hakbong : 문서작성시작 ) Various Protocol Team ( 조학봉 ) - 9-2002/1/17

3 udhcp strongarm board 에서실행하기 1. http://udhcp.busybox.net/ 에서소스 (udhcp-0.9.6.tar.gz) 구해오기 2. 먼저 ramdisk를압축을풀어 /mnt/boot에마운트시킨다. $mkdir /mnt/boot $gzip -d r.gz $mount -o loop r /mnt/boot 3. 위소스압축을푼다. $tar -zxvf udhcp-0.9.6.tar.gz 4. 풀린위치로간다. $cd udhcp-0.9.6 5. Makefile을수정한다. $vi Makefile 아래부분을수정한다. - prefix=/usr ------> prefix=/mnt/boot/usr - SBINDIR=/sbin ----> SBINDIR=/mnt/boot/sbin - #CROSS_COMPILE=arm-uclibc- -> CROSS_COMPILE=arm-tlinux- ( 크로스컴파일주석을풀고설정된것으로바꿈 ) - install: all - - $(INSTALL) $(STRIP) $(DAEMONS) $(USRSBINDIR) - $(INSTALL) $(STRIP) $(COMMANDS) $(USRBINDIR) - ifdef COMBINED_BINARY - ln -sf $(USRSBINDIR)/$(DAEMONS) $(SBINDIR)/$(BOOT_PROGRAMS) - else - $(INSTALL) $(STRIP) $(BOOT_PROGRAMS) $(SBINDIR) 위에서 $(INSTALL) $(STRIP) 를 cp -f로바꾼다. 크로스컴파일러에는 install이라는명령이없다. 그러므로단지컴파일된화일을 copy하는것 Various Protocol Team ( 조학봉 ) - 10-2002/1/17

만으로도충분하다. 6. file type을검사한다. $file udhcpc - udhcpc: ELF 32-bit LSB executable, Advanced RISC Machines ARM, - version 1, dynamically linked (uses shared libs), not stripped 위와같은결과가나오면일단성공이다. 7. 위에서마운트한램디스크이미지를언마운트시킨다. $umount /mnt/boot 8. 램디스크를압축한다. $gzip r 9. minicom을실행하고보드전원을인가한다. $minicom 전원삽입 ~~ 아무키나누른다. 그러면부트로더상태로들어간다. - Welcome. - tbloader-1.0.0-beta3-p1 - Copyright (C) 2001 T&B Tronics. - tbloader comes with ABSOLUTELY NO WARRANTY; Read the GNU - This is free software, and you are welcome to redistribute it - under certain conditions; read the GNU GPL for details. 터 - Autoboot in progress, press any key to stop.. - Autoboot aborted - Type "help" to get a list of commands - tbloader> tbloader> tftp zimage kernel 위명령을실행하면먼저 IP를할당받기위해 bootp를실행해서버로부정보를받아오고, 설정된서버의 tftp 디렉터리에서해당화일 (zimage) 를받아온다. Various Protocol Team ( 조학봉 ) - 11-2002/1/17

- No IP. Bootp start... - Our Ethernet address is 00D0 CAF1 2621. - Sending bootp packet... -. - Bootp Packet received. - Host () Ethernet : 0050 BF2F 32B0 - Host () IP : 210.107.198.177 - Client (target) Ethernet : 00D0 CAF1 2621 - Client (target) IP : 210.107.198.173 - - TFTP Start... - Host () IP : 210.107.198.177 - Client (target) IP : 210.107.198.173 - Loading Filename : zimage - Save Address : 0xC0008000 - - Loading start... - 0x0008A3B0 (566192) bytes received. - tftp done. tbloader> tftp r.gz ramdisk 실행하면위와비슷한메시지가출력된다. tbloader> boot 실행하면방금램에올린이미지가실행이된다. 마지막에아래와같은문장을확인한다. - Starting system logger: syslogd - Bringing up interface lo - Starting portmapper: portmap - Starting INET services: inetd - udhcp (v0.9.6) started - Sending discover... - Sending select for 210.107.198.190... - Lease of 210.107.198.190 obtained, lease time 600 Various Protocol Team ( 조학봉 ) - 12-2002/1/17

- deleting routers - SIOCDELRT: No such process <---- route del default ~ 문제 - adding dns 202.30.0.11 $ 10. 이과정을거치면일단동작여부는확인할수있다. 부가적인설명 (1) 바로위같은문장은단지 udhcpc를실행하면얻어지는것이고부팅시에실행하길원한다면, /etc/rc.d/rc에위명령어를넣어두면된다. (2) dhcpc는 daemon으로돌고있고, 각패킷처리나설정들은 /usr/share/udhcpc의스크립트를통해이뤄진다. 예 ) dhcp request에대한 ack를받으면 default.bound 스크립트를실행해 ifconfig, route 명령들을이용 IP, route 등을설정한다. (3) 이외의 bootp 설정및커널컴파일등은다른곳에서다루겠다. (4) 만약이보드가할당된 IP를받고 daemon이죽었다면, 계속이 IP를사용할수있는가하는문제가생겼다. RFC2131(2.2 page12) 은서버는아이피할당전에 ICMP echo request(ping) 를, 클라이언트는 ARP 를먼저수행해위와같은걱정은없다고한다. (5) 현재는 dhcp 서버도함께컴파일하고있다. tiny version을위해이부분을제거해야할것이다. 이작업을위해서는소스분석이요구된다. 동작테스트 (1) lease time 50% 시점의 DHCPREQUEST 확인 (2) lease 제공서버 daemon 제거시, 87.5% 시점의 DHCPREQUEST 재전송확인 - RFC2131(4.4.5 page40) (3) 위상태에서 lease time expired : 초기상태에서처음 DHCPDISCOVER부터재시작확인. - RFC2131(4.4 page35) : state transition diagram for DHCP s Various Protocol Team ( 조학봉 ) - 13-2002/1/17

state-transition diagram state-transition for DHCP diagram for DHCP INIT/REBOOT INIT/REBOOT Send DHCPREQUEST(C) REBOOTING REBOOTING DHCPNAK(S) / Restart DHCPNAK(S) / Discard offer INIT INIT Send DHCPDISCOVER(C) SELECTING SELECTING receive DHCPOFFER(S) DHCPNAK(S)/ Halt network DHCPACK(S) / Send DHCPDECLINE(C) DHCPACK/ Record lease, set timers REQUESTING REQUESTING select DHCPOFFER(C) DHCPNAK, Lease expired / Halt network DHCPOFFER / Discard send DHCPREQUEST(C) REBINDING REBINDING DHCPOFFER, DHCPACK, DHCPNAK/ Discard DHCPACK(S) / Record lease, set Timers T1, T2 BOUND BOUND T1 expires/ Send DHCPREQUEST(S) to leasing DHCPACK(S) / Record lease, set Timers T1, T2 DHCPACK(S) / Record lease, set timers T1, T2 T2 expires/ Broadcast DHCPREQUEST (C) RENEWING RENEWING (revision 2002-1-14 Hakbong : 실제동작테스트추가 ) Various Protocol Team ( 조학봉 ) - 14-2002/1/17