boot protocol (bootp)

46
Boot Protocol (BOOTP) •RFC 951. –Updated by RFCs 1395, 1497, 1532, and 1542 •Originated many years ago as a method of booting diskless workstations on a LAN. •Works as microcode in a PROM. •Workstation boots a simple operating system. –Just enough to send out Boot messages to a BOOTP server •Usually operates in two stages: –First, it gets its IP address –Next, it uses the TFTP protocol to boot its full operating image

Upload: drago

Post on 19-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

Boot Protocol (BOOTP). RFC 951. Updated by RFCs 1395, 1497, 1532, and 1542 Originated many years ago as a method of booting diskless workstations on a LAN. Works as microcode in a PROM. Workstation boots a simple operating system. Just enough to send out Boot messages to a BOOTP server - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Boot Protocol (BOOTP)

Boot Protocol (BOOTP)

•RFC 951.–Updated by RFCs 1395, 1497, 1532, and 1542

•Originated many years ago as a method of booting diskless workstations on a LAN.

•Works as microcode in a PROM.•Workstation boots a simple operating system.

–Just enough to send out Boot messages to a BOOTP server•Usually operates in two stages:

–First, it gets its IP address–Next, it uses the TFTP protocol to boot its full operating image

Page 2: Boot Protocol (BOOTP)

• Two modes of operation: Request and Reply.• Request contains client’s hardware address and IP address if

known; it may contain a requested server. Usually contains a name of the file to use for booting this client.

• Response from the server contains answers to the request.

BOOTPBOOTPserverserver

BOOTP clientBOOTP client

BOOTP requestBOOTP request

BOOTP responseBOOTP response

BOOTP Operation

Page 3: Boot Protocol (BOOTP)

32 bits32 bits

OpcodeOpcode HtypeHtype HLENHLEN HopsHops

xid (4)xid (4)

secs (2)secs (2) flags (2)flags (2)ciaddr (4)ciaddr (4)

yiaddr (4)yiaddr (4)

siaddr (4)siaddr (4)

giaddr (4)giaddr (4)

chaddr(16)chaddr(16)

sname (64)sname (64)

file (128)file (128)

vend extensions (BOOTP) or options (DHCP)vend extensions (BOOTP) or options (DHCP)

300

byt

es30

0 b

ytes

0 31

BOOTP Field Definitions

DADA SASA TFTF CRCCRCUDP dataUDP dataIPIP UDP headerUDP header

Page 4: Boot Protocol (BOOTP)

Client Side (BOOTREQUEST)

Set destination Set destination address to address to

255.255.255.255255.255.255.255

Set OP field to 1Set OP field to 1

Set htype to Set htype to hardware type forhardware type for

interfaceinterface

Set xid to randomSet xid to randomnumbernumber

ciaddr field set ciaddr field set to client IP addressto client IP address

If wanted, set If wanted, set requested server requested server

namename

Set requested bootSet requested bootfilename or set to 0 filename or set to 0

for defaultfor default

Set vend field to Set vend field to ““magic cookiemagic cookie

number”number”

Transmit requestTransmit request

Set port numbersSet port numbersto 67 and 68to 67 and 68

If known set If known set source IP addresssource IP address

to interface addressto interface address

secs is set to thesecs is set to thenumber of secondsnumber of secondssince client bootsince client boot

Page 5: Boot Protocol (BOOTP)

If received & UDP portIf received & UDP portnumber not set to 67,number not set to 67,

discard packetdiscard packet

If server nameIf server namematches or set to 0matches or set to 0

process packetprocess packet

If server name notIf server name notlocal, then forwardlocal, then forward

If ciaddr field set to 0 If ciaddr field set to 0 and no address found,and no address found,

discard packetdiscard packet

If ciaddr found, set itIf ciaddr found, set itin yiaddrin yiaddr

If file name set and If file name set and server does not have,server does not have,

discard the packetdiscard the packet

If filename not set,If filename not set,client, skip this fieldclient, skip this field

Check and placeCheck and placeoptions accordingoptions according

to Vend fieldto Vend field

set siaddr IP addressset siaddr IP addressto server IP addressto server IP address

Set port number to Set port number to 6868

If ciaddr set, then If ciaddr set, then route back to clientroute back to client

If giaddr set, routeIf giaddr set, routeback to gateway, back to gateway, change port to 67change port to 67

Otherwise, client isOtherwise, client islocal, transmit packetlocal, transmit packet

Server Side

Page 6: Boot Protocol (BOOTP)

Chicken-or-the-Egg? Dilemma

• If the client does not yet know its IP address, how does it respond to ARP requests during a server response?

• If the client knows its IP address, this is not a problem.

• Two options:– Simply send the reply set to broadcast– The server can manually construct the ARP

entry using the fields in the received request

Page 7: Boot Protocol (BOOTP)

BOOTP Relay Agents (Or BOOTP Gateway)

• Used when requests and servers are not on the same network– Separated by a router

• Need some type of agent that can forward these requests over a router:– Router must be aware of this because routers do not

forward messages addressed in broadcast• Router receives a message and resends it as if the

router had sent it:– Places its address in the Giaddr field

• Can set the scope field to limit the forwarding of the request.

Page 8: Boot Protocol (BOOTP)

Dynamic Host Configuration Protocol (DHCP)

• DHCP builds on the BOOTP protocol.• Probably best known for its IP address leasing

capability.• Configured as:

– DHCP Client– DHCP Server– BOOTP Relay Agent– Binding

Page 9: Boot Protocol (BOOTP)

DHCP

•Provides a transport mechanism for passing configuration information to requesting hosts.

•Configuration information is based on that specified in RFCs 1112, 1122, and 1123.

•DHCP and BOOTP are interoperable.•DHCP messages are in the same format as BOOTP.•DHCP is considered to do two things:–IP address allocation–Delivery of configuration information

•Configuration information is stored in a database table on the DHCP server:–Client specifies which parameters it is looking for in the Vendor Extensions field of the request packet

Page 10: Boot Protocol (BOOTP)

IP Address Allocation

• Automatic Allocation: permanently assigns an IP address to a station.

• Dynamic Allocation: assigns an IP address to a requesting station for specified amount of time.

• Manual Allocation: preconfigure the server to give the requesting station the same IP address every time it requests it.

Page 11: Boot Protocol (BOOTP)

DHCP Messages

• DHCPDISCOVER

• DHCPOFFER

• DHCPREQUEST

• DHCPACK

• DHCPNAK

• DHCPDECLINE

• DHCPRELEASE

• DHCPINFORM

Page 12: Boot Protocol (BOOTP)

DHCP OperationDHCPDHCPServerServer

BB

DHCP ClientDHCP ClientDHCPDHCPServerServer

AA

DHCP DiscoverDHCP A Offer (IP addr)DHCP A Offer (IP addr)

DHCP B Offer (IP addr)DHCP B Offer (IP addr)

DHCP Request (A)DHCP Request (A)

DHCP A ACKDHCP A ACK

FFFFFF

Page 13: Boot Protocol (BOOTP)

DHCP ResponsesDHCPDHCPServerServer

BB

DHCP ClientDHCP ClientDHCPDHCPServerServer

AA

DHCP DiscoverDHCP A Offer (IP addr)DHCP A Offer (IP addr)

DHCP B Offer (IP addr)DHCP B Offer (IP addr)

DHCP Request (A)DHCP Request (A)

DHCP A ACKDHCP A ACK

FFFFFF

Page 14: Boot Protocol (BOOTP)

Releasing an IP Address DHCPDHCPServerServer

BB

DHCP ClientDHCP ClientDHCPDHCPServerServer

AA

DHCP Release A

Page 15: Boot Protocol (BOOTP)

DHCP Shortcuts• A client may skip the DHCPDISCOVER if it knows the

server address that it wants to talk to.

• Server will respond with a DHCP ACK.

• If the server responds with a DHCPNAK, the client cannot use the parameters it specified in the DHCPREQUEST:

– Restart with DHCPDISCOVER

• DHCPINFORM message can be used by a client to inform a server that it has an IP address but would like some parameters.

– Reply is in unicast

Page 16: Boot Protocol (BOOTP)

Lease Duration• The length of time that a client has sole use of an IP address is known

as a lease.

• Lease duration is negotiated between the client and the server during the Request/Offer protocol.

• There is no synchronization of timers between the server and a client:– A server may grant a smaller time than requested to the client, but

write the original time in its database.

• To extend the lease, the client must request this of the server:– If there is not an extension request, the lease expires.

• Times are based on a 32-bit integer:– Different implementations allow for different maximum lengths.

Page 17: Boot Protocol (BOOTP)

Efficiencies

• Not all parameters are needed:– Extensive use of defaults– Set according to the Host Requirement RFCs

1122, 1123• Host assumes the default value for anything

not contained in the DHCPACK message.• DCHP makes use of the Flags field to work

around the chicken-and- the-egg problem of IP address and ARP responses.

Page 18: Boot Protocol (BOOTP)

Operational Tables

• The page contains the DHCP fields and the processes that set or reset the fields.

Page 19: Boot Protocol (BOOTP)

Operational Tables (continued)

• The page contains the DHCP fields and the processes that set or reset the fields.

Page 20: Boot Protocol (BOOTP)

RFCs to be Reviewed

• 951: “Bootstrap Protocol (BOOTP)”

• 1534: “Interoperation between DHCP and BOOTP”

• 2131: “Dynamic Host Configuration Protocol (DHCP)”

• 2132: “DHCP and BOOTP Vendor Extensions”

Page 21: Boot Protocol (BOOTP)

Resource Reservation Protocol (RSVP)

•QoS abilities on most IP networks are usually about filters, protocol prioritization (fancy filters), compression, and fat pipes (fast or gigabit Ethernet).

•QoS never seemed like a pressing issue until the Web.

•Cannot continue to simply provide for fatter pipes.•We must find a way to allow multimedia to work on

the existing infrastructure.•ATM is not an alternative for most implementations.

Page 22: Boot Protocol (BOOTP)

Alternatives•Ethernet allows us some scaling with three speeds.•ToS offers different paths based on an application

request.•RSVP is a protocol useful where improved Quality

of Service (QoS) would enhance transmission of an application’s datastream and create higher reliability of its reception at the receiving endstation(s).

•An example where RSVP would be appropriate would be an application for streaming video to the desktop, in a multicast environment, in a routed infrastructure.

Page 23: Boot Protocol (BOOTP)

Where It Will Be Used

•RSVP covers the QoS portion of protocols optimized for real-time, streaming, and multimedia issues:RTSP: Real-Time Streaming Protocol–App Layer–RTP: Real-Time Transport Protocols (RFC

1889)–RTCP: Flow/Control Mechanism (RFC 1890) –RSVP: IETF Draft-14 (QoS)

Page 24: Boot Protocol (BOOTP)

•A basic RSVP reservation request (Resv message) consists of a flowspec and a filter spec that together are called a “flow descriptor.”

•flowspec defines:–Service class desired (Guaranteed or

Controlled-load)–Reservation requested (Rspec)–Description of the data flow (Tspec)

•filter spec, with the session specification, defines the data “flow” to receive the QoS defined by the flowspec.

Operation

Page 25: Boot Protocol (BOOTP)

Path Messages

•Two fundamental RSVP message types: Path and Resv messages.

•Path messages describe: – Previous hop IP (RSVP_HOP or “PHOP”) – Format of the data to come (Sender Template w/filter spec)– Traffic characteristics of the datastream (Sender Tspec) and

Adspec (OPWA) •Sent end-to-end from app host sender to app host receiver,

along existing routes, with the same addressing as data packets.– Path messages store path state in each node along the way

(used by Resv messages)

Page 26: Boot Protocol (BOOTP)

RSVP and Routers•Application hosts RSVP interfaces are to an

application API and to traffic control.•Router hosts RSVP interfaces are to routing and to

traffic control.

Appli-cation

RSVPdaemon Policy

control

Packetclass-ifier

PacketSched-uler

Admincontrol

Routingprotocoldaemon

RSVPdaemon Policy

control

Packetclass-ifier

Packetsched-uler

Admincontrol

RSVPRSVP

datadata

data

Traffic controlTraffic control

AppApphosthost

routerrouter

Page 27: Boot Protocol (BOOTP)

RSVP Requests

• Resv messages: reservation requests sent hop by hop from host receiver(s) to host sender along the reverse path.

• Each RSVP-speaking receiver node forwards a Resv message to the unicast address of the previous RSVP hop.

• Resv messages create and maintain reservation state in each node along the path(s).

Page 28: Boot Protocol (BOOTP)

Reservation Style

• RSVP uses several reservation “styles” to fit a variety of applications within Resv messages:– Styles are collective sets of options included in the

Resv request message– One option concerns the treatment of reservations as

distinct or shared– Another option controls the selection of senders, be

that an explicit list or a wildcard implementation• Wildcard-Filter (WF) style• Fixed-Filter (FF) style• Shared- Explicit (SE) style

Page 29: Boot Protocol (BOOTP)

RSVP Control

SenderSenderSelectionSelection

ReservationsReservations

DistinctDistinct SharedShared

ExplicitExplicit

WildcardWildcard ((None definedNone defined))

Fixed-FilterFixed-Filter(FF) style(FF) style

Shared-ExplicitShared-Explicit(SE) style(SE) style

Wildcard-FilterWildcard-Filter(WF) style(WF) style

Page 30: Boot Protocol (BOOTP)

Disabling a Reservation

• PathTear: Received by all receivers downstream and deletes the path state in each node.

• ResvTear: deletes the reservation state and travels upstream towards all senders from its point of initiation: –This message specifies styles and filters–Flowspecs are ignored

Page 31: Boot Protocol (BOOTP)

Handling Errors

• RSVP messages are unreliable.

• Error messages are sent using the PathErr and ResvErr.

• Simplex process that is sent upstream to the sender that created the error.

Page 32: Boot Protocol (BOOTP)

Merging Flowspecs

• RSVP will accommodate transparent operations through

non-RSVP- capable devices or clouds.• One Pass With Advertising (OPWA) is an RSVP

enhancement that may be used to predict end-to-end QoS.

• RSVP will merge reservations as they travel upstream to optimize network resources.

• RSVP uses “styles” to define specific options desired by the application.

Page 33: Boot Protocol (BOOTP)

A Simple Example• RSVP has two categories of hosts: Senders Senders and ReceiversReceivers

RSVP SenderRSVP SenderApp host App host (source)(source)

RSVP ReceiverRSVP ReceiverApp hostApp host

(Dest)(Dest)RouterRouterRouterRouter

ReceiverAppHostReceiverAppHost

Joins mcast groupJoins mcast groupand begins to recvand begins to recvRSVP RSVP PathPath Msgs Msgs

ReceiverReceiverhostshosts

Sender App HostSender App Host

Registers with local Registers with local RSVP daemon to RSVP daemon to

establish a sessionestablish a sessionand begins to Xmitand begins to Xmit

RSVP RSVP PathPath msgs to msgs to mcast dest addrmcast dest addr

RSVP RSVP Path msgPath msgIIGMP report msgGMP report msg

Path msg

IGMP msg

Page 34: Boot Protocol (BOOTP)

A Simple Example (continued)

RSVP SenderRSVP SenderApp host App host (source)(source)

RSVP ReceiverRSVP ReceiverApp hostApp host

(Dest)(Dest)RouterRouter RouterRouter

ReceiverReceiverHostsHosts

RSVP Path msgRSVP Path msgReceiver Resv msgReceiver Resv msg

Path msg

ReceiverApp hostReceiverApp host

Uses Path msg infoUses Path msg infoto create a resvto create a resv

request and sends request and sendsout RSVP Resv msgsout RSVP Resv msgshop by hop back tohop by hop back toApp Sender sourceApp Sender source

Resv msg

Sender App HostSender App Host

Resv(s)Resv(s) received andreceived andhost app instance host app instance

uses Resv info to setuses Resv info to setdata flow tranmission data flow tranmission

parametersparameters

•RSVP has two categories of hosts: Senders Senders and ReceiversReceivers

Page 35: Boot Protocol (BOOTP)

Issues• Routers have the capability of rejecting a request and

requests can be merged.• Works in areas that are not supporting it.• To make use of RSVP, applications must be RSVP aware,

and there are few:– Apps may be rewritten to use QoS-sensitive APIs such as

WinSock 2– Existing apps may use RSVP Dialer programs or toolkits

instead• Intranet versus Internet usage.

– Internet ISPs coming up with billing procedures for clients who desire QoS capabilities

Page 36: Boot Protocol (BOOTP)

RSVP Summary

• Resource ReSerVation Protocol (RSVP) is a protocol used to reserve network resources along the transmission path(s) of a datastream:

– The goal being to obtain optimal QoS for that application instance

• RSVP communicates between sending and receiving hosts with the receivers creating the actual reservation for the session:

– Reservations are made by receivers upstream back towards the sender(s)

– The focus of reservations is on Network layer resources in interconnecting devices (i.e., routers, or devices acting as routers)

Page 37: Boot Protocol (BOOTP)

RSVP Summary (continued)

• RSVP operates on top of IP, occupying the place of a Transport protocol and works as an internet control protocol similar to ICMP.

• Supports unicast and multicast protocols:

– Designed to accommodate large, heterogeneous groups of users with dynamic memberships and topology

• RSVP is unidirectional, or only makes reservations in one direction for data flows.

• Once a reservation is made, it’s maintained by using “soft state” in the routers:

– Soft state provides graceful support for membership changes and adaptation to routing changes

Page 38: Boot Protocol (BOOTP)

Conclusion•RSVP is one area addressing QoS issues that are

driving forces for future networking requirements:– Web-based everything–wave of the future– Real-time video apps and protocol availability– Integration of voice and data capabilities,

availability of multimedia technology, multicast networks–all only increases the demand for QoS features

•Specifications such as RSVP will only aid in bridging the gap between Layer 2 and Layer 3 QoS capabilities.

•www.isi.edu/rsvp.

Page 39: Boot Protocol (BOOTP)

Simple Network Management Protocol (SNMP)

• Network management is divided into five categories:

–Account management

–Fault management

–Security

–Configuration management

–Performance

Page 40: Boot Protocol (BOOTP)

SNMP Elements

Management serverManagement server

ClientsClients

MIB

SNMP requests/responsesSNMP requests/responses

Management applicationsManagement applications

Page 41: Boot Protocol (BOOTP)

SNMP Manager

• Management apps

• Databases

– MIB database

– Network Element database

– Management Application databases

• Topology database, History Logs, and Monitor Logs

Management serverManagement server

ClientsClients

MIB

SNMP requestsSNMP requests

Management applicationsManagement applications

Page 42: Boot Protocol (BOOTP)

Agent

• Contained in network elements.

• Interface from the management server to the client MIB.

• Can issue unsolicited responses known as traps.

• Special agent known as the proxy agent.

Management serverManagement server

ClientsClients

MIB

SNMP requestsSNMP requests

Management applicationsManagement applications

Page 43: Boot Protocol (BOOTP)

Management Information Base (MIB)

• Collection of objects that contain specific information that together form a group.

• Structure of Management Information is specified in RFC 1155.

• The objects contain the following:– Syntax– Access– Status– Description– Index– DefVal– Value notation

Page 44: Boot Protocol (BOOTP)

Object:IfOperStatus (ifEntry 8)

Syntax:INTEGER {

up (1) - ready to pass packetsdown(2),

testing (3) - in some test mode}

Definition:The current operational state of the interface.

The testing (3) state indicates that no operational packets can be passed.

Access:Read-only.Status:

Mandatory.

Example MIB Entry

Page 45: Boot Protocol (BOOTP)

The Protocol of SNMP

•PDU types:–GetRequest–GenNextRequest–GetResponsePDU–SetRequest–Trap PDU

Management serverManagement server

ClientsClients

MIB

SNMP requests/responsesSNMP requests/responses

Management applicationsManagement applications

Page 46: Boot Protocol (BOOTP)

SNMP Encapsulation

UDP headerUDP header UDP dataUDP data

Name(1) : Value(1)Name(1) : Value(1) Name(2) : Value(2)Name(2) : Value(2) Name(n): Value(n)Name(n): Value(n)

PDU type Request ID Error status Error index Variable bindingsPDU type Request ID Error status Error index Variable bindings

VersionVersionnumbernumber

DestinationDestinationaddressaddress

Source Source addressaddress

Type Type fieldfield CRCCRCIP dataIP dataIP headerIP header

CommunityCommunitystringstring SNMP PDUSNMP PDU