SV_RFC2181_4_2_port_selection - Port number selection
Verify that a NUT selects the correct Port number.
- Replies to all queries must be directed to the port from which they
were sent. When queries are received via TCP this is an inherent
part of the transport protocol. For queries received by UDP the
server must take note of the source port and use that as the
destination port in the response. Replies should always be sent from
the port to which they were directed. Except in extraordinary
circumstances, this will be the well known port assigned for DNS
queries.
Authoritative Server
SV_RFC2181_4_2_port_selection.seq [-tooloption ...]: KOI tool option
See also DNSConfig.pm
This test sequence is following.
DNS Client1 (TN) DNS Server1 (NUT)
| |
|------------------------------------->|
| 1. Send standard query |
| *Source Port=2000 |
| QNAME=A.example.com |
| QTYPE=A |
| |
|<-------------------------------------|
| 2. Standard query response |
| *Destination Port=2000 |
| A=192.168.1.10 |
| |
|------------------------------------->|
| 3. Send standard query |
| *Source Port=2001 |
| QNAME=A.example.com |
| QTYPE=A |
| |
|<-------------------------------------|
| 4. Standard query response |
| *Destination Port=2001 |
| A=192.168.1.10 |
| |
| |
v v
1. TN send standard query QNAME=A.example.com, QTYPE=A to NUT that source port=2000.
2. NUT reply query response w/ A=192.168.1.10 to TN that destination port=2000 (Judgment *2)
3. TN send standard query QNAME=A.example.com, QTYPE=A to NUT that source port=2001.
4. NUT reply query response w/ A=192.168.1.10 to TN that destination port=2001 (Judgment *4)
- Packet Description
- 1st packet.
|
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
CL1_NETZ |
| Destination Address |
NUT_NETZ |
| UDP Header |
Src Port |
2000 |
| Dst Port |
53 |
| DNS Header |
ID |
0x1000 |
| QR |
0 |
| OPCODE |
0 |
| AA |
0 |
| TC |
0 |
| RD |
1 |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
A.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
- 2nd packet.
|
Standard query response from DNS Server1 (NUT) to Client1 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
CL1_NETZ |
| UDP Header |
Src Port |
53 |
| Dst Port |
2000 |
| DNS Header |
ID |
0x1000 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| RA |
ANY |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
1 |
| DNS Question section |
QNAME |
A.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
A.example.com (Pointer 0xC00C) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.10 |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00E) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
6 |
| NSDNAME |
NS1.example.com (NS1 + Pointer 0xC00E) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
- 3rd packet.
|
Standard query from DNS Client1 (TN) to Server1 (NUT)
|
| IP Header |
Source Address |
CL1_NET |
| Destination Address |
NUT_NETZ |
| UDP Header |
Src Port |
2001 |
| Dst Port |
53 |
| DNS Header |
ID |
0x1001 |
| QR |
0 |
| OPCODE |
0 |
| AA |
0 |
| TC |
0 |
| RD |
1 |
| RA |
0 |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
0 |
| NSCOUNT |
0 |
| ARCOUNT |
0 |
| DNS Question section |
QNAME |
A.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
- 4th packet.
|
Standard query response from DNS Server1 (NUT) to Client1 (TN)
|
| IP Header |
Source Address |
NUT_NETZ |
| Destination Address |
CL1_NETZ |
| UDP Header |
Src Port |
53 |
| Dst Port |
2001 |
| DNS Header |
ID |
0x1001 |
| QR |
1 |
| OPCODE |
0 |
| AA |
1 |
| TC |
0 |
| RD |
1 |
| RA |
ANY |
| Z |
0 |
| RCODE |
0 |
| QDCOUNT |
1 |
| ANCOUNT |
1 |
| NSCOUNT |
1 |
| ARCOUNT |
1 |
| DNS Question section |
QNAME |
A.example.com |
| QTYPE |
A (0x0001) |
| QCLASS |
IN (0x0001) |
| DNS Answer section |
NAME |
A.example.com (Pointer 0xC00C) |
| TYPE |
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.1.10 |
| DNS Authority section |
NAME |
example.com (Pointer 0xC00E) |
| TYPE |
NS (0x0002) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
6 |
| NSDNAME |
NS1.example.com (NS1 + Pointer 0xC00E) |
| DNS Additional section |
NAME |
NS1.example.com (Pointer 0xC03B) |
TYPE
|
A (0x0001) |
| CLASS |
IN (0x0001) |
| TTL |
1 day (86400) |
| RDLENGTH |
4 |
| ADDRESS |
192.168.0.10 |
- Exp.
| NUT_NETZ |
DNS Server1's (NUT) Net-z address |
| CL1_NETZ |
DNS Client1's (TN) Net-z address |
2. Received standard query response w/ A=192.168.1.10 that destination port=2000.
3. Received standard query response w/ A=192.168.1.10 that destination port=2001.
None
RFC2181 Clarifications to the DNS Specification
4.2. Port Number Selection