README 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Introduction
  2. ============
  3. The directories in-1 to in-4 implement the following tests of the IXFR-in
  4. capability of BIND 10.
  5. in-1: Check that BIND 10 can receive IXFR in a single UDP packet.
  6. in-2: Check that BIND 10 can receive IXFR via TCP.
  7. in-3: Check that BIND 10 will request AXFR if the server does not support IXFR.
  8. in-4: Check that BIND 10 will request IXFR when its SOA refresh times out
  9. The tests are described more fully in the document:
  10. http://bind10.isc.org/wiki/IxfrSystemTests
  11. Overview
  12. ========
  13. All the tests use two nameservers:
  14. * A BIND 9 nameserver acting as the IXFR server (using the nomenclature
  15. of RFC 1995).
  16. * A BIND 10 nameserver acting at the IXFR client.
  17. In general, the tests attempt to set up the server and client independently.
  18. Communication is established between the systems by updating their
  19. configurations and a notification sent to the client. This should cause the
  20. client to request an IXFR from the server. (The exception is test 4, where the
  21. request is a result of the expiration of the SOA refresh time.)
  22. A check of zone files - or in these tests, of SOA serial number - can only
  23. reveal that a transfer has taken place. To check what has happened,
  24. e.g. whether the transfer was via UDP or whether a TCP request took place,
  25. the BIND 10 log file is searched for known message IDs.
  26. The searching of the log files for message IDs is one of the reasons that,
  27. unlike other system tests, the IXFR set of tests is broken up into separate
  28. tests that require the stopping and starting of nameservers (and tidying up of
  29. log files) between each test. Doing this means that only the existence of a
  30. particular message ID needs to be checked - there is no risk that another test
  31. produced it. The other reason is that the each IXFR test requires the
  32. nameservers to be in a specific state at the start of the test; this is easier
  33. to assure if they are not updating one another as the result of configuration
  34. settings established in the previous test.
  35. Test Files
  36. ==========
  37. Data Files
  38. ----------
  39. (All within tests/system/ixfr. Some .in files are processed to substitute
  40. for build variables in the build process to give the files listed here.)
  41. db.example.nX. These files hold the RRs for a zone for which should not
  42. fit within a single UDP packet. The files are different versions of the zone
  43. - the N-0 version (i.e. the latest version - "N" - the "-0" is present so
  44. that the files have a consistent name), N-2 etc. (See the full description
  45. of the tests for the meaning of N-2 etc.)
  46. db.example.common: A set of RRs to bulk out the zone to be larger than can
  47. be contained in a single UDP packet.
  48. db.example.n2.refresh: The N-2 version of the zone, but with a small SOA
  49. refresh time (for test 4).
  50. named_xxxx.conf: Various BIND 9 configuration files with NOTIFYs and/or
  51. IXFR enabled or disabled.
  52. Directories
  53. -----------
  54. The tests/system/ixfr directory holds the IXFR tests. Within that
  55. directory are subdirectories in-1 through in-4 for each test. And within
  56. each test directory are the directories ns1 (for the BIND 9 nameserver)
  57. and nsx2 (for the BIND 10 nameserver).
  58. Shell Scripts
  59. -------------
  60. The IXFR tests use the same framework as the rest of the system tests,
  61. being based around shell scripts. Many have a ".in" form as they require
  62. substitution of build variables before they can be used, and so are
  63. listed in configure.ac. The files specific to the IXFR tests are:
  64. tests/system/ixfr/ixfr_init.sh.in: defines environment variables and shell
  65. subroutines used in the tests. (This references system/conf.sh.in which
  66. defines most of them.)
  67. tests/system/ixfr/common_tests.sh.in: tests in-1 and in-2 are virtually
  68. identical - this holds the common code.