[Kea-users] Cable modem setup, failed to select subnet
Darren Ankney
darren.ankney at gmail.com
Sat Nov 2 09:30:14 UTC 2024
Hi Jesper,
This is solved in 2.6.1 with "stash-agent-option": true See here:
https://kea.readthedocs.io/en/kea-2.6.1/arm/dhcp4-srv.html#stash-agent-options
for further information.
Thank you,
Darren Ankney
On Sat, Nov 2, 2024 at 3:15 AM Jesper Nørgaard <jesper at trommefisk.dk> wrote:
>
> 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
>
>
> --
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> Kea-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
More information about the Kea-users
mailing list