diff options
author | Adam <Adam@anope.org> | 2012-10-22 00:54:30 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-10-22 00:54:30 -0400 |
commit | 0b9db15efc322336ddb08671ce68a3d45fb22520 (patch) | |
tree | 2e8149f370c63f08f2f197eaa92b1b36e857b0e9 /data/operserv.example.conf | |
parent | d5b2f9cfa78ed176ffe1d9f2923799fdd37217a5 (diff) |
Add os_dns, a way to control your DNS zone via services
Diffstat (limited to 'data/operserv.example.conf')
-rw-r--r-- | data/operserv.example.conf | 69 |
1 files changed, 63 insertions, 6 deletions
diff --git a/data/operserv.example.conf b/data/operserv.example.conf index 4988ad33c..167d13c04 100644 --- a/data/operserv.example.conf +++ b/data/operserv.example.conf @@ -355,15 +355,61 @@ defcon } /* - * os_list + * os_dns * - * Provides the commands operserv/chanlist and operserv/userlist. + * Provides the command operserv/dns. * - * Used to list and search the channels and users currently on the network. + * This module allows controlling a DNS zone. This is useful for + * controlling what servers users are placed on for load balancing, + * and to automatically remove split servers. + * + * To use this module you must set a nameserver record for services + * so that DNS queries go to services. + * + * We recommend you use something similar to BIND's query forwarding + * ability to hide service's IP, provide query caching, and provide + * better fault tolerance. To do this, configure BIND similar to: + * + * options { + * dnssec-enable no; + * dnssec-validation no; + * }; + * zone "irc.example.com" IN { + * type forward; + * forward first; + * forwarders { 10.0.0.1 port 5353; }; # Where this is the IP and dns:port of services + * }; + * + * And then set a NS record for irc.example.com. to BIND. */ -module { name = "os_list" } -command { service = "OperServ"; name = "CHANLIST"; command = "operserv/chanlist"; } -command { service = "OperServ"; name = "USERLIST"; command = "operserv/userlist"; } +#module { name = "os_dns" } +#command { service = "OperServ"; name = "DNS"; command = "operserv/dns"; permission = "operserv/dns"; } +os_dns +{ + /* TTL for records. This should be very low if your records change often. */ + ttl = 1m + + /* If a server drops this many users the server is automatically removed from the DNS zone. + * This directive is optional. + */ + user_drop_mark = 50 + + /* The time used for user_drop_mark */ + user_drop_time = 1m + + /* When a server is removed from the zone for dropping users, it is readded after this time. + * This directive is optional. + */ + user_drop_readd_time = 5m + + /* If set, if a server splits it is automatically removed from the zone */ + remove_split_servers = yes + + /* If set, when a server connects to the network it will be automatically added to + * the zone if it is a known server. + */ + readd_connected_servers = no +} /* * os_config @@ -426,6 +472,17 @@ module { name = "os_kill" } command { service = "OperServ"; name = "KILL"; command = "operserv/kill"; permission = "operserv/kill"; } /* + * os_list + * + * Provides the commands operserv/chanlist and operserv/userlist. + * + * Used to list and search the channels and users currently on the network. + */ +module { name = "os_list" } +command { service = "OperServ"; name = "CHANLIST"; command = "operserv/chanlist"; } +command { service = "OperServ"; name = "USERLIST"; command = "operserv/userlist"; } + +/* * os_login * * Provides the commands operserv/login and operserv/logout. |