[Kea-users] Stork does not see new dhcp4 subnet

Apu apu at spfld.com
Tue Sep 5 17:57:32 UTC 2023


Stork is reporting

Sep  5 11:42:33 ip1-mc stork-server[1045]: time="2023-09-05 11:42:33" 
level="error" msg="cannot find LocalSubnet for app: 1, local subnet ID: 
16, family: 4" file="      statspuller.go:249  "

Sep  5 11:42:33 ip1-mc stork-server[1045]: time="2023-09-05 11:42:33" 
level="error" msg="Error handling stat-lease4-get response: cannot find 
LocalSubnet for app: 1, local subnet ID: 16, family: 
4\nisc.org/stork/server/apps/kea.(*StatsPuller).storeDaemonStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:248\nisc.org/stork/server/apps/kea.(*StatsPuller).processAppResponses\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:374\nisc.org/stork/server/apps/kea.(*StatsPuller).getStatsFromApp\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:348\nisc.org/stork/server/apps/kea.(*StatsPuller).pullStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:63\nisc.org/stork/server/agentcomm.NewPeriodicPuller.func1\n\t/builds/isc-projects/stork/backend/server/agentcomm/puller.go:42\nisc.org/stork/util.(*PeriodicExecutor).executorLoop\n\t/builds/isc-projects/stork/backend/util/periodicexecutor.go:167\nruntime.goexit\n\t/builds/isc-projects/stork/tools/golang/go/src/runtime/asm_amd64.s:1594" 
file="      statspuller.go:376  "

Sep  5 11:42:33 ip1-mc stork-server[1045]: time="2023-09-05 11:42:33" 
level="error" msg="Error occurred while getting stats from app 1: cannot 
find LocalSubnet for app: 1, local subnet ID: 16, family: 
4\nisc.org/stork/server/apps/kea.(*StatsPuller).storeDaemonStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:248\nisc.org/stork/server/apps/kea.(*StatsPuller).processAppResponses\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:374\nisc.org/stork/server/apps/kea.(*StatsPuller).getStatsFromApp\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:348\nisc.org/stork/server/apps/kea.(*StatsPuller).pullStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:63\nisc.org/stork/server/agentcomm.NewPeriodicPuller.func1\n\t/builds/isc-projects/stork/backend/server/agentcomm/puller.go:42\nisc.org/stork/util.(*PeriodicExecutor).executorLoop\n\t/builds/isc-projects/stork/backend/util/periodicexecutor.go:167\nruntime.goexit\n\t/builds/isc-projects/stork/tools/golang/go/src/runtime/asm_amd64.s:1594" 
file="      statspuller.go:66   "

Sep  5 11:42:33 ip1-mc stork-server[1045]: time="2023-09-05 11:42:33" 
level="error" msg="Errors were encountered while pulling data from apps: 
cannot find LocalSubnet for app: 1, local subnet ID: 16, family: 
4\nisc.org/stork/server/apps/kea.(*StatsPuller).storeDaemonStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:248\nisc.org/stork/server/apps/kea.(*StatsPuller).processAppResponses\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:374\nisc.org/stork/server/apps/kea.(*StatsPuller).getStatsFromApp\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:348\nisc.org/stork/server/apps/kea.(*StatsPuller).pullStats\n\t/builds/isc-projects/stork/backend/server/apps/kea/statspuller.go:63\nisc.org/stork/server/agentcomm.NewPeriodicPuller.func1\n\t/builds/isc-projects/stork/backend/server/agentcomm/puller.go:42\nisc.org/stork/util.(*PeriodicExecutor).executorLoop\n\t/builds/isc-projects/stork/backend/util/periodicexecutor.go:167\nruntime.goexit\n\t/builds/isc-projects/stork/tools/golang/go/src/runtime/asm_amd64.s:1594" 
file=" periodicexecutor.go:170  "




This is the subnet declaration we added which is handing out IP 
addresses and grafana is happy to graph.  Just a small test pool for 
starters until everything is working and we swap out the "ip 
helper-address" statements to point away from the ISC DHCP servers. 
(Full config attached, with some redactions.)

       {
         "id": 16,
         "subnet": "10.16.0.0/24",
         "option-data": [
           {
             "space": "dhcp4",
             "name": "routers",
             "code": 3,
             "data": "10.16.1.1"
           },
           {
             "space": "dhcp4",
             "name": "subnet-mask",
             "code": 1,
             "data": "255.255.0.0"
           },
           {
             "space": "dhcp4",
             "name": "broadcast-address",
             "code": 28,
             "data": "10.16.255.255"
           }
	],
         "pools": [
           {
             "pool": "10.16.0.2 - 10.16.0.3"
           }
	]
       },


-- 
Apu
-------------- next part --------------
{
  ##############################################################################
  # dhcpd configuration
  ##############################################################################
  /// This configuration declares some subnets but has no interfaces-config
  /// Reference Kea #245
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "ens192" ],
      "dhcp-socket-type": "raw"
    },

    "control-socket": {
        "socket-type": "unix",
        "socket-name": "/tmp/kea4-ctrl-socket"
    },

    "lease-database": {
        // Memfile is the simplest and easiest backend to use. It's an in-memory
        // C++ database that stores its state in CSV file.
        "type": "memfile",
        "persist": true,
        "name": "/var/lib/kea/kea-leases4.csv",
        "lfc-interval": 3600
    },

    "authoritative": true,
    "valid-lifetime": 21600,
    "max-valid-lifetime": 172800,

    "hosts-database": {
        "type": "mysql",
        "name": "******",
        "user": "******",
        "password": "******",
        "host": "localhost",
        "port": 3306
    },

    "hooks-libraries": [
       {                       
         "library": "/usr/lib64/kea/hooks/libdhcp_mysql_cb.so"
       },
       {                       
         "library": "/usr/lib64/kea/hooks/libdhcp_bootp.so"
       },
       {
         "library": "/usr/lib64/kea/hooks/libdhcp_lease_cmds.so"
       },
       {
         "library": "/usr/lib64/kea/hooks/libdhcp_host_cmds.so"
       },
       {
         "library": "/usr/lib64/kea/hooks/libdhcp_stat_cmds.so"
       }
    ],
    ##############################################################################
    # Global parameters sent with every lease
    ##############################################################################
    "option-data": [
      {
        "space": "dhcp4",
        "name": "domain-name",
        "code": 15,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "domain-search",
        "code": 119,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "domain-name-servers",
        "code": 6,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "netbios-name-servers",
        "code": 44,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "ntp-servers",
        "code": 42,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "log-servers",
        "code": 7,
        "data": "******"
      },
      {
        "space": "dhcp4",
        "name": "slp-directory-agent",
        "code": 78,
        "data": "true, ******"
      }
    ],
    "option-def": [
      # APC rack PDU
      {
        "space": "APC",
        "name": "cookie",
        "code": 1,
        "type": "string"
      },
      # Microsoft operating systems
      {
        "space": "MSFT",
        "name": "release-on-shutdown",
        "code": 2,
        "type": "uint32"
      }
    ],
    "client-classes": [
      {
        "name": "apc-rpdu",
        /// from: match if (substring(option dhcp.vendor-class-identifier, 0, 3)) = 'APC'
        "test": "substring(option[60].hex,0,3) == 'APC'",
        "option-def": [
          {
            "name": "vendor-encapsulated-options",
            "code": 43,
            "type": "empty",
            "encapsulate": "APC"
          }
        ],
        "option-data": [
          {
            "name": "vendor-encapsulated-options",
            "code": 43
          },
          {
            "space": "APC",
            "name": "cookie",
            "code": 1,
            "data": "1APC"
          }
        ]
      },
      {
        "name": "msft-w2k-xp-clients",
        /// from: match if (option dhcp.vendor-class-identifier) = 'MSFT 5.0'
        "test": "option[60].hex == 'MSFT 5.0'",
        "option-def": [
          {
            "name": "vendor-encapsulated-options",
            "code": 43,
            "type": "empty",
            "encapsulate": "MSFT"
          }
        ],
        "option-data": [
          {
            "name": "vendor-encapsulated-options",
            "code": 43
          },
          {
            "space": "MSFT",
            "name": "release-on-shutdown",
            "code": 2,
            "data": "1"
          }
        ]
      }
    ],
      ##############################################################################
      # Network configuration
      ##############################################################################
    "subnet4": [
      {
        "id": 16,
        "subnet": "10.16.0.0/24",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.16.1.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.0.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.16.255.255"
          }
        ],
        "pools": [
          {
            "pool": "10.16.0.2 - 10.16.0.3"
          }
        ]
      },
      ##############################################################################
      {
        "id": 17,
        "subnet": "10.17.0.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.1.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.31.255"
          }
        ],
        "pools": [
          {
            "pool": "10.17.21.2 - 10.17.21.254"
          },
          {
            "pool": "10.17.22.2 - 10.17.22.254"
          },
          {
            "pool": "10.17.23.2 - 10.17.23.254"
          },
          {
            "pool": "10.17.24.2 - 10.17.24.254"
          }
        ]
      },
      ##############################################################################
      {
        "id": 172,
        "subnet": "10.17.32.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.32.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.63.255"
          }
        ],
        "pools": [
          {
            "pool": "10.17.41.2 - 10.17.41.254"
          },
          {
            "pool": "10.17.42.2 - 10.17.42.254"
          },
          {
            "pool": "10.17.43.2 - 10.17.43.254"
          },
          {
            "pool": "10.17.44.2 - 10.17.44.254"
          }
        ]
      },
      ##############################################################################
      {
        "id": 173,
        "subnet": "10.17.64.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.64.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.95.255"
          }
        ],
        "pools": [
          {
            "pool": "10.17.81.2 - 10.17.81.254"
          },
          {
            "pool": "10.17.82.2 - 10.17.82.254"
          },
          {
            "pool": "10.17.83.2 - 10.17.83.254"
          },
          {
            "pool": "10.17.84.2 - 10.17.84.254"
          }
        ]
      },
      ##############################################################################
      {
        "id": 174,
        "subnet": "10.17.96.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.96.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.127.255"
          }
        ],
        "pools": [
          {
            "pool": "10.17.121.2 - 10.17.121.254"
          },
          {
            "pool": "10.17.122.2 - 10.17.122.254"
          },
          {
            "pool": "10.17.123.2 - 10.17.123.254"
          },
          {
            "pool": "10.17.124.2 - 10.17.124.254"
          }
        ]
      },
      ##############################################################################
      {
        "id": 175,
        "subnet": "10.17.128.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.128.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.159.255"
          }
        ],
        "pools": [
          {
            "pool": "10.17.141.2 - 10.17.141.254"
          },
          {
            "pool": "10.17.142.2 - 10.17.142.254"
          },
          {
            "pool": "10.17.143.2 - 10.17.143.254"
          },
          {
            "pool": "10.17.144.2 - 10.17.144.254"
          }
        ]
      },
      ##############################################################################
      {
        "id": 176,
        "subnet": "10.17.160.0/19",
        "option-data": [
          {
            "space": "dhcp4",
            "name": "routers",
            "code": 3,
            "data": "10.17.160.1"
          },
          {
            "space": "dhcp4",
            "name": "subnet-mask",
            "code": 1,
            "data": "255.255.224.0"
          },
          {
            "space": "dhcp4",
            "name": "broadcast-address",
            "code": 28,
            "data": "10.17.191.255"
          },
          {
            "space": "dhcp4",
            "name": "slp-directory-agent",
            "code": 78,

            "data": "true, 10.14.2.3"
          }
        ],
        "pools": [
          {
            "pool": "10.17.181.2 - 10.17.181.254"
          },
          {
            "pool": "10.17.182.2 - 10.17.182.254"
          },
          {
            "pool": "10.17.183.2 - 10.17.183.254"
          },
          {
            "pool": "10.17.184.2 - 10.17.184.254"
          }
        ]
      }
    ],
    "host-reservation-identifiers": [
      "hw-address"
    ],
    "reservation-mode": "global",
    "reservations": [
    ]
  }
}


More information about the Kea-users mailing list