Name

atr — format of atr component configuration

DESCRIPTION

General syntax rules of Kernun Firewall configuration files are described in configuration(7). This man page describes types, sections and items specific for the atr component configuration.

Repeatable sections/items are marked by the '*' before section/item name.

TYPES

Configuration directives have attributes of several value-types. For the basic types description, see configuration(7).

Enumeration is a list of words (names) representing integer values. Some enumerations accept both names and direct integer values; in this case, enumeration description contains values for every name (in parenthesis next to name). For other enumerations, using of names is obligatory.

The following enumerations are used in atr configuration directives:

yes-no (see common(5))

direction (see common(5))

ip-version (see common(5))

osi4-proto (see common(5))

time-cond (see common(5))

zip-mode (see common(5))

obligation (see common(5))

dbglev (see log(5))

logfail-mode (see log(5))

week-day (see time(5))

month (see time(5))

auth-method (see auth(5))

source-address-mode (see source-address(5))

transparency (see acl(5))

user-auth-spec (see acl(5))

doctype-ident-method (see acl(5))

listen-on-sock (see listen-on(5))

atr-strategy (name-usage obligatory)

Strategy for address selection.

all

All available addresses added to response.

first

First available address sent in response.

highest

Available address with highest ratio is sent in response.

cyclic

Available addresses are alternated in a circle.

random

Available addresses are alternated randomly by ratio.

atr-fallback (name-usage obligatory)

Fallback mode for no available address.

no-data

Response with NoError code and no ANSWER is returned.

first

Choose first address of requested type despite state.

ITEMS AND SECTIONS

Configuration of atr library component consists of following prototypes:


* atrmon name { ... }
    

Description:

atrmon name {


  phase ... ;
* tag ... ;
  log-debug { ... }
  log-stats { ... }
  use-resolver ... ;
  cfg-resolution ... ;
  monitoring { ... }
  nodaemon ... ;
  singleproc ... ;
  app-user ... ;
  run-block-sigalrm ... ;
  listen-on { ... }
  client-conn { ... }
* session-acl name { ... }
* request-acl name { ... }
}

        

Adaptive Transport Routing Monitor configuration.

The atrmon section is derived from proxy section prototype. For detail description of it, see application(5).

Changes to the atrmon section:

Section stats-daily is not valid.

Section stats-weekly is not valid.

Section stats-monthly is not valid.

Item idle-timeout is not valid.

Section tcpserver is not valid.

Section udpserver is not valid.

Item source-address is not valid.

Section doctype-identification is not valid.

At least one SESSION-ACL must be specified (proxy must be named in some SYSTEM.ACL.SERVICES).

At least one REQUEST-ACL must be specified.

Section monitoring (see monitoring(5))

Item user is not valid.

Item aproxy-user is not valid.

Item data used as query.

Item listen-on.non-transparent (see listen-on(5))

Element port is optional, default: 53.

Item listen-on.transparent (see listen-on(5))

Element port is optional, default: 53.

Added items & subsections:

client-conn {


  conn-timeout ... ;
  recv-timeout ... ;
  recv-bufsize ... ;
  send-timeout ... ;
  close-timeout ... ;
  send-bufsize ... ;
  log-limit ... ;
}

            

Client connection options.

The client-conn section is derived from sock-opt section prototype. For detail description of it, see netio(5).

Item recv-bufsize (see netio(5))

Element bytes is optional, default: 512.

Input buffer size must be at least 512B.

Item send-timeout (see netio(5))

Element seconds is optional, default: 60.

Item send-bufsize (see netio(5))

Output buffer size must be at least 512B.

session-acl name {


* from ... ;
* to ... ;
* time ... ;
  time-period-set { ... }
  deny ... ;
  accept ... ;
* doctype-ident-order ... ;
  rule ... ;
  idle-timeout-peer ... ;
  source-address ... ;
  neg-resp-ttl ... ;
}

            

The first level ACL decides only between acceptation and denial of the incoming datagram/connection.

The session-acl section is derived from acl-1 section prototype. For detail description of it, see acl(5).

Changes to the session-acl section:

Item user is not valid.

Item auth is not valid.

Item idle-timeout is not valid.

Item plug-to is not valid.

Added items & subsections:

neg-resp-ttl [seconds];

TTL for negative responses.

If ATR monitor sends NXDomain response code for name from known domain, it can send a SOA record in AUTHORITY section. This record causes caching of this negative answer in clients (nameservers) for the time used as the TTL of the SOA RR. This value can be defined by this item.

Setting the TTL to zero means switching this feature off. Use this with care because it can cause ineffectivity of DNS service.

seconds (type: uint32, optional, default: 60)

[End of section atrmon.session-acl description.]

request-acl name {


* from ... ;
* time ... ;
  time-period-set { ... }
* session-acl ... ;
  deny ... ;
  accept ... ;
* doctype-ident-order ... ;
  rule ... ;
  client-altq ... ;
  name ... ;
* nameserver ... ;
* address name { ... }
  strategy ... ;
  fallback ... ;
  neg-resp-ttl ... ;
}

            

The second level ACL decides how to handle particular DNS query/notify request.

The request-acl section is derived from acl-2 section prototype. For detail description of it, see acl(5).

Changes to the request-acl section:

Item server is not valid.

Item user is not valid.

Item parent-acl used as session-acl.

NAME must be specified.

At least one ADDRESS or NAMESERVER must be specified.

ADDRESS and NAMESERVER are mutually exclusive.

Added items & subsections:

client-altq altq [paltq paltq];

ALTQ queues for data sent to client.

altq (type: name of pf-queue, see pf-queue(5))

queue name

paltq paltq (type: name of pf-queue, see pf-queue(5), optional, default: NULL)

priority queue name (if set, used for TCP ACK without data)

name name;

Entry condition - Query domain name.

name (type: str)

nameserver ttl host;

NS RR data.

ttl (type: uint32)

Time-to-live value of DNS RR.

host (type: str)

address name {


  data ... ;
  ratio ... ;
* ping-group name { ... }
  down-timeout ... ;
  up-timeout ... ;
}

                

Single address for resolution and availability check.

Constraints:

Host DATA must be specified.

Items & subsections:

data ttl addr;

Data for particular answer.

ttl (type: uint32)

Time-to-live value of DNS RR.

addr (type: host)

IPv4/6 address of A/AAAA DNS RR.

ratio [prty];

Priority (relative frequency) of this address in responses.

prty (type: uint8, optional, default: 100)

ping-group name {


  timeout ... ;
* host ... ;
}

                    

Group of hosts being pinged.

Every defined group within an ADDRESS section must be alive to add this address to DNS responses.

The ping-group section is derived from ping-group section prototype. For detail description of it, see ping(5).

down-timeout [sec];

Cluster down timeout.

At least one tested IP group must be inaccessible for this time in order to switch the cluster interfaces "down".

sec (type: uint32, optional, default: 0)

Timeout in seconds, zero means immediate action.

up-timeout [sec];

Cluster up timeout.

All tested IP groups must be accessible for this time in order to switch the cluster interfaces "up".

sec (type: uint32, optional, default: 0)

Timeout in seconds, zero means immediate action.

[End of section atrmon.request-acl.address description.]

strategy [mode];

Address selection strategy.

mode (type: atr-strategy, optional, default: all)

fallback [mode];

Response policy when no address alive.

mode (type: atr-fallback, optional, default: no-data)

neg-resp-ttl [seconds];

TTL for negative responses.

If ATR monitor sends negative QUERY responses (NoError response code with no answer records or NXDomain response code), it can send a SOA record in AUTHORITY section. This record causes caching of this negative answer in clients (nameservers) for the time used as the TTL of the SOA RR. This value can be defined by this item.

Setting the TTL to zero means switching this feature off. Use this with care because it can cause ineffectivity of DNS service.

seconds (type: uint32, optional, default: 60)

[End of section atrmon.request-acl description.]

[End of section atrmon description.]

SEE ALSO

configuration(7), acl(5), application(5), auth(5), common(5), listen-on(5), log(5), monitoring(5), netio(5), pf-queue(5), ping(5), source-address(5), time(5)