From: atm on
Hi

My QNX box is running a ISC DHCP server. From Ethereal the Linux box is
sending a DHCP Discover, QNX is sending a DHCP Offer but Linux is not
recognising it.

It looks like the destination and source in the Ethernet II are the
same: (but I have not worked out how to correct this:

<field name="eth.dst" showname="Destination: 192.168.0.30
(00:50:c2:3a:60:91)" size="6" pos="0" show="00:50:c2:3a:60:91"
value="0050c23a6091"/>
<field name="eth.src" showname="Source: 192.168.0.30
(00:50:c2:3a:60:91)" size="6" pos="6" show="00:50:c2:3a:60:91"
value="0050c23a6091"/>
<field name="eth.addr" showname="Source or Destination Address:
192.168.0.30 (00:50:c2:3a:60:91)" hide="yes" size="6" pos="0"
show="00:50:c2:3a:60:91" value="0050c23a6091"/>
<field name="eth.addr" showname="Source or Destination Address:
192.168.0.30 (00:50:c2:3a:60:91)" hide="yes" size="6" pos="6"
show="00:50:c2:3a:60:91" value="0050c23a6091"/>

dhcpd.conf =
default-lease-time 6000;
max-lease-time 7200;

ddns-update-style none;

option domain-name "impedimed.com";
option domain-name-servers 192.168.0.30;

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.40 192.168.0.250;
option subnet-mask 255.255.255.0;
option routers 192.168.0.30;
always-broadcast on;
always-reply-rfc1048 on;
}


<packet>
<proto name="geninfo" pos="0" showname="General information"
size="342">
<field name="num" pos="0" show="3" showname="Number" value="3"
size="342"/>
<field name="len" pos="0" show="342" showname="Packet Length"
value="156" size="342"/>
<field name="caplen" pos="0" show="342" showname="Captured Length"
value="156" size="342"/>
<field name="timestamp" pos="0" show="Jan 16, 2006
11:18:43.790792000" showname="Captured Time"
value="1137370723.790792000" size="342"/>
</proto>
<proto name="frame" showname="Frame 3 (342 bytes on wire, 342 bytes
captured)" size="342" pos="0">
<field name="frame.marked" showname="Frame is marked: False"
hide="yes" size="0" pos="0" show="0"/>
<field name="frame.time" showname="Arrival Time: Jan 16, 2006
11:18:43.790792000" size="0" pos="0" show="Jan 16, 2006
11:18:43.790792000"/>
<field name="frame.time_delta" showname="Time delta from previous
packet: 0.110375000 seconds" size="0" pos="0" show="0.110375000"/>
<field name="frame.time_relative" showname="Time since reference or
first frame: 0.114801000 seconds" size="0" pos="0" show="0.114801000"/>
<field name="frame.number" showname="Frame Number: 3" size="0"
pos="0" show="3"/>
<field name="frame.pkt_len" showname="Packet Length: 342 bytes"
size="0" pos="0" show="342"/>
<field name="frame.cap_len" showname="Capture Length: 342 bytes"
size="0" pos="0" show="342"/>
<field name="frame.protocols" showname="Protocols in frame:
eth:ip:udp:bootp" size="0" pos="0" show="eth:ip:udp:bootp"/>
</proto>
<proto name="eth" showname="Ethernet II, Src: 192.168.0.30
(00:50:c2:3a:60:91), Dst: 192.168.0.30 (00:50:c2:3a:60:91)" size="14"
pos="0">
<field name="eth.dst" showname="Destination: 192.168.0.30
(00:50:c2:3a:60:91)" size="6" pos="0" show="00:50:c2:3a:60:91"
value="0050c23a6091"/>
<field name="eth.src" showname="Source: 192.168.0.30
(00:50:c2:3a:60:91)" size="6" pos="6" show="00:50:c2:3a:60:91"
value="0050c23a6091"/>
<field name="eth.addr" showname="Source or Destination Address:
192.168.0.30 (00:50:c2:3a:60:91)" hide="yes" size="6" pos="0"
show="00:50:c2:3a:60:91" value="0050c23a6091"/>
<field name="eth.addr" showname="Source or Destination Address:
192.168.0.30 (00:50:c2:3a:60:91)" hide="yes" size="6" pos="6"
show="00:50:c2:3a:60:91" value="0050c23a6091"/>
<field name="eth.type" showname="Type: IP (0x0800)" size="2"
pos="12" show="0x0800" value="0800"/>
</proto>
<proto name="ip" showname="Internet Protocol, Src: 192.168.0.30
(192.168.0.30), Dst: 255.255.255.255 (255.255.255.255)" size="20"
pos="14">
<field name="ip.version" showname="Version: 4" size="1" pos="14"
show="4" value="45"/>
<field name="ip.hdr_len" showname="Header length: 20 bytes"
size="1" pos="14" show="20" value="45"/>
<field name="ip.dsfield" showname="Differentiated Services Field:
0x00 (DSCP 0x00: Default; ECN: 0x00)" size="1" pos="15" show="0"
value="00">
<field name="ip.dsfield.dscp" showname="0000 00.. =
Differentiated Services Codepoint: Default (0x00)" size="1" pos="15"
show="0x00" value="0" unmaskedvalue="00"/>
<field name="ip.dsfield.ect" showname=".... ..0. = ECN-Capable
Transport (ECT): 0" size="1" pos="15" show="0" value="0"
unmaskedvalue="00"/>
<field name="ip.dsfield.ce" showname=".... ...0 = ECN-CE: 0"
size="1" pos="15" show="0" value="0" unmaskedvalue="00"/>
</field>
<field name="ip.len" showname="Total Length: 328" size="2" pos="16"
show="328" value="0148"/>
<field name="ip.id" showname="Identification: 0x02c9 (713)"
size="2" pos="18" show="0x02c9" value="02c9"/>
<field name="ip.flags" showname="Flags: 0x00" size="1" pos="20"
show="0x00" value="00">
<field name="ip.flags.rb" showname="0... = Reserved bit: Not set"
size="1" pos="20" show="0" value="0" unmaskedvalue="00"/>
<field name="ip.flags.df" showname=".0.. = Don&apos;t fragment:
Not set" size="1" pos="20" show="0" value="0" unmaskedvalue="00"/>
<field name="ip.flags.mf" showname="..0. = More fragments: Not
set" size="1" pos="20" show="0" value="0" unmaskedvalue="00"/>
</field>
<field name="ip.frag_offset" showname="Fragment offset: 0" size="2"
pos="20" show="0" value="0000"/>
<field name="ip.ttl" showname="Time to live: 64" size="1" pos="22"
show="64" value="40"/>
<field name="ip.proto" showname="Protocol: UDP (0x11)" size="1"
pos="23" show="0x11" value="11"/>
<field name="ip.checksum" showname="Header checksum: 0xb616
[correct]" size="2" pos="24" show="0xb616" value="b616">
<field name="ip.checksum_good" showname="Good: True" size="2"
pos="24" show="1" value="b616"/>
<field name="ip.checksum_bad" showname="Bad : False" size="2"
pos="24" show="0" value="b616"/>
</field>
<field name="ip.src" showname="Source: 192.168.0.30 (192.168.0.30)"
size="4" pos="26" show="192.168.0.30" value="c0a8001e"/>
<field name="ip.addr" showname="Source or Destination Address:
192.168.0.30 (192.168.0.30)" hide="yes" size="4" pos="26"
show="192.168.0.30" value="c0a8001e"/>
<field name="ip.src_host" showname="Source Host: 192.168.0.30"
hide="yes" size="4" pos="26" show="192.168.0.30" value="c0a8001e"/>
<field name="ip.host" showname="Source or Destination Host:
192.168.0.30" hide="yes" size="4" pos="26" show="192.168.0.30"
value="c0a8001e"/>
<field name="ip.dst" showname="Destination: 255.255.255.255
(255.255.255.255)" size="4" pos="30" show="255.255.255.255"
value="ffffffff"/>
<field name="ip.addr" showname="Source or Destination Address:
255.255.255.255 (255.255.255.255)" hide="yes" size="4" pos="30"
show="255.255.255.255" value="ffffffff"/>
<field name="ip.dst_host" showname="Destination Host:
255.255.255.255" hide="yes" size="4" pos="30" show="255.255.255.255"
value="ffffffff"/>
<field name="ip.host" showname="Source or Destination Host:
255.255.255.255" hide="yes" size="4" pos="30" show="255.255.255.255"
value="ffffffff"/>
</proto>
<proto name="udp" showname="User Datagram Protocol, Src Port: bootps
(67), Dst Port: bootpc (68)" size="8" pos="34">
<field name="udp.srcport" showname="Source port: bootps (67)"
size="2" pos="34" show="67" value="0043"/>
<field name="udp.dstport" showname="Destination port: bootpc (68)"
size="2" pos="36" show="68" value="0044"/>
<field name="udp.port" showname="Source or Destination Port: 67"
hide="yes" size="2" pos="34" show="67" value="0043"/>
<field name="udp.port" showname="Source or Destination Port: 68"
hide="yes" size="2" pos="36" show="68" value="0044"/>
<field name="udp.length" showname="Length: 308" size="2" pos="38"
show="308" value="0134"/>
<field name="udp.checksum_coverage" showname="Checksum coverage:
308" hide="yes" size="0" pos="38" show="308"/>
<field name="udp.checksum" showname="Checksum: 0x45bb [correct]"
size="2" pos="40" show="0x45bb" value="45bb"/>
</proto>
<proto name="bootp" showname="Bootstrap Protocol" size="300"
pos="42">
<field name="bootp.type" showname="Message type: Boot Reply (2)"
size="1" pos="42" show="2" value="02"/>
<field name="bootp.hw.type" showname="Hardware type: Ethernet"
size="1" pos="43" show="0x01" value="01"/>
<field name="bootp.hw.len" showname="Hardware address length: 6"
size="1" pos="44" show="6" value="06"/>
<field name="bootp.hops" showname="Hops: 0" size="1" pos="45"
show="0" value="00"/>
<field name="bootp.id" showname="Transaction ID: 0x30f1d6a7"
size="4" pos="46" show="0x30f1d6a7" value="30f1d6a7"/>
<field name="bootp.secs" showname="Seconds elapsed: 0" size="2"
pos="50" show="0" value="0000"/>
<field name="bootp.flags" showname="Bootp flags: 0x0000 (Unicast)"
size="2" pos="52" show="0x0000" value="0000">
<field name="bootp.flags.bc" showname="0... .... .... .... =
Broadcast flag: Unicast" size="2" pos="52" show="0" value="0"
unmaskedvalue="0000"/>
<field name="bootp.flags.reserved" showname=".000 0000 0000 0000
= Reserved flags: 0x0000" size="2" pos="52" show="0x0000" value="0"
unmaskedvalue="0000"/>
</field>
<field name="bootp.ip.client" showname="Client IP address: 0.0.0.0
(0.0.0.0)" size="4" pos="54" show="0.0.0.0" value="00000000"/>
<field name="bootp.ip.your" showname="Your (client) IP address:
192.168.0.250 (192.168.0.250)" size="4" pos="58" show="192.168.0.250"
value="c0a800fa"/>
<field name="bootp.ip.server" showname="Next server IP address:
0.0.0.0 (0.0.0.0)" size="4" pos="62" show="0.0.0.0" value="00000000"/>
<field name="bootp.ip.relay" showname="Relay agent IP address:
0.0.0.0 (0.0.0.0)" size="4" pos="66" show="0.0.0.0" value="00000000"/>
<field name="bootp.hw.mac_addr" showname="Client MAC address:
Vmware_58:a0:1a (00:0c:29:58:a0:1a)" size="6" pos="70"
show="00:0c:29:58:a0:1a" value="000c2958a01a"/>
<field name="bootp.server" showname="Server host name not given"
size="64" pos="86" show=""
value="00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
<field name="bootp.file" showname="Boot file name not given"
size="128" pos="150" show=""
value="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
<field name="bootp.cookie" showname="Magic cookie: (OK)" size="4"
pos="278" show="99.130.83.99" value="63825363"/>
<field name="bootp.dhcp" showname="Frame is DHCP: True" hide="yes"
size="0" pos="42" show="1"/>
<field show="Option 53: DHCP Message Type = DHCP Offer" size="3"
pos="282" value="350102"/>
<field show="Option 54: Server Identifier = 192.168.0.30" size="6"
pos="285" value="3604c0a8001e"/>
<field show="Option 51: IP Address Lease Time = 10 minutes"
size="6" pos="291" value="330400000258"/>
<field show="Option 1: Subnet Mask = 255.255.255.0" size="6"
pos="297" value="0104ffffff00"/>
<field show="Option 58: Renewal Time Value = 5 minutes" size="6"
pos="303" value="3a040000012c"/>
<field show="Option 59: Rebinding Time Value = 8 minutes, 45
seconds" size="6" pos="309" value="3b040000020d"/>
<field show="Option 46: NetBIOS over TCP/IP Node Type = H-node"
size="3" pos="315" value="2e0108"/>
<field show="End Option" size="1" pos="318" value="ff"/>
<field show="Padding" size="23" pos="319"
value="0000000000000000000000000000000000000000000000"/>
</proto>
</packet>

From: Tauno Voipio on
atm wrote:
> Hi
>
> My QNX box is running a ISC DHCP server. From Ethereal the Linux box is
> sending a DHCP Discover, QNX is sending a DHCP Offer but Linux is not
> recognising it.
>
> It looks like the destination and source in the Ethernet II are the
> same: (but I have not worked out how to correct this:
>
> <field name="eth.dst" showname="Destination: 192.168.0.30
> (00:50:c2:3a:60:91)" size="6" pos="0" show="00:50:c2:3a:60:91"
> value="0050c23a6091"/>

> <field name="eth.src" showname="Source: 192.168.0.30
> (00:50:c2:3a:60:91)" size="6" pos="6" show="00:50:c2:3a:60:91"
> value="0050c23a6091"/>

Note that the fields are from offsets 0 and 6 in the packet.

It seems that the server (or whoever is sending) messes up
the packets. Is the packet sent by the QNX box?

A reminder of an Ethernet frame:

offset contents
------ --------
0 destination MAC
6 source MAC
12 type / length
14 payload

For further diagnosis grab the same packets with tcpdump
in the raw hex mode, including the Ethernet headers. Verify
that the MAC address (0050c23a6091) is there twice at the
very start of the packet.

--

Tauno Voipio
tauno voipio (at) iki fi