On Wed, May 10, 2023 at 05:55:28AM -0000, Stuart Henderson wrote: > On 2023-05-10, David Diggles <da...@elven.com.au> wrote: > > My ISP provides connection via DHCP. > > > > Every 5 minutes or so when dhcpleased is renewing the lease, > > my default route disappears for a few seconds. > > That isn't supposed to happen. I just checked on a machine which has > 10 minute leases and I don't see that problem or those log messages. > > I'd run dhcpleased in the foreground with debug logging and collect a > couple of cycle's worth to see if that gives any clues. Saving a > packet capture might be useful too ("tcpdump -i cnmac2 -s1500 -w > /tmp/dhcp.pcap port 67 or 68"). > > > Definitely I'll be looking at requesting a longer lease by > > putting a setting in /etc/dhclient.conf but is there any way > > I can stop the default route disappearing with each renew event? > > dhcpleased doesn't support this yet though it would certainly be a > feature that's useful to have.
Ok Stuart, here's a couple of rounds of dhcpleased -vvv with the tcpdump. root@sarah log:130# rcctl stop dhcpleased dhcpleased(ok) root@sarah log:0# which dhcpleased /sbin/dhcpleased root@sarah log:0# /sbin/dhcpleased -d -vvv state_transition[cnmac2] Down -> Rebooting, timo: 1 DHCPREQUEST on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: ff:ff:ff:ff:ff:ff parse_dhcp: 202.63.66.1:67 -> 255.255.255.255:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0x74253f08 dhcp_hdr secs: 0 dhcp_hdr flags: 0x8000 dhcp_hdr ciaddr: 0.0.0.0 dhcp_hdr yiaddr: 202.63.67.36 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPACK DHO_SUBNET_MASK: 255.255.254.0 DHO_ROUTER: 202.63.66.1 DHO_DOMAIN_NAME_SERVERS: 119.40.106.35 (1/2) DHO_DOMAIN_NAME_SERVERS: 119.40.106.36 (2/2) DHO_42, len: 4 DHO_DHCP_LEASE_TIME 600s DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPACK on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to ff:ff:ff:ff:ff:ff/255.255.255.255 adding 202.63.67.36 to cnmac2 (lease from 202.63.66.1) adding nameservers 119.40.106.35 119.40.106.36 (lease from 202.63.66.1 on cnmac2) state_transition[cnmac2] Rebooting -> Bound, timo: 300 configure_interface cnmac2 iface_timeout[3]: Bound state_transition[cnmac2] Bound -> Renewing, timo: 112 DHCPREQUEST on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: dc:9f:db:28:14:bf parse_dhcp: 202.63.66.1:67 -> 202.63.67.36:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0xa180ce6b dhcp_hdr secs: 0 dhcp_hdr flags: 0x0 dhcp_hdr ciaddr: 202.63.67.36 dhcp_hdr yiaddr: 0.0.0.0 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPNAK DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPNAK on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to dc:9f:db:28:14:bf/202.63.67.36 deleting nameservers 119.40.106.35 119.40.106.36 (lease from 202.63.66.1 on cnmac2) deleting 202.63.67.36 from cnmac2 (lease from 202.63.66.1) state_transition[cnmac2] Renewing -> Init, timo: 1 DHCPDISCOVER on cnmac2 deconfigure_interface cnmac2 iface_timeout[3]: Init state_transition[cnmac2] Init -> Init, timo: 2 DHCPDISCOVER on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: ff:ff:ff:ff:ff:ff parse_dhcp: 202.63.66.1:67 -> 255.255.255.255:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0x6a13ec33 dhcp_hdr secs: 0 dhcp_hdr flags: 0x8000 dhcp_hdr ciaddr: 0.0.0.0 dhcp_hdr yiaddr: 202.63.67.36 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPOFFER DHO_SUBNET_MASK: 255.255.254.0 DHO_ROUTER: 202.63.66.1 DHO_DOMAIN_NAME_SERVERS: 119.40.106.35 (1/2) DHO_DOMAIN_NAME_SERVERS: 119.40.106.36 (2/2) DHO_42, len: 4 DHO_DHCP_LEASE_TIME 600s DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPOFFER on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to ff:ff:ff:ff:ff:ff/255.255.255.255 state_transition[cnmac2] Init -> Requesting, timo: 1 DHCPREQUEST on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: ff:ff:ff:ff:ff:ff parse_dhcp: 202.63.66.1:67 -> 255.255.255.255:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0xdafa3da4 dhcp_hdr secs: 0 dhcp_hdr flags: 0x8000 dhcp_hdr ciaddr: 0.0.0.0 dhcp_hdr yiaddr: 202.63.67.36 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPACK DHO_SUBNET_MASK: 255.255.254.0 DHO_ROUTER: 202.63.66.1 DHO_DOMAIN_NAME_SERVERS: 119.40.106.35 (1/2) DHO_DOMAIN_NAME_SERVERS: 119.40.106.36 (2/2) DHO_42, len: 4 DHO_DHCP_LEASE_TIME 600s DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPACK on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to ff:ff:ff:ff:ff:ff/255.255.255.255 adding 202.63.67.36 to cnmac2 (lease from 202.63.66.1) adding nameservers 119.40.106.35 119.40.106.36 (lease from 202.63.66.1 on cnmac2) state_transition[cnmac2] Requesting -> Bound, timo: 300 configure_interface cnmac2 iface_timeout[3]: Bound state_transition[cnmac2] Bound -> Renewing, timo: 112 DHCPREQUEST on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: dc:9f:db:28:14:bf parse_dhcp: 202.63.66.1:67 -> 202.63.67.36:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0x953f83f1 dhcp_hdr secs: 0 dhcp_hdr flags: 0x0 dhcp_hdr ciaddr: 202.63.67.36 dhcp_hdr yiaddr: 0.0.0.0 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPNAK DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPNAK on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to dc:9f:db:28:14:bf/202.63.67.36 deleting nameservers 119.40.106.35 119.40.106.36 (lease from 202.63.66.1 on cnmac2) deleting 202.63.67.36 from cnmac2 (lease from 202.63.66.1) state_transition[cnmac2] Renewing -> Init, timo: 1 DHCPDISCOVER on cnmac2 deconfigure_interface cnmac2 iface_timeout[3]: Init state_transition[cnmac2] Init -> Init, timo: 2 DHCPDISCOVER on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: ff:ff:ff:ff:ff:ff parse_dhcp: 202.63.66.1:67 -> 255.255.255.255:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0x66009a6e dhcp_hdr secs: 0 dhcp_hdr flags: 0x8000 dhcp_hdr ciaddr: 0.0.0.0 dhcp_hdr yiaddr: 202.63.67.36 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPOFFER DHO_SUBNET_MASK: 255.255.254.0 DHO_ROUTER: 202.63.66.1 DHO_DOMAIN_NAME_SERVERS: 119.40.106.35 (1/2) DHO_DOMAIN_NAME_SERVERS: 119.40.106.36 (2/2) DHO_42, len: 4 DHO_DHCP_LEASE_TIME 600s DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPOFFER on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to ff:ff:ff:ff:ff:ff/255.255.255.255 state_transition[cnmac2] Init -> Requesting, timo: 1 DHCPREQUEST on cnmac2 parse_dhcp, from: 0e:a2:00:04:00:03, to: ff:ff:ff:ff:ff:ff parse_dhcp: 202.63.66.1:67 -> 255.255.255.255:68 dhcp_hdr op: Boot Reply (2) dhcp_hdr htype: Ethernet (1) dhcp_hdr hlen: 6 dhcp_hdr hops: 0 dhcp_hdr xid: 0xfe3d764f dhcp_hdr secs: 0 dhcp_hdr flags: 0x8000 dhcp_hdr ciaddr: 0.0.0.0 dhcp_hdr yiaddr: 202.63.67.36 dhcp_hdr siaddr: 172.21.116.42 dhcp_hdr giaddr: 0.0.0.0 dhcp_hdr chaddr: dc:9f:db:28:14:bf (00000000000000000000) DHO_DHCP_MESSAGE_TYPE: DHCPACK DHO_SUBNET_MASK: 255.255.254.0 DHO_ROUTER: 202.63.66.1 DHO_DOMAIN_NAME_SERVERS: 119.40.106.35 (1/2) DHO_DOMAIN_NAME_SERVERS: 119.40.106.36 (2/2) DHO_42, len: 4 DHO_DHCP_LEASE_TIME 600s DHO_DHCP_SERVER_IDENTIFIER: 202.63.66.1 DHO_END DHCPACK on cnmac2 from 0e:a2:00:04:00:03/202.63.66.1 to ff:ff:ff:ff:ff:ff/255.255.255.255 adding 202.63.67.36 to cnmac2 (lease from 202.63.66.1) adding nameservers 119.40.106.35 119.40.106.36 (lease from 202.63.66.1 on cnmac2) state_transition[cnmac2] Requesting -> Bound, timo: 300 configure_interface cnmac2 ^Cengine exiting frontend exiting waiting for children to terminate terminating root@sarah log:0# rcctl start dhcpleased dhcpleased(ok) root@sarah ~:0# tcpdump -i cnmac2 -s1500 -w /tmp/dhcp.pcap port 67 or 68 tcpdump: listening on cnmac2, link-type EN10MB ^C 95637 packets received by filter 0 packets dropped by kernel root@sarah ~:0# tcpdump -r /tmp/dhcp.pcap tcpdump: WARNING: snaplen raised from 116 to 1500 22:36:40.276682 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x74253f08 vend-rfc1048 DHCP:REQUEST HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 RQ:202-63-67-36.ip4.superloop.au [tos 0x10] 22:36:40.327371 202-63-66-1.ip4.superloop.au.bootps > 255.255.255.255.bootpc: xid:0x74253f08 flags:0x8000 Y:202-63-67-36.ip4.superloop.au S:172.21.116.42 ether dc:9f:db:28:14:bf vend-rfc1048 DHCP:ACK SM:255.255.254.0 DG:202-63-66-1.ip4.superloop.au NS:resolv1.home.superloop.com,119-40-106-36.ip4.superloop.au NTP:ntp.superloop.com LT:600 SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:41:40.422661 202-63-67-36.ip4.superloop.au.56480 > 202-63-66-1.ip4.superloop.au.bootps: (request) xid:0xa180ce6b C:202-63-67-36.ip4.superloop.au vend-rfc1048 DHCP:REQUEST HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 22:41:40.434534 202-63-66-1.ip4.superloop.au.bootps > 202-63-67-36.ip4.superloop.au.bootpc: xid:0xa180ce6b C:202-63-67-36.ip4.superloop.au S:172.21.116.42 vend-rfc1048 DHCP:NACK SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:41:40.442012 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x6a13ec33 vend-rfc1048 DHCP:DISCOVER HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 [tos 0x10] 22:41:41.532272 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x6a13ec33 vend-rfc1048 DHCP:DISCOVER HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 [tos 0x10] 22:41:41.653804 202-63-66-1.ip4.superloop.au.bootps > 255.255.255.255.bootpc: xid:0x6a13ec33 flags:0x8000 Y:202-63-67-36.ip4.superloop.au S:172.21.116.42 ether dc:9f:db:28:14:bf vend-rfc1048 DHCP:OFFER SM:255.255.254.0 DG:202-63-66-1.ip4.superloop.au NS:resolv1.home.superloop.com,119-40-106-36.ip4.superloop.au NTP:ntp.superloop.com LT:600 SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:41:41.658881 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xdafa3da4 vend-rfc1048 DHCP:REQUEST HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 RQ:202-63-67-36.ip4.superloop.au SID:202-63-66-1.ip4.superloop.au [tos 0x10] 22:41:42.414218 202-63-66-1.ip4.superloop.au.bootps > 255.255.255.255.bootpc: xid:0xdafa3da4 flags:0x8000 Y:202-63-67-36.ip4.superloop.au S:172.21.116.42 ether dc:9f:db:28:14:bf vend-rfc1048 DHCP:ACK SM:255.255.254.0 DG:202-63-66-1.ip4.superloop.au NS:resolv1.home.superloop.com,119-40-106-36.ip4.superloop.au NTP:ntp.superloop.com LT:600 SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:46:42.512451 202-63-67-36.ip4.superloop.au.63976 > 202-63-66-1.ip4.superloop.au.bootps: (request) xid:0x953f83f1 C:202-63-67-36.ip4.superloop.au vend-rfc1048 DHCP:REQUEST HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 22:46:42.525222 202-63-66-1.ip4.superloop.au.bootps > 202-63-67-36.ip4.superloop.au.bootpc: xid:0x953f83f1 C:202-63-67-36.ip4.superloop.au S:172.21.116.42 vend-rfc1048 DHCP:NACK SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:46:42.531574 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x66009a6e vend-rfc1048 DHCP:DISCOVER HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 [tos 0x10] 22:46:43.622162 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x66009a6e vend-rfc1048 DHCP:DISCOVER HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 [tos 0x10] 22:46:43.762685 202-63-66-1.ip4.superloop.au.bootps > 255.255.255.255.bootpc: xid:0x66009a6e flags:0x8000 Y:202-63-67-36.ip4.superloop.au S:172.21.116.42 ether dc:9f:db:28:14:bf vend-rfc1048 DHCP:OFFER SM:255.255.254.0 DG:202-63-66-1.ip4.superloop.au NS:resolv1.home.superloop.com,119-40-106-36.ip4.superloop.au NTP:ntp.superloop.com LT:600 SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0] 22:46:43.768051 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xfe3d764f vend-rfc1048 DHCP:REQUEST HN:"sarah" CID:1.220.159.219.40.20.191 PR:SM+DG+NS+HN+DN+BR+119+121 RQ:202-63-67-36.ip4.superloop.au SID:202-63-66-1.ip4.superloop.au [tos 0x10] 22:46:44.526556 202-63-66-1.ip4.superloop.au.bootps > 255.255.255.255.bootpc: xid:0xfe3d764f flags:0x8000 Y:202-63-67-36.ip4.superloop.au S:172.21.116.42 ether dc:9f:db:28:14:bf vend-rfc1048 DHCP:ACK SM:255.255.254.0 DG:202-63-66-1.ip4.superloop.au NS:resolv1.home.superloop.com,119-40-106-36.ip4.superloop.au NTP:ntp.superloop.com LT:600 SID:202-63-66-1.ip4.superloop.au CID:1.220.159.219.40.20.191 [tos 0xc0]