| 1 | #!/bin/sh
|
|---|
| 2 |
|
|---|
| 3 | # from vbox/11649
|
|---|
| 4 | # 225 23.645120 10.0.2.15 -> 10.0.2.3 DNS 78 Standard query 0x2e0d AAAA registry.npmjs.org
|
|---|
| 5 | # v-------IP header start
|
|---|
| 6 | # 0000 52 54 00 12 35 03 08 00 27 12 96 98 08 00 45 00 RT..5...'.....E.
|
|---|
| 7 | # 0010 00 40 ed cd 40 00 40 11 34 ce 0a 00 02 0f 0a 00 .@..@.@.4.......
|
|---|
| 8 | # +------------------------------------------UDP header start
|
|---|
| 9 | # v v-------------------DNS (query) start
|
|---|
| 10 | # 0020 02 03 dd 73 00 35 00 2c f0 9a 2e 0d 01 00 00 01 ...s.5.,........
|
|---|
| 11 | # 0030 00 00 00 00 00 00 08 72 65 67 69 73 74 72 79 05 .......registry.
|
|---|
| 12 | # 0040 6e 70 6d 6a 73 03 6f 72 67 00 00 1c 00 01 npmjs.org.....
|
|---|
| 13 | #
|
|---|
| 14 |
|
|---|
| 15 | #
|
|---|
| 16 | # We've made previous request more functional, we cut off UDP payload,
|
|---|
| 17 | # and let socat generate IP + UDP for us, also we patch (query id) RFC1035 4.1.1.
|
|---|
| 18 | #
|
|---|
| 19 | # So this test generate 100 requests in raw to DNS server about "registry.npmjs.org"
|
|---|
| 20 | #
|
|---|
| 21 |
|
|---|
| 22 | #off:0 1 2 3 4 5 6 7 8 9 a b c d e f
|
|---|
| 23 | for((i=10; $i < 100; i=$i + 1))
|
|---|
| 24 | do
|
|---|
| 25 | cat <<EOF | xxd -r | socat udp4-datagram:10.0.2.3:53 -
|
|---|
| 26 | 0000 2e $i 01 00 00 01 00 00 00 00 00 00 08 72 65 67
|
|---|
| 27 | 0010 69 73 74 72 79 05 6e 70 6d 6a 73 03 6f 72 67 00
|
|---|
| 28 | 0020 00 1c 00 01
|
|---|
| 29 | EOF
|
|---|
| 30 | done
|
|---|