DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan...

9
1 © David Morgan 2003-2015 DHCP DHCP – the protocol the protocol David Morgan © David Morgan 2003-2015 DHCP as a language DHCP as a language spoken between pairs of programs – a dhcp client program, e.g., dhclient – an dhcp server program, e.g., dhcpd – they’re written specially to speak it discussing server giving info it has, or gets, to client broadcast-response behavior

Transcript of DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan...

Page 1: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

1

© David Morgan 2003-2015

DHCP DHCP –– the protocolthe protocol

David Morgan

© David Morgan 2003-2015

DHCP as a languageDHCP as a language

� spoken between pairs of programs

– a dhcp client program, e.g., dhclient

– an dhcp server program, e.g., dhcpd

– they’re written specially to speak it

� discussing server giving info it has, or gets, to client

� broadcast-response behavior

Page 2: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

2

© David Morgan 2003-2015

DHCP message formatDHCP message format

op hlen

seconds elapsed flags

htype hops

transaction identifier

client IP address

your IP address

server IP address

router IP address

client hardware address (16 bytes…

server host name (64 bytes…

boot file name (128 bytes…

options (variable…

© David Morgan 2003-2015

DHCPDHCP

� Dynamic Host Configuration Protocol

– Allows "self-configuration" of computers

– DHCP server assigns IP address mask etc

� RFC 951 and 1048 (BOOTP)

� RFC 2131 and 2132 DHCP

Page 3: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

3

© David Morgan 2003-2015

DHCP TransactionDHCP Transaction

Client - needs IP config Server supplies config

© David Morgan 2003-2015

BOOTP PacketBOOTP Packet� Primary fields of interest

– Client IP - If the client knows its IP it puts it here

– Your IP - The IP address the server is offering the

client

– Server IP - The IP address of the server that generated

this reply

– Gateway - IP of gateway for trans-router DHCP

– Client HW - MAC Address of client

Page 4: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

4

© David Morgan 2003-2015

Step 1 DHCP DiscoverStep 1 DHCP Discover

Client - sends Discover

All IP Fields 0.0.0.0

Client HW = MAC of client

© David Morgan 2003-2015

DHCP DiscoverDHCP Discover

All IPs are 0.0.0.0…..

..broadcast destination MAC

Page 5: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

5

© David Morgan 2003-2015

Step 2 DHCP OfferStep 2 DHCP Offer

Server - replies with Offer

SAME TRANSACTION #

Client IP 0.0.0.0

Your IP = Offered IP

Server IP = Server IP

Client HW = MAC of client

Client - may get more than

one offer

© David Morgan 2003-2015

DHCP OfferDHCP Offer

Client IP = 10.100.13.200

Server IP = 10.100.13.101

Page 6: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

6

© David Morgan 2003-2015

Step 3 DHCP RequestStep 3 DHCP Request

Client selects an offer and

responds with Request

SAME TRANSACTION #

All IPs 0.0.0.0

Parameters in Request List

© David Morgan 2003-2015

DHCP RequestDHCP Request

Page 7: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

7

© David Morgan 2003-2015

Step 4 DHCP ACKStep 4 DHCP ACK

Server confirms request

© David Morgan 2003-2015

DHCP ACKDHCP ACK

Page 8: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

8

© David Morgan 2003-2015

DHCPDDHCPD

� DHCP Server process is dhcpd

� set configuration in /etc/dhcp/dhcpd.conf

� leases list in /var/lib/dhcp/dhcpd.leases

� set autorun-on-boot (with, e.g., chkconfig)

© David Morgan 2003-2015

minimalminimal dhcpddhcpd.conf.conf

Many, many, more options, e. g.

option routers <ip address>

....would be used to specify a gateway

Page 9: DHCP – the protocolhomepage.smc.edu/morgan_david/linux/n-protocol-08-dhcp.pdf1 © David Morgan 2003-2015 DHCP – the protocol David Morgan © David Morgan 2003-2015 DHCP as a language

9

© David Morgan 2003-2015

dhcpddhcpd.leases.leases

© David Morgan 2003-2015

BiblioBiblio

� RFC 2131 – “Dynamic Host Configuration Protocol”

� RFC 1534 – “Interoperation Between DHCP and BOOTP “

� RFC 951 – “Bootstrap Protocol (bootp)”