Subject: Notes on Makek Shabous's Implementation of IXFR

From: Kevin Dunlap <[email-masked]>
Date: Sat, 5 Dec 1998 04:38:18 -0800

I can tell you that Makel Shabou's implementation of IXFR does not
follow RFC 1995 protocol specification for an IXFR request and will not
interoperate with any IXFR implementation that follows RFC 1995.
When this implementation's named-xfer sends the Initial IXFR packet
request, the SOA RR in the packet is not in 
SOA RR format.  It sends a packet with an SOA RR type that only contains
the serial number as the first byte after the Class. 
This portion of an SOA RR should be the ttl for the SOA and there should
be more data that is not there.
This implementation is also expecting to receive these deformed SOA type
RR

Here is a DNS packet dump of what is being sent.

  DNS: 0xE201:Std Qry for jammer.top. of type Unknown Type on class INET
addr.
      DNS: TCP Length = 46 (0x2E)
      DNS: Query Identifier = 57857 (0xE201)
      DNS: DNS Flags = Query, OpCode - Std Qry, RD Bits Set, RCode - No
error
          DNS: 0............... = Query
          DNS: .0000........... = Standard Query
          DNS: .....0.......... = Server not authority for domain
          DNS: ......0......... = Message complete
          DNS: .......1........ = Recursive query desired
          DNS: ........0....... = No recursive queries
          DNS: .........000.... = Reserved
          DNS: ............0000 = No error
      DNS: Question Entry Count = 1 (0x1)
      DNS: Answer Entry Count = 0 (0x0)
      DNS: Name Server Count = 1 (0x1)
      DNS: Additional Records Count = 0 (0x0)
      DNS: Question Section: jammer.top. of type Unknown Type on class
INET addr.
          DNS: Question Name: jammer.top.
          DNS: Question Type = 0x00FB                      <----- this
is IANA assigned type for IXFR ( decimal 251 )
          DNS: Question Class = Internet address class
      DNS: Authority Section: jammer.top. of type SOA on class Unknown
Class
          DNS: Resource Name: jammer.top.
          DNS: Resource Type = Start of zone of authority
          DNS: Resource Class = 0x0000
          DNS: Time To Live = 11877898 (0xB53E0A)
<------------------------------ NOTE: nothing more after the ttl in SOA

00000:  00 80 AD 17 68 5C 08 00 20 9C 85 C0 08 00 45 00   ....h\..
.....E.
00010:  00 58 B3 3D 40 00 FF 06 F6 B1 CC 1D 1C C6 CC 1D
.X.=@...........
00020:  1C AF 81 60 00 35 91 2F 55 CB 00 06 73 E1 50 18
...`.5./U...s.P.
00030:  22 38 A2 F3 00 00 00 2E E2 01 01 00 00 01 00 00
"8..............
00040:  00 01 00 00 06 6A 61 6D 6D 65 72 03 74 6F 70 00
.....jammer.top.
00050:  00 FB 00 01 06 6A 61 6D 6D 65 72 03 74 6F 70 00
.....jammer.top.
00060:  00 06 00 00 00 B5                                 ......
> -----
>
>***********************************************************************
>That is all that is sent, where is the rest of the packet?
>
>Here is a packet dump of what should be sent:
>
  DNS: 0xB6C1:Std Qry for jammer.top. of type Unknown Type on class INET
addr.
      DNS: TCP Length = 72 (0x48)
      DNS: Query Identifier = 46785 (0xB6C1)
      DNS: DNS Flags = Query, OpCode - Std Qry, RCode - No error
          DNS: 0............... = Query
          DNS: .0000........... = Standard Query
          DNS: .....0.......... = Server not authority for domain
          DNS: ......0......... = Message complete
          DNS: .......0........ = Iterative query desired
          DNS: ........0....... = No recursive queries
          DNS: .........000.... = Reserved
          DNS: ............0000 = No error
      DNS: Question Entry Count = 1 (0x1)
      DNS: Answer Entry Count = 0 (0x0)
      DNS: Name Server Count = 1 (0x1)
      DNS: Additional Records Count = 0 (0x0)
      DNS: Question Section: jammer.top. of type Unknown Type on class
INET addr.
          DNS: Question Name: jammer.top.
          DNS: Question Type = 0x00FB
          DNS: Question Class = Internet address class
      DNS: Authority Section: jammer.top. of type SOA on class INET
addr.
          DNS: Resource Name: jammer.top.
          DNS: Resource Type = Start of zone of authority
          DNS: Resource Class = Internet address class
          DNS: Time To Live = 0 (0x0)
     <----- NOTE: there are more fields after the TTL in an SOA RR
          DNS: Resource Data Length = 22 (0x16)
          DNS: Primary Name Server: .
          DNS: Responsible Authorative Mailbox: .
          DNS: Version number = 184 (0xB8)
          DNS: Refresh Interval = 57005 (0xDEAD)
          DNS: Retry interval = 48879 (0xBEEF)
          DNS: Expiration Limit = 43981 (0xABCD)
          DNS: Minimum TTL = 6006 (0x1776)

00000:  00 80 AD 17 68 5C 08 00 20 9C 85 C0 08 00 45 00   ....h\..
.....E.
00010:  00 72 10 76 40 00 FF 06 99 5F CC 1D 1C C6 CC 1D
.r.v@...._......
00020:  1C AF 81 88 00 35 FC F6 9D B6 00 E2 D7 22 50 18
.....5......."P.
00030:  22 38 56 0C 00 00 00 48 B6 C1 00 00 00 01 00 00
"8V....H........
00040:  00 01 00 00 06 6A 61 6D 6D 65 72 03 74 6F 70 00
.....jammer.top.
00050:  00 FB 00 01 06 6A 61 6D 6D 65 72 03 74 6F 70 00
.....jammer.top.
00060:  00 06 00 01 00 00 00 00 00 16 00 00 00 00 00 B8
................
00070:  00 00 DE AD 00 00 BE EF 00 00 AB CD 00 00 17 76
...............v

************************************************************************
************************************************************************
************