Question

Leslie Rhorer lesrhorer at siliconventures.net
Fri Jun 3 09:03:00 UTC 2022


     Well, I found one error left over from when this was a /24 
network.  The range definition on the secondary server was from 
192.168.1.220 to 192.168.1.240, instead of 192.168.0.200 to 
192.168.0.240.  You can see the error in the backup.conf.gz file. I am 
not sure what issues this would cause, other than of course serving 
addresses in a range I want to change.

On 6/3/2022 2:45 AM, Glenn Satchell wrote:
> Hi Leslie,
>
> Ok I can see a packet flow in that pcap file between the two servers. 
> It shows a TCP packet from 192.168.1.50 port 46869 with the SYN [S] 
> flag to 192.168.1.51 port 647 - so that's trying to open the connection.
> 192.168.1.51 responds with RST [R] flag, so 192.168.50 tries again, 
> and on it goes. So looks like 192.168.51 is not listening on that 
> port. There's no failover connection being established. So we have 
> that to sort out first.
>
> $ tcpdump -r secondary.pcap -v
> reading from file secondary.pcap, link-type EN10MB (Ethernet)
> 16:23:34.924575 IP (tos 0x0, ttl 64, id 46213, offset 0, flags [DF], 
> proto TCP (6), length 60)
>     192.168.1.50.46869 > 192.168.1.51.647: Flags [S], cksum 0xdfce 
> (correct), seq 4009562500, win 64240, options [mss 1460,sackOK,TS val 
> 3809692760 ecr 0,nop,wscale 7], length 0
> 16:23:34.924599 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto 
> TCP (6), length 40)
>     192.168.1.51.647 > 192.168.1.50.46869: Flags [R.], cksum 0x71fb 
> (correct), seq 0, ack 4009562501, win 0, length 0
> 16:23:39.925032 IP (tos 0x0, ttl 64, id 20478, offset 0, flags [DF], 
> proto TCP (6), length 60)
>     192.168.1.50.57529 > 192.168.1.51.647: Flags [S], cksum 0x995f 
> (correct), seq 2790876011, win 64240, options [mss 1460,sackOK,TS val 
> 3809697760 ecr 0,nop,wscale 7], length 0
> 16:23:39.925054 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto 
> TCP (6), length 40)
>     192.168.1.51.647 > 192.168.1.50.57529: Flags [R.], cksum 0x3f14 
> (correct), seq 0, ack 2790876012, win 0, length 0
>
> When I look at it with wireshark it's the same but perhaps shown a 
> little more clearly
>
> 1    0.000000    192.168.1.50    192.168.1.51    TCP    74 46869 → 647 
> [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=3809692760 
> TSecr=0 WS=128
> 2    0.000024    192.168.1.51    192.168.1.50    TCP    54    647 → 
> 46869 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
> 3    5.000457    192.168.1.50    192.168.1.51    TCP    74 57529 → 647 
> [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=3809697760 
> TSecr=0 WS=128
> 4    5.000479    192.168.1.51    192.168.1.50    TCP    54    647 → 
> 57529 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
> 5    10.000924    192.168.1.50    192.168.1.51    TCP    74 51935 → 
> 647 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=3809702760 
> TSecr=0 WS=128
> 6    10.000945    192.168.1.51    192.168.1.50    TCP    54    647 → 
> 51935 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
> 7    15.001390    192.168.1.50    192.168.1.51    TCP    74 57497 → 
> 647 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=3809707761 
> TSecr=0 WS=128
>
> Can you please post the failover peer definitions for both dhcp 
> servers, I think we need to check that they make sense. Second the 
> interface configs for that interface on each server, output from "ip 
> addr show ethX" or whatever the correct interface name is please. We 
> need to be sure the address, netmask, etc, match up.
>
> So that packet capture is very useful. It's pin pointed an issue 
> straight away.
>
> regards,
> Glenn
>
> On 2022-06-03 16:37, Leslie Rhorer wrote:
>>     I am seeing a listening connection on the primary server on 647,
>> but nothing on the secondary.  I have included the tcdump from the
>> secondary on port 647 as a gz file.  'Still waiting on the dumps on
>> ports 67 and 68 (it's taking a while for 100 packets to pass)
>>
>> On 6/3/2022 1:03 AM, Glenn Satchell wrote:
>>> Hi Leslie,
>>>
>>> I know about capturing packets on a 10G interface :) many gigabytes 
>>> in a few seconds...
>>>
>>> So you need to use filters when capturing, eg with tcpdump
>>>
>>>   tcpdump -i eth0 host <other dhcp server IP or name> and tcp port 647
>>>
>>> will only capture the failover traffic on eth0 directed to or from 
>>> the other server, and ignore the rest.
>>>
>>>   tcpdump udp and port 68 or port 67
>>>
>>> will capture dhcp packets.
>>>
>>> You can add options like "-c 100" to stop after 100 packets are 
>>> captured. "-w filename" will capture to a file and you can copy this 
>>> file to your desktop and use wireshark to read it.
>>>
>>> With failover, it's better to restart one dhcp server, wait for it 
>>> to sync, then restart the other one. If you shut down both and then 
>>> start them, then they come up in recover mode.
>>>
>>> Also looking at failover connections:
>>>
>>>   netstat -ant | grep 647
>>>
>>> should show an established connection between the two servers.
>>>
>>> regards,
>>> Glenn
>>>
>>> On 2022-06-03 15:39, Leslie Rhorer wrote:
>>>
>>>> On 6/2/2022 11:30 PM, Gregory Sloop wrote:
>>>>
>>>>> Are you seeing balance messages every hour as the two re-balance 
>>>>> the available lease pool?
>>>> No, I don't think so.  It has only been a couple of hours since I 
>>>> have had both online, however.
>>>>
>>>>> You say they are both handling leases properly, but how do you 
>>>>> know this? (That a machine gets a lease from somewhere is not good 
>>>>> evidence.)
>>>>
>>>> Do you mean because some other machine / device could be issuing 
>>>> leases?  No.  In that case,
>>>>
>>>> 1. Killing both servers would not take down any DHCP clients. If 
>>>> both servers are shut down, DHCP clients start failing in about an 
>>>> hour, until they are all dead.
>>>>
>>>> 2. DHCP responses on the LAN stop completely the moment both 
>>>> servers are taken down.
>>>>
>>>> 3. No other machine would know anything about the list of 
>>>> dynamically assigned fixed IP addresses in dhcpd.static. None of 
>>>> the addresses of any of the clients ever change.
>>>>
>>>> 4. Whenever one server is shut down, the other responds with tons 
>>>> of responses in  the log.
>>>>
>>>>> A packet capture in front of the secondary might be helpful to see 
>>>>> what traffic is passing - both to the peer and to clients.
>>>> While not impossible, that is a bit easier said than done. The 
>>>> links between the servers are 10G.  I can look into it.
>>>>
>>>>> (I hate making captures, at least as much as the next person, but 
>>>>> dang if they don't, nearly always, show something that was 
>>>>> different than I assumed. So, I've just gotten a lot less averse 
>>>>> to getting captures. Yeah, they'll probably take me extra time to 
>>>>> setup and get and paw through, [all when I could be fixin' stuff!] 
>>>>> but they can save hours or days of fruitless searching for a fix, 
>>>>> when I don't even really *know* what's wrong yet. Don't know about 
>>>>> anyone else, but fixing problems gets a whole lot easier when I 
>>>>> actually know what's wrong, or at least have a good idea what's 
>>>>> going on. :)
>>>>
>>>> Agreed, although when an interface is chunking away at over 10,000 
>>>> packets per second...
>>>>
>>>> If something doesn't break loose, I will see about loading Wireshark.
-------------- next part --------------
3: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 08:62:66:a1:40:93 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.50/23 brd 192.168.1.255 scope global noprefixroute enp6s0
       valid_lft forever preferred_lft forever
    inet6 fe80::a62:66ff:fea1:4093/64 scope link 
       valid_lft forever preferred_lft forever
-------------- next part --------------
2: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 50:46:5d:65:15:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.51/23 brd 192.168.1.255 scope global noprefixroute enp11s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5246:5dff:fe65:159c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
-------------- next part --------------
A non-text attachment was scrubbed...
Name: backup.conf.gz
Type: application/gzip
Size: 1719 bytes
Desc: not available
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20220603/6563d6dc/attachment.gz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: primary.conf.gz
Type: application/gzip
Size: 1718 bytes
Desc: not available
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20220603/6563d6dc/attachment-0001.gz>


More information about the dhcp-users mailing list