mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-22 09:57:41 +00:00
65 lines
1.6 KiB
Plaintext
65 lines
1.6 KiB
Plaintext
@startuml
|
|
|
|
title DHCPv4 Assign Lease (Kea 1.8.0)
|
|
|
|
agent "Check Subnet" as subnet
|
|
note left : entry point
|
|
|
|
agent "Get server id" as server_id
|
|
|
|
agent "Get hint" as hint
|
|
|
|
agent "Get hardware address and client id" as ident
|
|
|
|
rectangle "INIT-REBOOT state" as init_reboot {
|
|
agent "Get existing lease by client id" as by_client_id
|
|
|
|
agent "Get existing lease by hardware address" as by_hw_addr
|
|
|
|
agent "Get authoritative" as authoritative
|
|
}
|
|
|
|
agent "Process hostname" as hostname
|
|
|
|
agent "Request lease" as allocate
|
|
|
|
rectangle "Lease allocated" as allocated {
|
|
agent "update DDNS" as ddns
|
|
agent "Send ACK" as ack
|
|
}
|
|
|
|
agent "No lease allocated" as failed
|
|
note right : exit point
|
|
|
|
agent "Send NAK" as nak
|
|
note right : exit point
|
|
|
|
agent "No response" as no_response
|
|
note right : exit point
|
|
|
|
subnet --> server_id
|
|
subnet ---> nak : no subnet
|
|
server_id --> hint
|
|
hint --> ident : use requested address option
|
|
hint --> ident : use client address
|
|
hint --> ident : no hint
|
|
ident --> init_reboot : requested address and no server id
|
|
ident ---> hostname
|
|
init_reboot --> by_client_id : has a client id
|
|
init_reboot --> by_hw_addr : no client id
|
|
by_client_id ---> authoritative : found
|
|
by_client_id --> by_hw_addr : not found
|
|
by_hw_addr --> authoritative
|
|
authoritative ---> no_response : not authoritative and no owned lease
|
|
authoritative --> nak : owned lease with hint mismatch
|
|
authoritative --> nak : authoritative and no owned lease
|
|
authoritative --> hostname : other cases
|
|
hostname --> allocate
|
|
allocate --> allocated : lease allocated
|
|
allocated --> ddns
|
|
ddns --> ack
|
|
allocate --> failed : no lease allocated
|
|
failed --> nak
|
|
|
|
@enduml
|