You are not logged in.

#1 2021-12-01 06:56:21

Renuka
Member
Registered: 2021-12-01
Posts: 1

DNSMASQ + DHCP server https://wiki.archlinux.org/title/dnsmasq

Using dnsmasq installed inside the Kubenetics k8 cluster. We will be using it to do a dhcp and PXE boot of hosts. (https://wiki.archlinux.org/title/dnsmasq)


Wanted to check if my DHCP server is up and running.  Unable to verify DHCP and client vm handshake.


1.  Attached eth2 static IP network using network attachment definition(NAD) and annotated it to dnsmasq k8 pod.
Below is the dnsmasq.config

/tmp # cat /etc/dnsmasq.conf
# Disable DNS Server
port=0

# Enable DHCP logging
log-dhcp

# Provide network boot option called "Network Boot"
pxe-service=x86PC,"Network Boot",pxelinux

enable-tftp
tftp-root=/var/lib/tftpboot
interface=eth2
dhcp-range=192.27.47.6,192.27.47.14,12h
dhcp-boot=/var/lib/tftpboot/pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot

# Run as root user
user=root

2.  From inside the k8 POD, able to see a new interface attached

```
eth2      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.27.47.5  Bcast:192.27.47.15  Mask:255.255.255.240
          inet6 addr: xxxx::xxxx:xxx:xxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:202 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:61946 (60.4 KiB)  TX bytes:2378 (2.3 KiB)

```

3.  Attached the same interface(eth2) adapter on node


To verify if DHCP is working at POD level,   launched  new other PODS with same NAD to check with the DHCP is able to assign any IP to that POD. 
I am only seeing new eth2 interface for new PODs too. 
But new IPs are not getting assigned from the DHCP range.

NAD looks like

cat <<EOF | kubectl create -f -
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: macvlan-conf-116
  namespace: cms
spec:
  config: '{
            "cniVersion": "0.3.0",
            "type": "macvlan",
            "master": "eth2",
            "mode": "bridge",
            "ipam": {
                "type": "static",
                 "addresses": [
                    {
                        "address": "192.27.47.5/28"
                    }
                ]   
            }
        }'
EOF


Docker file used for k8 pod has entry:
ENTRYPOINT ["dnsmasq", "--no-daemon"]
CMD ["--dhcp-range=192.27.48.6,192.27.48.14"]


I see the tcpdump logs from my host machine where eth2 interface is attached,   this dump does not have any info on IP being sent from DHCP server to requested MAC Address.
06:48:44.661823 IP 0.0.0.0.65 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:11:b8:12:a7:02, length 300
06:48:44.661823 IP 0.0.0.0.65 > 255.255.255.255.67: BOOTP/DHCP, Request from  00:11:b8:12:a7:02, length 300

What am I missing here ?
Not sure how to verify if the DHCP server is running inside the POD and the request which came to host is able to reach to it.

Last edited by Renuka (2021-12-01 09:04:41)

Offline

Board footer

Powered by FluxBB