[Kea-users] Cable modem setup, failed to select subnet
Jesper Nørgaard
jesper at trommefisk.dk
Sat Nov 2 07:14:42 UTC 2024
All,
I am setting up a new KEA DHCP solution for an ISP. When clients are doing a DISCOVER they source from the CMTS which acts as a relay. They then get the correct IP address. But when the client comes back half time with a unicast, the DHCP server does not know in which subnet the client belongs and does a NAK, meaning the client looses the IP until the client does a new DISCOVER:
tid=0x322cdf6c: failed to select a subnet for incoming packet, src 100.71.0.208, type DHCPREQUEST
Shouldn’t the DHCP server be able to match the clients IP with a subnet, ignoring the client class?
Config:
{
"Dhcp4": {
"control-socket": {
"socket-type": "unix",
"socket-name": "/tmp/kea4-ctrl-socket"
},
"hooks-libraries": [
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_flex_id.so",
"parameters": {
"identifier-expression": "option[82].option[2].hex",
"replace-client-id": true
}
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so",
"parameters": {
"store-extended-info": true
}
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_cb_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_host_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_host_cache.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_pgsql_cb.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_subnet_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_class_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_stat_cmds.so"
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_legal_log.so",
"parameters": {
"path": "/var/log/kea",
"base-name": "kea-forensic4",
"time-unit": "second",
"count": 3600
}
}
],
"lease-database": {
"type": "postgresql",
"port": 5432,
"max-reconnect-tries": 3,
"reconnect-wait-time": 50
},
"hosts-database": {
"type": "postgresql",
"port": 5432,
"max-reconnect-tries": 3,
"reconnect-wait-time": 50
},
"config-control": {
"config-databases": [
{
"type": "postgresql",
"port": 5432
}
],
"config-fetch-wait-time": 20
},
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
"interfaces-config": {
"interfaces": ["ens35"],
"dhcp-socket-type": "udp"
},
//"host-reservation-identifiers": ["client-id", "hw-address", "circuit-id", "flex-id", "duid"],
"host-reservation-identifiers": ["flex-id"],
"match-client-id": true,
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
// Logging configuration starts here. Kea uses different loggers to log various
// activities. For details (e.g. names of loggers), see Chapter 18.
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4.log"
}
],
"severity": "INFO",
"debuglevel": 99
},
{
"name": "kea-dhcp4.leases",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4-leases.log"
}
],
"severity": "INFO",
"debuglevel": 0
},
{
"name": "kea-dhcp4.alloc-engine",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4-alloc-engine.log"
}
],
"severity": "INFO",
"debuglevel": 99
},
{
"name": "kea-dhcp4.ddns",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4-ddns.log"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
"shared-networks":[{
"interface":"ens35",
"name":"CMTS-A",
"option-data":[],
"relay":{"ip-addresses":["100.70.224.1","188.228.85.1"]},
"subnet4":[{"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":1,
"option-data":[{
"always-send":false,
"code":3,"csv-format":true,
"data":"100.70.224.1",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[{
"option-data":[],
"pool":"100.70.224.2-100.70.255.254"}],
"relay":{"ip-addresses":[]},
"reservations":[],
"subnet":"100.70.224.0/19"},
{"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":2,
"option-data":[{
"always-send":false,
"code":3,
"csv-format":true,
"data":"188.228.85.1",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[],
"relay":{
"ip-addresses":[]},
"reservations":[],
"subnet":"188.228.85.0/26"}]},
{"interface":"ens35",
"name":"CMTS-B",
"option-data":[],
"relay":{"ip-addresses":["100.71.0.1","188.228.85.65"]},
"subnet4":[{
"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":3,
"option-data":[{
"always-send":false,
"code":3,
"csv-format":true,
"data":"100.71.0.1",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[{
"option-data":[],
"pool":"100.71.0.2-100.71.31.254"}],
"relay":{
"ip-addresses":[]},
"reservations":[],
"subnet":"100.71.0.0/19"},
{"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":4,
"option-data":[{
"always-send":false,
"code":3,
"csv-format":true,
"data":"188.228.85.65",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[],
"relay":{"ip-addresses":[]},
"reservations":[],
"subnet":"188.228.85.64/26"}]},
{"interface":"ens35",
"name":"CMTS-C",
"option-data":[],
"relay":{
"ip-addresses":["100.71.32.1","188.228.85.129"]},
"subnet4":[{
"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":5,"option-data":[{
"always-send":false,
"code":3,
"csv-format":true,
"data":"100.71.32.1",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[{
"option-data":[],
"pool":"100.71.32.2-100.71.63.254"}],
"relay":{
"ip-addresses":[]},
"reservations":[],
"subnet":"100.71.32.0/19"},
{"4o6-interface":"",
"4o6-interface-id":"",
"4o6-subnet":"",
"client-class":"Option82Subscribers",
"id":6,
"option-data":[{
"always-send":false,
"code":3,
"csv-format":true,
"data":"188.228.85.129",
"name":"routers",
"never-send":false,
"space":"dhcp4"}],
"pools":[],
"relay":{
"ip-addresses":[]},
"reservations":[],
"subnet":"188.228.85.128/26"}]}],
"stash-agent-options":false,
"statistic-default-sample-age":0,
"statistic-default-sample-count":20,
"store-extended-info":false,
"subnet4":[],
"t1-percent":0.5,
"t2-percent":0.875,
"valid-lifetime":3600},
"daemonId":3,
"daemonName":"dhcp4",
"editable":true,
"options":{
"options":[{"code":6,
"fields":[{
"fieldType":"ipv4-address",
"values":["81.167.36.5"]},
{"fieldType":"ipv4-address",
"values":["81.167.36.12"]}],
"options":null,
"universe":4},
{"code":15,
"fields":[{
"fieldType":"string",
"values":[""]}],
"options":null,
"universe":4}],
————————————————
Jesper Nørgaard
More information about the Kea-users
mailing list