Jump to content
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble

NickTheGreek

Administrators
  • Content Count

    452
  • Joined

  • Last visited

  • Days Won

    76
  • Feedback

    N/A

Posts posted by NickTheGreek


  1. Node.js Selector is finally out!

    CloudLinux OS Team is really excited to present the brand new Node.js Selector and we believe that this product will firmly wedge into your workflow and greatly facilitate the performance in one way or another related to Node.js.

    As JavaScript became one of the most popular programming languages, more and more customers demand Node.js hosting. With CloudLinux Node.js Selector, your customers are now able to host their JavaScript apps using Node.js 6, 8 or 9.

    Node.js is introduced with a friendly UI that unites all of the features in one place and makes it very convenient to manage.

    Watch out for the updates we post on social media so as to be the first to see the latest news about the final Node.js Selector release or any other valuable updates!

    To find out more on how to operate Node.js Selector, please read this documentation article.

    To use Node.js Selector, please install its packages by running the following command:

    yum groupinstall alt-nodejs6 alt-nodejs8 alt-nodejs9 --enablerepo=cloudlinux-updates-testing

    Also, please install LVE Manager, LVE Utils and Fusion Passenger:

    yum install lvemanager lve-utils ea-apache24-mod-alt-passenger --enablerepo=cloudlinux-updates-testing

    And we recommend to install CageFS for better security (not mandatory):

    yum install cagefs --enablerepo=cloudlinux-updates-testing

    To update new packages without Node.js Selector, please use the following command:

     

    yum update lvemanager lve-utils --enablerepo=cloudlinux-updates-testing

    Please find a full changelog below.

    Changelog:

    lvemanager-4.0-7

    • WEB-916: notification is shown now with major version number in path for entering to virtual environment;
    • LVEMAN-1246: fixed an error in pretrans scriptlet while installing LVE Manager from ISO image;
    • LVEMAN-1248: set linksafe group to files inside CageFS;
    • WEB-902: checked if an application is saved after a server error;
    • WEB-909: plugin URI is now changed after changing of application root;
    • WEB-912: removed param version in cloudlinux-selector install-modules;
    • LU-669: implemented detection of config files for users' applications;
    • LVEMAN-1245: improved activate virtual environment for Node.js;
    • LU-674: fixed an issue when yum process is not always working when cloudlinux-selector called from UI;
    • WEB-895: implemented run script window in user's interface;
    • WEB-900: implemented Npm install in User's NodeJS Selector;
    • WEB-888: linked user's NodeJS part with real requests of cloudlinux-selector;
    • WEB-876: implemented configuration files edit at user NodeJS Selector;
    • WEB-847: linked admin NodeJS part with real requests of cloudlinux-selector;
    • WEB-870: process cache status for uninstalled versions of NodeJS and link it with UI;
    • CAG-797: mounted NodeJS Selector config directory into CageFS;
    • LU-656: prevent uninstalling NodeJS version which is used by users' applications;
    • WEB-865: implemented cloudlinux-cli-user wrapper;
    • WEB-873: make execution of user's requests via CageFS enter;
    • WEB-875: implemented environment edit at user nodejs selector;
    • WEB-859: show user's command for enter to virtualenv;
    • WEB-851: implemented editing page of application for NodeJS plugin in End User UI LVEmanager (cPanel);
    • LVEMAN-1242: clean NodeJS config when removing non existing app;
    • LU-649, LU-647: added the ability to look up installed Node.js versions for user;
    • LVEMAN-1216: update node-selector.json file safely;
    • LVEMAN-1226: properly detect NodeJS application name;
    • LU-587, LU-621: implemented user's CLI for getting info about NodeJS applications;
    • LU-642: prevent change version of an application to disabled version also, prevent same thing about application creating;
    • LU-640: make cloudlinux-selector workable inside CageFS;
    • LVEMAN-1238: refactor nodeenv.py. Move set_env_vars and activate to separate scripts;
    • LU-592: implemented running script in user's NodeJS application environment;
    • LVEMAN-1229: added an ability to specify either full or major version for NodeJS;
    • LU-619: implemented initial ability to install/uninstall NodeJS version directly from cloudlinux-selector;
    • WEB-821: implemented applications list for NodeJS plugin in End User UI LVEmanager (cPanel);
    • WEB-855: improved functionality while disabling/enabling NodeJS Selector;
    • LU-618: ensured that NodeJS application is workable after changing version or modules;
    • WEB-825: prepared structure for NodeJS plugin to End User UI LVE Manager (cPanel);
    • LU-590: implemented changing properties of user's NodeJS application;
    • WEB-843: added functionality for Install, Enable or Disable NodeJS version (admin part);
    • LU-588: implemented start, restart, stop, destroy for user's NodeJS application;
    • WEB-848: some functionality related to mysql-gov is missed (return reason of restriction and ability to unrestrict all). Fixes for NodeJS branch;
    • LVEMAN-1206: implemented an ability to pass app_mode, startup_file and etc parameters to selectorctl while creating web applications;
    • LU-591: implemented installing modules for user's NodeJS application;
    • LVEMAN-1201: need to create or modify ~/.cl.selector/node-selector.json while creating user's web applications;
    • WEB-789: implemented UI for the Admin part of NodeJS plugin;
    • LVEMAN-1204: implemented caching of NodeJS modules;
    • LU-587: implemented user's CLI for getting info about NodeJS applications;
    • LU-586: implemented user's CLI for creating NodeJS application;
    • LU-602: cloudlinux-selector NodeJS: implement hiding UI icon based on config setting;
    • LU-581: initial support of NodeJS for cloudlinux-selector.

    lve-utils-3.0-5

    • LU-669: implemented detection of config files for users' applications;
    • LU-677: cloudlinux-selector install-modules do not require --version parameter now;
    • LU-666, LU-668, LU-673: display user friendly error messages cloudlinux-selector;
    • LU-672: fixed arg parser errors for --selector-status, --default-version, --supported-versions, --extensions options in cloudlinux-selector utility;
    • LU-656: prevent uninstalling NodeJS version which is used by users' applications;
    • LU-648: implemented additional commands for managing NodeJS versions;
    • LU-650: prohibit a user from using admin-only commands: "install-version" and "remove-version";
    • LU-645: refactored get_nodejs_users_info function from node_selector_lib.py and improve output;
    • LU-627: make user and domain arguments optional in cloudlinux-selector;
    • LU-587, LU-621: implemented user's CLI for getting info about NodeJS applications;
    • LVEMAN-1229: added an ability to specify either full or major version for NodeJS (part2);
    • LU-640: make cloudlinux-selector workable inside CageFS;
    • PTCLLIB-112: fixed traceback in safely_resolve_username_and_doc_root if user is absent;
    • LU-592: implemented running script in user's NodeJS application environment;
    • LU-630: updated help for getcontrolpaneluserspackages for options --list-packages;
    • LVEMAN-1229: added an ability to specify either full or major version for NodeJS;
    • LU-619: implemented initial ability to install/uninstall NodeJS version directly from cloudlinux-selector;
    • LU-624: do su to user when admin executes command from user's CLI;
    • LU-618: ensure that NodeJS application is workable after changing version or modules;
    • LU-590: implemented changing properties of user's NodeJS application;
    • LU-621: fixed json output of cloudlinux-selector's selector_enabled field according to spec;
    • LU-588: implemented start, restart, stop, destroy for user's NodeJS application;
    • LVEMAN-1206: implemented an ability to pass app_mode, startup_file and etc params to selectorctl while creating webapp;
    • LU-591: implemented installing modules for user's NodeJS application;
    • LVEMAN-1201: need to create or modify ~/.cl.selector/node-selector.json while creating user's webapp;
    • LU-587: implemented user's CLI for getting info about NodeJS applications;
    • LU-589: implemented reading/saving config files for NodeJS user's application;
    • LU-586: implemented user's CLI for creating NodeJS application;
    • LU-602: cloudlinux-selector NodeJS: implement hiding UI icon based on config setting;
    • LU-581: added initial support of NodeJS for cloudlinux-selector.

  2. Incompatible Themes

    Some of your themes are not compatible with the version you are upgrading to because they include modifications to templates and/or CSS files which this version needs to update.

    If you obtained the affected themes from a designer you should contact them to ask if a new version of the themes are available for this version. If there is, continue with the upgrade and then update the themes after. If there is not an update available, you may want to remove those themes or wait until new versions are available before proceeding.

    If you modified the affected themes yourself, you can use the links below to review your customisations. If the customisations are no longer required, you can revert them, otherwise you will need to incorporate the changes made by the version you are upgrading to. For more details on the theme changes in this version, see the Theme Differences Documentation.


  3. Good news! Version 4.3.6 of Invision Community is now available.

    This includes a security patch and we recommend you upgrade as soon as possible.

    This is a maintenance release to fix reported issues.

    Also included: 4.3.5

    Version 4.3.5 is a small maintenance update to fix issues reported since 4.3.4.


  4. http://www.brainfacts.org/

     

    The human brain is the most complex biological structure in the known universe. Its roughly 86 billion nerve cells power all of our thoughts, perceptions, memories, emotions, and actions. It’s what inspires us to build cities and compels us to gaze at the stars.

    That sense of wonder drives BrainFacts.org. We are a public information initiative of The Kavli Foundationthe Gatsby Charitable Foundation, and the Society for Neuroscience – global nonprofit organizations dedicated to advancing brain research.

    Powered by the global neuroscience community and overseen by an editorial board of leading neuroscientists from around the world, BrainFacts.org shares the stories of scientific discovery and the knowledge they reveal. Unraveling the mysteries of the brain has the potential to impact every aspect of human experience and civilization.

    Join us as we explore the universe between our ears. Because when you know your brain, you know yourself.


  5. ConfigServer Outgoing Spam Monitor (osm) has been designed to use multiple methods to monitor outgoing email and SMTP connections for activity that could indicate a spammer is active on a server.

    With the proliferation of web scripts in shared hosting environments that are often poorly maintained or badly written, the chances of a hacker exploiting vulnerabilities in scripts is at an all time high. Additionally, end-user PC's and other devices that send email through a server (relay) that have been compromised and used as a spam source has always been a problem. These issues along with spammers deliberately targeting hosting providers by purchasing accounts simply to send out spam have kept the diligence required to prevent spam from being sent from servers all the more difficult.

    osm is for any server owner using cPanel that is concerned about future or active attempts to send out spam email through the server. It targets all the methods available to keep track of outgoing email and SMTP connections. It is designed to be used entirely from the cPanel WHM UI, which provides both configuration and viewing of reports generated by a daemon process running continuously on the server.

    Features

    • Outgoing email sent via exim is tracked by cPanel account
    • Matching Subject headers for outgoing email sent via exim is tracked by cPanel account
    • Script path location (cwd) is tracked by cPanel account
    • Matching script path location (cwd) is tracked by cPanel account
    • Outgoing SMTP connections to remote servers (that bypass exim) are tracked by cPanel account
    • Matching script path location for outgoing SMTP connections to remote servers (that bypass exim) are tracked
    • Authenticated outgoing email is tracked by email account and connecting IP address
    • osm uses real-time Packet Inspection to track SMTP connections, this is primarily useful if you cannot use the csf SMTP_BLOCK or cPanel provided equivalent feature
    • Configurable trigger levels for each type of tracking by cPanel account on a per email/connection per second basis
    • Apache Status information us used to link outgoing email with actual scripts being used
    • Multiple actions can be performed once a report is raised after a trigger level is reached:
      • Send an email report of the events
      • Store the report of events to view in the WHM UI
      • Hold outgoing email from the cPanel/email account in the exim queue
      • Discard outgoing email from the cPanel/email account
      • Suspend the whole cPanel account
      • Prevent the email account from logging in
      • Rename the reported path
      • Run the custom script configured in the WHM UI
      • Rename the file determined from the Apache Status
      • Block the IP address (AUTHRELAY, ALWAYSRELAY, POPRELAY, Apache Status) in csf
    • Custom action script is configurable and can be sent JSON, YAML, XML and PERL data structures to allow for client specific actions
    • Inheritance rules are used to configure all trigger levels for each cPanel account plus the default settings

    Frequently Asked Questions

    Please read the osm FAQ before ordering osm.

    Product Requirements

    • cPanel/WHM (supported versions)
    • Server with static IPv4 address (for licensing)
    • Redhat/CentOS/CloudLinux Linux v6/7
    • Apache with mod_status required for the Apache Status feature
    • Pcap Kernel access via libpcap required for SMTP Packet Interception
    • csf for IP address blocking

    Product Limitations

    • Without mod_status configured via Easyapache, the Apache Status feature cannot be used
    • mod_rewrite rules in local htaccess files may break Apache Status functionality
    • IP addresses triggers are controlled by the "Default" settings in Event Configuration
    • Duplication of reports will occur between logline and cwdcheck report types as they are often referring to the same email event. However, each event type offers different triggers to detect outgoing spam patterns
    • The SMTP Packet Interception feature will not function on Virtuozzo/OpenVZ Servers (and other types of custom kernel) as the kernels do not support Pcap access
    • See the osm FAQ for additional information
    •  
    Note: The Packet Inspection feature will not function on Virtuozzo/OpenVZ Servers
     
    Note:
    Support is not guaranteed for servers running services from 1h.com, ASL, Imunify360 or Bitninja.
    We only provide support for supported versions of the OS and cPanel. EOL versions are not supported.

    https://www.configserver.com/cp/osm.html

     


  6. Error:
    Starting container …
    vzquota : (warning) Incorrect quota shutdown for id 261, recalculating disk usage
    vzquota : (error) quota check : lstat `9e44f226674e6588a4bd5a28bb20c7f8.dat‘: No such file or directory
    vzquota on failed [1]

    Sol:
    vzquota off 261
    vzquota on 261
    —————————————————————————————————–
    Error: Disabling Container

    # vzctl start 304
    Container start disabled
    # vzctl start 304 –force
    Starting container …
    Container is mounted
    Adding IP address(es😞

    https://jomin.wordpress.com/2012/08/17/vzquota-warning-incorrect-quota-shutdown-for-id/

     

     


  7. This is a common problem and may have several reasons. Sometimes when we simply want to restart the MySQL Server, we can get such an error:
    ERROR! MySQL server PID file could not be found!

    First of all, always check if the /tmp partition is full. This can happen when MySQL can’t write to the /tmp partition to create a lock file.

    df -h

    Also, this may be because, somehow the /tmp partition has been cleared and the MySQL server is looking for the PID file there. So easy-peasy just create a new pid file and restart the server.

    touch /tmp/mysql.sock
    service mysqld restart

    It can also help to check the status, sometimes it helps. For example sometimes you can get an error like this :

    $ service mysqld status
    ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

    Well, it’s kind of obvious, just remove the lock file and restart the server.

    rm /var/lock/subsys/mysql
    service mysqld restart

    If this not work then you need to kill current mysql process from server using below steps :

    ps -aufx | grep mysql

    You get all process of mysql with process ID. You need to kill all PID for mysql using below command

    kill -9 PID1 PD2...

    then restart mysql service

    service mysql restart

    That’s it smile.gif

    http://www.webhostingtalk.com/showthread.php?t=1424779

     


  8. Hi ,

    To fix this issue ,

    [ vzquota : (error) can't lock quota file, some quota operations are performing for id 101 ]

    First you need to open your ssh session and run this command:

    ps ax | grep vzquota

    Then kill the pid for example :

    kill -9 1234

    And then try to start the vz container

    vzquota off id

    vzctl start id

    After that your openvz container should work fine, Some openvz nodes needs to fix the quota and this need some time depending on your quota size, if your openvz doesn't run after awhile then you need to check the availability of ram inside your openvz to see if there is enough ram or not by running the following command:

    free -m

    Have a nice day.

    https://www.lowendtalk.com/discussion/134404/hot-to-fix-vzquota-error-cant-lock-quota-file


  9. Now this may be very simple for some, others might not know what to do about database issues- so Ill explain in a quick post.

    I logged in this morning and noticed my RAM usage was very high, (91% on the resource monitor, compared to normal 71%). I hit Crtl-Shift-Esc and went to processess and my top two memory usage processes were SQL Server. The top one was using 1,540,736 K, with the second around 600 K. That is a lot.

    Right click on the top one, and select Go To Service. This one is MICROSOFT##SSEE and the second is SBSMONITORING. I know from past experience that SBSMONITORING can get out of control, but in my opinion 600,000 K is not bad. There is a good post on running a script that will clean up and compact the SBSMONITORING database here (Smallbizserver.net- one of my favorite sites, but you will have to find the post yourself).

    In this instance, I do not really care about SBSMONITORING. But the MICROSOFT##SSEE is really high, and I have never seen that before.

    Now I am no DBA, but I DO know that limiting a database will affect performance. I also know that if the database was using that much memory, it probably had reason. It could be a memory leak, but I do not think so in this instance, because it is just running all of the default services. Do a Google search on SQL Server memory leaks for more information.

    So in this case, I do not want to limit the database. Ill restart it and see what happens. Start>Administrative Tools>Services. Right click and restart Windows Internal Database. Voila! it is now hovering around 158,000 K. Thats a lot better than 10x that. And by only restarting it, I did not limit the database should it NEED much more ram, perhaps when it is synchronizing WSUS or something.

    SQL Process

    SQL Process

    Might as well restart SBSMONITORING as well- yep, that knocked the RAM usage of that one down a few notches, though not as dramatically as the first.

    So, I want to do this regularly, but I do not want to remember to restart these manually. They get restarted when the server reboots, but I TRY to minimize those as well. We can write it into a VERY simple batch script.

    Open up Notepad. Enter the following:

    1
    2
    3
    4
    net stop mssql$sbsmonitoring
    net start mssql$sbsmonitoring
    net stop mssql$microsoft##ssee
    net start mssql$microsoft##ssee

    Save the file as a text file on the root of some drive, or if you have a folder for scripts. I keep mine in D:\Scripts\.

    I go to the new text file location, and change the .txt to .bat

    Now we have a file that when it is run, stops both SQL database services and starts them one at a time. This will not cause system damage, nor damage the databases- as limiting the RAM might have. Let’s give the script a test run to make sure it works:

    Restart Script

    Restart Script

    Navigate to the file location from a command prompt, and run the batch file. If the results look like this, then you are good. Now we need to automate this script. So, we will use scheduled tasks to enable this script to run once a week. Could be twice a week, but I think running this Monday morning will be nice.

    Start>Administrative Tools>Task Scheduler.

    Right click Task Scheduler Library, and click New Task.

    Give the task a name and description. In my case I named is Restart SQL.

    Select the radio button to run the task if no one is logged on.

    General Tab

    General Tab

     

    You have the option to run this on any account you wish. If you have an account you use for DBA (or even a power user account), then select this account.

    On the Triggers tab, we will select on a schedule. I set it to occur Weekly every Monday at 5AM. I know I have no other processes running at that time such as backups. I also put a random delay of 30 minutes on the task- this is not necessary in most cases.

    Trigger Tab

    Trigger Tab

     

    On the Action tab, we will select New. Leave it on run a program. In the box under settings for Program/Script, we will select the script that we made, restart_sql.bat.

    Action Tab

    Action Tab

     

    On the Conditions tab, pretty much leave stuff alone. Run if computer is idle for 10 minutes, wait for idle 1 hour. Uncheck stop if the computer ceases to be idle. Uncheck wake the computer to run this task- why would a server be in sleep mode?

    Conditions Tab

    Conditions Tab

     

    On the settings tab, pretty much leave everything alone. It’s all self explanatory if need to change something to suit your needs, then do so.

    Settings Tab

    Settings Tab

     

    Now, let the task run it’s course. You can check the task scheduler after Monday to see if the task ran- which it will.

    This will keep my database memory usage down without me having to worry about it or by limiting the natural functions of said databases.

    https://chrisdill.wordpress.com/2010/10/22/restart_microsoftssee/

     

     
     

  10. The general attack outline is as follows:

    1. The attacker initiates a connection to a target.
    2. The target attempts to authenticate the attacker by sending it a challenge.
    3. The attacker opens another connection to the target, and sends the target this challenge as its own.
    4. The target responds to the challenge.
    5. The attacker sends that response back to the target on the original connection.

    If the authentication protocol is not carefully designed, the target will accept that response as valid, thereby leaving the attacker with one fully authenticated channel connection (the other one is simply abandoned).

     

    https://en.wikipedia.org/wiki/Reflection_attack


  11. 
    
    
    
    
    Network Working Group                                            D. Barr
    Request for Comments: 1912             The Pennsylvania State University
    Obsoletes: 1537                                            February 1996
    Category: Informational
    
    
                Common DNS Operational and Configuration Errors
    
    Status of this Memo
    
       This memo provides information for the Internet community.  This memo
       does not specify an Internet standard of any kind.  Distribution of
       this memo is unlimited.
    
    Abstract
    
       This memo describes errors often found in both the operation of
       Domain Name System (DNS) servers, and in the data that these DNS
       servers contain.  This memo tries to summarize current Internet
       requirements as well as common practice in the operation and
       configuration of the DNS.  This memo also tries to summarize or
       expand upon issues raised in [RFC 1537].
    
    1. Introduction
    
       Running a nameserver is not a trivial task.  There are many things
       that can go wrong, and many decisions have to be made about what data
       to put in the DNS and how to set up servers.  This memo attempts to
       address many of the common mistakes and pitfalls that are made in DNS
       data as well as in the operation of nameservers.  Discussions are
       also made regarding some other relevant issues such as server or
       resolver bugs, and a few political issues with respect to the
       operation of DNS on the Internet.
    
    2. DNS Data
    
       This section discusses problems people typically have with the DNS
       data in their nameserver, as found in the zone data files that the
       nameserver loads into memory.
    
    2.1 Inconsistent, Missing, or Bad Data
    
       Every Internet-reachable host should have a name.  The consequences
       of this are becoming more and more obvious.  Many services available
       on the Internet will not talk to you if you aren't correctly
       registered in the DNS.
    
    
    
    
    
    Barr                         Informational                      [Page 1]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       Make sure your PTR and A records match.  For every IP address, there
       should be a matching PTR record in the in-addr.arpa domain.  If a
       host is multi-homed, (more than one IP address) make sure that all IP
       addresses have a corresponding PTR record (not just the first one).
       Failure to have matching PTR and A records can cause loss of Internet
       services similar to not being registered in the DNS at all.  Also,
       PTR records must point back to a valid A record, not a alias defined
       by a CNAME.  It is highly recommended that you use some software
       which automates this checking, or generate your DNS data from a
       database which automatically creates consistent data.
    
       DNS domain names consist of "labels" separated by single dots.  The
       DNS is very liberal in its rules for the allowable characters in a
       domain name.  However, if a domain name is used to name a host, it
       should follow rules restricting host names.  Further if a name is
       used for mail, it must follow the naming rules for names in mail
       addresses.
    
       Allowable characters in a label for a host name are only ASCII
       letters, digits, and the `-' character.  Labels may not be all
       numbers, but may have a leading digit  (e.g., 3com.com).  Labels must
       end and begin only with a letter or digit.  See [RFC 1035] and [RFC
       1123].  (Labels were initially restricted in [RFC 1035] to start with
       a letter, and some older hosts still reportedly have problems with
       the relaxation in [RFC 1123].)  Note there are some Internet
       hostnames which violate this rule (411.org, 1776.com).  The presence
       of underscores in a label is allowed in [RFC 1033], except [RFC 1033]
       is informational only and was not defining a standard.  There is at
       least one popular TCP/IP implementation which currently refuses to
       talk to hosts named with underscores in them.  It must be noted that
       the language in [1035] is such that these rules are voluntary -- they
       are there for those who wish to minimize problems.  Note that the
       rules for Internet host names also apply to hosts and addresses used
       in SMTP (See RFC 821).
    
       If a domain name is to be used for mail (not involving SMTP), it must
       follow the rules for mail in [RFC 822], which is actually more
       liberal than the above rules.  Labels for mail can be any ASCII
       character except "specials", control characters, and whitespace
       characters.  "Specials" are specific symbols used in the parsing of
       addresses.  They are the characters "()<>@,;:\".[]".  (The "!"
       character wasn't in [RFC 822], however it also shouldn't be used due
       to the conflict with UUCP mail as defined in RFC 976)  However, since
       today almost all names which are used for mail on the Internet are
       also names used for hostnames, one rarely sees addresses using these
       relaxed standard, but mail software should be made liberal and robust
       enough to accept them.
    
    
    
    
    Barr                         Informational                      [Page 2]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       You should also be careful to not have addresses which are valid
       alternate syntaxes to the inet_ntoa() library call.  For example 0xe
       is a valid name, but if you were to type "telnet 0xe", it would try
       to connect to IP address 0.0.0.14.  It is also rumored that there
       exists some broken inet_ntoa() routines that treat an address like
       x400 as an IP address.
    
       Certain operating systems have limitations on the length of their own
       hostname.  While not strictly of issue to the DNS, you should be
       aware of your operating system's length limits before choosing the
       name of a host.
    
       Remember that many resource records (abbreviated RR) take on more
       than one argument.  HINFO requires two arguments, as does RP.  If you
       don't supply enough arguments, servers sometime return garbage for
       the missing fields.  If you need to include whitespace within any
       data, you must put the string in quotes.
    
    2.2 SOA records
    
       In the SOA record of every zone, remember to fill in the e-mail
       address that will get to the person who maintains the DNS at your
       site (commonly referred to as "hostmaster").  The `@' in the e-mail
       must be replaced by a `.' first.  Do not try to put an `@' sign in
       this address.  If the local part of the address already contains a
       `.' (e.g., John.Smith@widget.xx), then you need to quote the `.' by
       preceding it with `\' character.  (e.g., to become
       John\.Smith.widget.xx) Alternately (and preferred), you can just use
       the generic name `hostmaster', and use a mail alias to redirect it to
       the appropriate persons.  There exists software which uses this field
       to automatically generate the e-mail address for the zone contact.
       This software will break if this field is improperly formatted.  It
       is imperative that this address get to one or more real persons,
       because it is often used for everything from reporting bad DNS data
       to reporting security incidents.
    
       Even though some BIND versions allow you to use a decimal in a serial
       number, don't.  A decimal serial number is converted to an unsigned
       32-bit integer internally anyway.  The formula for a n.m serial
       number is n*10^(3+int(0.9+log10(m))) + m which translates to
       something rather unexpected.  For example it's routinely possible
       with a decimal serial number (perhaps automatically generated by
       SCCS) to be incremented such that it is numerically larger, but after
       the above conversion yield a serial number which is LOWER than
       before.  Decimal serial numbers have been officially deprecated in
       recent BIND versions.  The recommended syntax is YYYYMMDDnn
       (YYYY=year, MM=month, DD=day, nn=revision number.  This won't
       overflow until the year 4294.
    
    
    
    Barr                         Informational                      [Page 3]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       Choose logical values for the timer values in the SOA record (note
       values below must be expressed as seconds in the zone data):
    
          Refresh: How often a secondary will poll the primary server to see
              if the serial number for the zone has increased (so it knows
              to request a new copy of the data for the zone).  Set this to
              how long your secondaries can comfortably contain out-of-date
              data.  You can keep it short (20 mins to 2 hours) if you
              aren't worried about a small increase in bandwidth used, or
              longer (2-12 hours) if your Internet connection is slow or is
              started on demand.  Recent BIND versions (4.9.3) have optional
              code to automatically notify secondaries that data has
              changed, allowing you to set this TTL to a long value (one
              day, or more).
    
          Retry: If a secondary was unable to contact the primary at the
              last refresh, wait the retry value before trying again.  This
              value isn't as important as others, unless the secondary is on
              a distant network from the primary or the primary is more
              prone to outages.  It's typically some fraction of the refresh
              interval.
    
    
          Expire: How long a secondary will still treat its copy of the zone
              data as valid if it can't contact the primary.  This value
              should be greater than how long a major outage would typically
              last, and must be greater than the minimum and retry
              intervals, to avoid having a secondary expire the data before
              it gets a chance to get a new copy.  After a zone is expired a
              secondary will still continue to try to contact the primary,
              but it will no longer provide nameservice for the zone.  2-4
              weeks are suggested values.
    
          Minimum: The default TTL (time-to-live) for resource records --
              how long data will remain in other nameservers' cache.  ([RFC
              1035] defines this to be the minimum value, but servers seem
              to always implement this as the default value)  This is by far
              the most important timer.  Set this as large as is comfortable
              given how often you update your nameserver.  If you plan to
              make major changes, it's a good idea to turn this value down
              temporarily beforehand.  Then wait the previous minimum value,
              make your changes, verify their correctness, and turn this
              value back up.  1-5 days are typical values.  Remember this
              value can be overridden on individual resource records.
    
    
    
    
    
    
    
    Barr                         Informational                      [Page 4]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       As you can see, the typical values above for the timers vary widely.
       Popular documentation like [RFC 1033] recommended a day for the
       minimum TTL, which is now considered too low except for zones with
       data that vary regularly.  Once a DNS stabilizes, values on the order
       of 3 or more days are recommended.  It is also recommended that you
       individually override the TTL on certain RRs which are often
       referenced and don't often change to have very large values (1-2
       weeks).  Good examples of this are the MX, A, and PTR records of your
       mail host(s), the NS records of your zone, and the A records of your
       nameservers.
    
    2.3 Glue A Records
    
       Glue records are A records that are associated with NS records to
       provide "bootstrapping" information to the nameserver.  For example:
    
               podunk.xx.      in      ns      ns1.podunk.xx.
                               in      ns      ns2.podunk.xx.
               ns1.podunk.xx.  in      a       1.2.3.4
               ns2.podunk.xx.  in      a       1.2.3.5
    
       Here, the A records are referred to as "Glue records".
    
       Glue records are required only in forward zone files for nameservers
       that are located in the subdomain of the current zone that is being
       delegated.  You shouldn't have any A records in an in-addr.arpa zone
       file (unless you're using RFC 1101-style encoding of subnet masks).
    
       If your nameserver is multi-homed (has more than one IP address), you
       must list all of its addresses in the glue to avoid cache
       inconsistency due to differing TTL values, causing some lookups to
       not find all addresses for your nameserver.
    
       Some people get in the bad habit of putting in a glue record whenever
       they add an NS record "just to make sure".  Having duplicate glue
       records in your zone files just makes it harder when a nameserver
       moves to a new IP address, or is removed. You'll spend hours trying
       to figure out why random people still see the old IP address for some
       host, because someone forgot to change or remove a glue record in
       some other file.  Newer BIND versions will ignore these extra glue
       records in local zone files.
    
       Older BIND versions (4.8.3 and previous) have a problem where it
       inserts these extra glue records in the zone transfer data to
       secondaries.  If one of these glues is wrong, the error can be
       propagated to other nameservers.  If two nameservers are secondaries
       for other zones of each other, it's possible for one to continually
       pass old glue records back to the other.  The only way to get rid of
    
    
    
    Barr                         Informational                      [Page 5]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       the old data is to kill both of them, remove the saved backup files,
       and restart them.  Combined with that those same versions also tend
       to become infected more easily with bogus data found in other non-
       secondary nameservers (like the root zone data).
    
    2.4 CNAME records
    
       A CNAME record is not allowed to coexist with any other data.  In
       other words, if suzy.podunk.xx is an alias for sue.podunk.xx, you
       can't also have an MX record for suzy.podunk.edu, or an A record, or
       even a TXT record.  Especially do not try to combine CNAMEs and NS
       records like this!:
    
    
               podunk.xx.      IN      NS      ns1
                               IN      NS      ns2
                               IN      CNAME   mary
               mary            IN      A       1.2.3.4
    
    
       This is often attempted by inexperienced administrators as an obvious
       way to allow your domain name to also be a host.  However, DNS
       servers like BIND will see the CNAME and refuse to add any other
       resources for that name.  Since no other records are allowed to
       coexist with a CNAME, the NS entries are ignored.  Therefore all the
       hosts in the podunk.xx domain are ignored as well!
    
       If you want to have your domain also be a host, do the following:
    
               podunk.xx.      IN      NS      ns1
                               IN      NS      ns2
                               IN      A       1.2.3.4
               mary            IN      A       1.2.3.4
    
       Don't go overboard with CNAMEs.  Use them when renaming hosts, but
       plan to get rid of them (and inform your users).  However CNAMEs are
       useful (and encouraged) for generalized names for servers -- `ftp'
       for your ftp server, `www' for your Web server, `gopher' for your
       Gopher server, `news' for your Usenet news server, etc.
    
       Don't forget to delete the CNAMEs associated with a host if you
       delete the host it is an alias for.  Such "stale CNAMEs" are a waste
       of resources.
    
    
    
    
    
    
    
    
    Barr                         Informational                      [Page 6]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       Don't use CNAMEs in combination with RRs which point to other names
       like MX, CNAME, PTR and NS.  (PTR is an exception if you want to
       implement classless in-addr delegation.)  For example, this is
       strongly discouraged:
    
               podunk.xx.      IN      MX      mailhost
               mailhost        IN      CNAME   mary
               mary            IN      A       1.2.3.4
    
    
       [RFC 1034] in section 3.6.2 says this should not be done, and [RFC
       974] explicitly states that MX records shall not point to an alias
       defined by a CNAME.  This results in unnecessary indirection in
       accessing the data, and DNS resolvers and servers need to work more
       to get the answer.  If you really want to do this, you can accomplish
       the same thing by using a preprocessor such as m4 on your host files.
    
       Also, having chained records such as CNAMEs pointing to CNAMEs may
       make administration issues easier, but is known to tickle bugs in
       some resolvers that fail to check loops correctly.  As a result some
       hosts may not be able to resolve such names.
    
       Having NS records pointing to a CNAME is bad and may conflict badly
       with current BIND servers.  In fact, current BIND implementations
       will ignore such records, possibly leading to a lame delegation.
       There is a certain amount of security checking done in BIND to
       prevent spoofing DNS NS records.  Also, older BIND servers reportedly
       will get caught in an infinite query loop trying to figure out the
       address for the aliased nameserver, causing a continuous stream of
       DNS requests to be sent.
    
    2.5 MX records
    
       It is a good idea to give every host an MX record, even if it points
       to itself!  Some mailers will cache MX records, but will always need
       to check for an MX before sending mail.  If a site does not have an
       MX, then every piece of mail may result in one more resolver query,
       since the answer to the MX query often also contains the IP addresses
       of the MX hosts.  Internet SMTP mailers are required by [RFC 1123] to
       support the MX mechanism.
    
       Put MX records even on hosts that aren't intended to send or receive
       e-mail.  If there is a security problem involving one of these hosts,
       some people will mistakenly send mail to postmaster or root at the
       site without checking first to see if it is a "real" host or just a
       terminal or personal computer that's not set up to accept e-mail.  If
       you give it an MX record, then the e-mail can be redirected to a real
       person.  Otherwise mail can just sit in a queue for hours or days
    
    
    
    Barr                         Informational                      [Page 7]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       until the mailer gives up trying to send it.
    
       Don't forget that whenever you add an MX record, you need to inform
       the target mailer if it is to treat the first host as "local".  (The
       "Cw" flag in sendmail, for example)
    
       If you add an MX record which points to an external host (e.g., for
       the purposes of backup mail routing) be sure to ask permission from
       that site first.  Otherwise that site could get rather upset and take
       action (like throw your mail away, or appeal to higher authorities
       like your parent DNS administrator or network provider.)
    
    2.6 Other Resource Records
    
    2.6.1 WKS
    
       WKS records are deprecated in [RFC 1123].  They serve no known useful
       function, except internally among LISP machines.  Don't use them.
    
    2.6.2 HINFO
    
       On the issue HINFO records, some will argue that these is a security
       problem (by broadcasting what vendor hardware and operating system
       you so people can run systematic attacks on known vendor security
       holes).  If you do use them, you should keep up to date with known
       vendor security problems.  However, they serve a useful purpose.
       Don't forget that HINFO requires two arguments, the hardware type,
       and the operating system.
    
       HINFO is sometimes abused to provide other information.  The record
       is meant to provide specific information about the machine itself.
       If you need to express other information about the host in the DNS,
       use TXT.
    
    2.6.3 TXT
    
       TXT records have no specific definition.  You can put most anything
       in them.  Some use it for a generic description of the host, some put
       specific information like its location, primary user, or maybe even a
       phone number.
    
    2.6.4 RP
    
       RP records are relatively new.  They are used to specify an e-mail
       address (see first paragraph of section 2.2)  of the "Responsible
       Person" of the host, and the name of a TXT record where you can get
       more information.  See [RFC 1183].
    
    
    
    
    Barr                         Informational                      [Page 8]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
    2.7 Wildcard records
    
       Wildcard MXs are useful mostly for non IP-connected sites.  A common
       mistake is thinking that a wildcard MX for a zone will apply to all
       hosts in the zone.  A wildcard MX will apply only to names in the
       zone which aren't listed in the DNS at all.  e.g.,
    
               podunk.xx.      IN      NS      ns1
                               IN      NS      ns2
               mary            IN      A       1.2.3.4
               *.podunk.xx.    IN      MX      5 sue
    
       Mail for mary.podunk.xx will be sent to itself for delivery.  Only
       mail for jane.podunk.xx or any hosts you don't see above will be sent
       to the MX.  For most Internet sites, wildcard MX records are not
       useful.  You need to put explicit MX records on every host.
    
       Wildcard MXs can be bad, because they make some operations succeed
       when they should fail instead.  Consider the case where someone in
       the domain "widget.com" tries to send mail to "joe@larry".  If the
       host "larry" doesn't actually exist, the mail should in fact bounce
       immediately.  But because of domain searching the address gets
       resolved to "larry.widget.com", and because of the wildcard MX this
       is a valid address according to DNS.  Or perhaps someone simply made
       a typo in the hostname portion of the address.  The mail message then
       gets routed to the mail host, which then rejects the mail with
       strange error messages like "I refuse to talk to myself" or "Local
       configuration error".
    
       Wildcard MX records are good for when you have a large number of
       hosts which are not directly Internet-connected (for example, behind
       a firewall) and for administrative or political reasons it is too
       difficult to have individual MX records for every host, or to force
       all e-mail addresses to be "hidden" behind one or more domain names.
       In that case, you must divide your DNS into two parts, an internal
       DNS, and an external DNS.  The external DNS will have only a few
       hosts and explicit MX records, and one or more wildcard MXs for each
       internal domain.  Internally the DNS will be complete, with all
       explicit MX records and no wildcards.
    
       Wildcard As and CNAMEs are possible too, and are really confusing to
       users, and a potential nightmare if used without thinking first.  It
       could result (due again to domain searching) in any telnet/ftp
       attempts from within the domain to unknown hosts to be directed to
       one address.  One such wildcard CNAME (in *.edu.com) caused
       Internet-wide loss of services and potential security nightmares due
       to unexpected interactions with domain searching.  It resulted in
       swift fixes, and even an RFC ([RFC 1535]) documenting the problem.
    
    
    
    Barr                         Informational                      [Page 9]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
    2.8 Authority and Delegation Errors (NS records)
    
       You are required to have at least two nameservers for every domain,
       though more is preferred.  Have secondaries outside your network.  If
       the secondary isn't under your control, periodically check up on them
       and make sure they're getting current zone data from you.  Queries to
       their nameserver about your hosts should always result in an
       "authoritative" response.  If not, this is called a "lame
       delegation".  A lame delegations exists when a nameserver is
       delegated responsibility for providing nameservice for a zone (via NS
       records) but is not performing nameservice for that zone (usually
       because it is not set up as a primary or secondary for the zone).
    
       The "classic" lame delegation can be illustrated in this example:
    
               podunk.xx.      IN      NS      ns1.podunk.xx.
                               IN      NS      ns0.widget.com.
    
       "podunk.xx" is a new domain which has recently been created, and
       "ns1.podunk.xx" has been set up to perform nameservice for the zone.
       They haven't quite finished everything yet and haven't made sure that
       the hostmaster at "ns0.widget.com" has set up to be a proper
       secondary, and thus has no information about the podunk.xx domain,
       even though the DNS says it is supposed to.  Various things can
       happen depending on which nameserver is used.  At best, extra DNS
       traffic will result from a lame delegation.  At worst, you can get
       unresolved hosts and bounced e-mail.
    
       Also, sometimes a nameserver is moved to another host or removed from
       the list of secondaries.  Unfortunately due to caching of NS records,
       many sites will still think that a host is a secondary after that
       host has stopped providing nameservice.  In order to prevent lame
       delegations while the cache is being aged, continue to provide
       nameservice on the old nameserver for the length of the maximum of
       the minimum plus refresh times for the zone and the parent zone.
       (See section 2.2)
    
       Whenever a primary or secondary is removed or changed, it takes a
       fair amount of human coordination among the parties involved.  (The
       site itself, it's parent, and the site hosting the secondary)  When a
       primary moves, make sure all secondaries have their named.boot files
       updated and their servers reloaded.  When a secondary moves, make
       sure the address records at both the primary and parent level are
       changed.
    
       It's also been reported that some distant sites like to pick popular
       nameservers like "ns.uu.net" and just add it to their list of NS
       records in hopes that they will magically perform additional
    
    
    
    Barr                         Informational                     [Page 10]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       nameservice for them.  This is an even worse form of lame delegation,
       since this adds traffic to an already busy nameserver.  Please
       contact the hostmasters of sites which have lame delegations.
       Various tools can be used to detect or actively find lame
       delegations.  See the list of contributed software in the BIND
       distribution.
    
       Make sure your parent domain has the same NS records for your zone as
       you do.  (Don't forget your in-addr.arpa zones too!).  Do not list
       too many (7 is the recommended maximum), as this just makes things
       harder to manage and is only really necessary for very popular top-
       level or root zones.  You also run the risk of overflowing the 512-
       byte limit of a UDP packet in the response to an NS query.  If this
       happens, resolvers will "fall back" to using TCP requests, resulting
       in increased load on your nameserver.
    
       It's important when picking geographic locations for secondary
       nameservers to minimize latency as well as increase reliability.
       Keep in mind network topologies.  For example if your site is on the
       other end of a slow local or international link, consider a secondary
       on the other side of the link to decrease average latency.  Contact
       your Internet service provider or parent domain contact for more
       information about secondaries which may be available to you.
    
    3. BIND operation
    
       This section discusses common problems people have in the actual
       operation of the nameserver (specifically, BIND).  Not only must the
       data be correct as explained above, but the nameserver must be
       operated correctly for the data to be made available.
    
    3.1 Serial numbers
    
       Each zone has a serial number associated with it.  Its use is for
       keeping track of who has the most current data.  If and only if the
       primary's serial number of the zone is greater will the secondary ask
       the primary for a copy of the new zone data (see special case below).
    
       Don't forget to change the serial number when you change data!  If
       you don't, your secondaries will not transfer the new zone
       information.  Automating the incrementing of the serial number with
       software is also a good idea.
    
       If you make a mistake and increment the serial number too high, and
       you want to reset the serial number to a lower value, use the
       following procedure:
    
    
    
    
    
    Barr                         Informational                     [Page 11]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
          Take the `incorrect' serial number and add 2147483647 to it.  If
          the number exceeds 4294967296, subtract 4294967296.  Load the
          resulting number.  Then wait 2 refresh periods to allow the zone
          to propagate to all servers.
    
          Repeat above until the resulting serial number is less than the
          target serial number.
    
          Up the serial number to the target serial number.
    
       This procedure won't work if one of your secondaries is running an
       old version of BIND (4.8.3 or earlier).  In this case you'll have to
       contact the hostmaster for that secondary and have them kill the
       secondary servers, remove the saved backup file, and restart the
       server.  Be careful when editing the serial number -- DNS admins
       don't like to kill and restart nameservers because you lose all that
       cached data.
    
    3.2 Zone file style guide
    
       Here are some useful tips in structuring your zone files.  Following
       these will help you spot mistakes, and avoid making more.
    
       Be consistent with the style of entries in your DNS files. If your
       $ORIGIN is podunk.xx., try not to write entries like:
    
               mary            IN      A       1.2.3.1
               sue.podunk.xx.  IN      A       1.2.3.2
    
       or:
    
               bobbi           IN      A       1.2.3.2
                               IN      MX      mary.podunk.xx.
    
    
       Either use all FQDNs (Fully Qualified Domain Names) everywhere or
       used unqualified names everywhere.  Or have FQDNs all on the right-
       hand side but unqualified names on the left.  Above all, be
       consistent.
    
       Use tabs between fields, and try to keep columns lined up.  It makes
       it easier to spot missing fields (note some fields such as "IN" are
       inherited from the previous record and may be left out in certain
       circumstances.)
    
    
    
    
    
    
    
    Barr                         Informational                     [Page 12]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       Remember you don't need to repeat the name of the host when you are
       defining multiple records for one host.  Be sure also to keep all
       records associated with a host together in the file.  It will make
       things more straightforward when it comes time to remove or rename a
       host.
    
       Always remember your $ORIGIN.  If you don't put a `.' at the end of
       an FQDN, it's not recognized as an FQDN.  If it is not an FQDN, then
       the nameserver will append $ORIGIN to the name.  Double check, triple
       check, those trailing dots, especially in in-addr.arpa zone files,
       where they are needed the most.
    
       Be careful with the syntax of the SOA and WKS records (the records
       which use parentheses).  BIND is not very flexible in how it parses
       these records.  See the documentation for BIND.
    
    3.3 Verifying data
    
       Verify the data you just entered or changed by querying the resolver
       with dig (or your favorite DNS tool, many are included in the BIND
       distribution) after a change.  A few seconds spent double checking
       can save hours of trouble, lost mail, and general headaches.  Also be
       sure to check syslog output when you reload the nameserver.  If you
       have grievous errors in your DNS data or boot file, named will report
       it via syslog.
    
       It is also highly recommended that you automate this checking, either
       with software which runs sanity checks on the data files before they
       are loaded into the nameserver, or with software which checks the
       data already loaded in the nameserver.  Some contributed software to
       do this is included in the BIND distribution.
    
    4. Miscellaneous Topics
    
    4.1 Boot file setup
    
       Certain zones should always be present in nameserver configurations:
    
               primary         localhost               localhost
               primary         0.0.127.in-addr.arpa    127.0
               primary         255.in-addr.arpa        255
               primary         0.in-addr.arpa          0
    
       These are set up to either provide nameservice for "special"
       addresses, or to help eliminate accidental queries for broadcast or
       local address to be sent off to the root nameservers.  All of these
       files will contain NS and SOA records just like the other zone files
       you maintain, the exception being that you can probably make the SOA
    
    
    
    Barr                         Informational                     [Page 13]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       timers very long, since this data will never change.
    
       The "localhost" address is a "special" address which always refers to
       the local host.  It should contain the following line:
    
               localhost.      IN      A       127.0.0.1
    
       The "127.0" file should contain the line:
    
               1    PTR     localhost.
    
       There has been some extensive discussion about whether or not to
       append the local domain to it.  The conclusion is that "localhost."
       would be the best solution.  The reasons given include:
    
          "localhost" by itself is used and expected to work in some
          systems.
    
          Translating 127.0.0.1 into "localhost.dom.ain" can cause some
          software to connect back to the loopback interface when it didn't
          want to because "localhost" is not equal to "localhost.dom.ain".
    
       The "255" and "0" files should not contain any additional data beyond
       the NS and SOA records.
    
       Note that future BIND versions may include all or some of this data
       automatically without additional configuration.
    
    4.2 Other Resolver and Server bugs
    
       Very old versions of the DNS resolver have a bug that cause queries
       for names that look like IP addresses to go out, because the user
       supplied an IP address and the software didn't realize that it didn't
       need to be resolved.  This has been fixed but occasionally it still
       pops up.  It's important because this bug means that these queries
       will be sent directly to the root nameservers, adding to an already
       heavy DNS load.
    
       While running a secondary nameserver off another secondary nameserver
       is possible, it is not recommended unless necessary due to network
       topologies.  There are known cases where it has led to problems like
       bogus TTL values.  While this may be caused by older or flawed DNS
       implementations, you should not chain secondaries off of one another
       since this builds up additional reliability dependencies as well as
       adds additional delays in updates of new zone data.
    
    
    
    
    
    
    Barr                         Informational                     [Page 14]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
    4.3 Server issues
    
       DNS operates primarily via UDP (User Datagram Protocol) messages.
       Some UNIX operating systems, in an effort to save CPU cycles, run
       with UDP checksums turned off.  The relative merits of this have long
       been debated.  However, with the increase in CPU speeds, the
       performance considerations become less and less important.  It is
       strongly encouraged that you turn on UDP checksumming to avoid
       corrupted data not only with DNS but with other services that use UDP
       (like NFS).  Check with your operating system documentation to verify
       that UDP checksumming is enabled.
    
    References
    
       [RFC 974] Partridge, C., "Mail routing and the domain system", STD
                  14, RFC 974, CSNET CIC BBN Laboratories Inc, January 1986.
    
       [RFC 1033] Lottor, M, "Domain Administrators Operations Guide", RFC
                  1033, USC/Information Sciences Institute, November 1987.
    
       [RFC 1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
                  STD 13, RFC 1034, USC/Information Sciences Institute,
                  November 1987.
    
       [RFC 1035] Mockapetris, P., "Domain Names - Implementation and
                  Specification", STD 13, RFC 1035, USC/Information Sciences
                  Institute, November 1987.
    
       [RFC 1123] Braden, R., "Requirements for Internet Hosts --
                  Application and Support", STD 3, RFC 1123, IETF, October
                  1989.
    
       [RFC 1178] Libes, D., "Choosing a Name for Your Computer", FYI 5, RFC
                  1178, Integrated Systems Group/NIST, August 1990.
    
       [RFC 1183] Ullman, R., Mockapetris, P., Mamakos, L, and C. Everhart,
                  "New DNS RR Definitions", RFC 1183, October 1990.
    
       [RFC 1535] Gavron, E., "A Security Problem and Proposed Correction
                  With Widely Deployed DNS Software", RFC 1535, ACES
                  Research Inc., October 1993.
    
       [RFC 1536] Kumar, A., Postel, J., Neuman, C., Danzig, P., and S.
                  Miller, "Common DNS Implementation Errors and Suggested
                  Fixes", RFC 1536, USC/Information Sciences Institute, USC,
                  October 1993.
    
    
    
    
    
    Barr                         Informational                     [Page 15]
    
    RFC 1912                   Common DNS Errors               February 1996
    
    
       [RFC 1537] Beertema, P., "Common DNS Data File Configuration Errors",
                  RFC 1537, CWI, October 1993.
    
       [RFC 1713] A. Romao, "Tools for DNS debugging", RFC 1713, FCCN,
                  November 1994.
    
       [BOG] Vixie, P, et. al., "Name Server Operations Guide for BIND",
                  Vixie Enterprises, July 1994.
    
    5. Security Considerations
    
       Security issues are not discussed in this memo.
    
    6. Author's Address
    
       David Barr
       The Pennsylvania State University
       Department of Mathematics
       334 Whitmore Building
       University Park, PA 16802
    
       Voice: +1 814 863 7374
       Fax: +1 814 863-8311
       EMail: barr@math.psu.edu
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Barr                         Informational                     [Page 16]
    

    https://www.ietf.org/rfc/rfc1912.txt

     


  12. DNS BIND9 logging Clause

    This section describes the logging clause which prior to BIND 9 needed to appear first in the named.conf file. This no longer the case and it may appear anywhere convenient. BIND uses syslogd before a valid logging clause is available so named.conf parse errors and other information will appear in /var/log/messages (depending on syslog.conf) prior to, or in the absence of, a valid logging clause. In the case of windows parse errors are written to the Event Log. Only one logging clause can be defined but multiple channels may be defined to stream logs.

    logging Clause Syntax

    BIND provides comprehensive logging features. Values in bold type below are keywords;

    logging {
       [ channel channel_name {
         ( file path name
             [ versions ( number | unlimited ) ]
             [ size size_spec ]
           | syslog syslog_facility
           | stderr
           | null );
         [ severity (critical | error | warning | notice |
                     info | debug [ level ] | dynamic ); ]
         [ print-category yes | no; ]
         [ print-severity yes | no; ]
         [ print-time yes | no; ]
       }; ]
       [ category category_name {
         channel_name ; [ channel_name ; ... ]
       }; ]
       ...
    };
    

    The following notes describe the various fields and values:

    channel channel_name BIND will accept multiple channel definitions in a single logging statement. 'channel_name' is normally written as a non-space name, for instance, my_channel but it can be written as a quoted string, for instance, "my channel". It is an arbitrary but unique name used to associate the category statement with this channel definition or it may take one of the standard (pre-defined) values below:
    "default_syslog" log everything to syslog (default logging destination)
    "default_debug"  
    "default_stderr" output to stderr (normally the console)
    "null" discard all log entries (write to /dev/null)
    file 'path_name' is a quoted string defining the absolute path to the logging file, for example, "/var/log/named/namedlog.log". From the grammar above 'file', 'syslog', 'stderr' and 'null' are mutually exclusive for a 'channel'.
    versions 'versions' may take the parameter 'number' or 'unlimited' and defines the number of file versions that should be kept by BIND. Version files are created by BIND by appending .0, .1 etc to the file named defined by the file parameter. Files are 'rolled' (renamed or overwritten) so .0 will always contain the last log information prior to commencing the new log., .1 the next and so on. 'unlimited' currently implies 'versions 99'. Unless a sizeparameter is used new log versions will only be 'rolled' when BIND is restarted. If no versions statement is defined a single log file of unlimited size is used and on restart new data is appended to the defined file. This can get to be a very big file.
    size size_spec 'size' allows you to define a limit to the file size created. A numeric only size_spec value is assumed to be the size in bytes, you may use the short forms k or K, m or M, g or G e.g. 25m = 25000000. size and versions are related in the following way:
    1. If you specify a size value and NO versions parameter when the size limit is reached BIND will stop logging until the file size is reduced to below the threshold defined i.e. by deleting or truncating the file.
    2. If you specify a size AND a versions parameter the log files will be 'rolled' (renamed and overwritten as defined in the versions section above) when the size limit is reached.
    3. If you specify NO size AND a versions parameter the log files will be 'rolled' (renamed and overwritten as defined in the versions section above) only when BIND is restarted.
    syslog syslog_facility 'syslog' indicates that this channel will use syslogd logging features (as defined in syslog.conf). The syslog_facility is the facility definition for 'syslog' and may be found in syslog's man pages. From the grammar above 'file', 'syslog', 'stderr' and 'null' are mutually exclusive for a 'channel'.
    stderr 'stderr' writes to the current standard out and would typically be only used for debug purposes. From the grammar above 'file', 'syslog', 'stderr' and 'null' are mutually exclusive for a 'channel'.
    null 'null' writes to /dev/null - the bit bucket, nowhere. It does not produce a log. From the grammar above 'file', 'syslog', 'stderr' and 'null' are mutually exclusive for a 'channel'.
    severity Controls the logging levels and may take the values defined. Logging will occur for any message equal to or higher than the level specified (=>) lower levels will not be logged.
    Severity Description
    critical only critical errors.
    error error and above.
    warning warning and above.
    notice notice and above.
    info info and above - log starting to get chatty.
    debug debug and above. Various debug levels can be defined with 'debug 0' meaning no debugging.
    dynamic debug and above. Means assume the global debug level defined by either the command line parameter -d or by running rndc trace
    print-time yes | no Controls whether the date and time are written to the output channel (yes) or not (no). The default is 'no'.
    print-severity yes | no Controls whether the severity level is written to the output channel (yes) or not (no). The default is 'no'.
    print-category yes | no Controls whether the severity level is written to the output channel (yes) or not (no). The default is 'no'.
    categorycategory_name Controls what categories are logged to the various defined or default 'channel_names'. The category_name (a quoted string, for example, "default") may take one of the following values:
    Category Description
    client Processing of client requests.
    config Configuration file parsing and processing.
    database Messages relating to the databases used internally by the name server to store zone and cache data.
    default Logs all values which are not explicitly defined in category statements i.e. if this is the only category defined it will log all categories listed in this table with the exception of queries which are not turned on by default.
    delegation-only Logs queries that have returned NXDOMAIN as the result of a delegation-only zone or a delegation-only statement in a hint or stub zone declaration.
    dispatch Dispatching of incoming packets to the server modules where they are to be processed.
    dnssec DNSSEC and TSIG protocol processing.
    general Anything that is not classified as any other item in this list defaults to this category..
    lame-servers Lame servers. Mis-configuration in the delegation of domains discovered by BIND 9 when trying to authoritative answers. If the volume of these messages is high many users elect to send them to the null channel e.g. category lame-servers {null;}; statement.
    network Logs all network operations.
    notify Logs all NOTIFY operations.
    queries Logs all query transactions. The querylog statement may be used to override this category statement. This entry can generate a substantial volume of data very quickly. This category is not turned on by default and hence the default type above will not log this information.
    resolver Name resolution including recursive lookups performed on behalf of clients by a caching name server.
    rpz All operations related to Response Policy Zone (RPZ) processing. Even when RPZ zones are disabled (using policy disabled parameter in the response-policy statement) the operation is completed, logged then discarded (the real response is returned to the user).
    rate-limit All operations related to one or more rate-limit statements in the options or view clauses.
    security Approval and denial of requests.
    unmatched No matching view clause or unrecognized class value. A one line summary is also logged to the client category. By default this category is sent to the null channel.
    update Logging of all dynamic update (DDNS) transactions.
    update-security Approval and denial of update requests used with DDNS.
    xfer-in Details of zone transfers the server is receiving.
    xfer-out Details of zone transfers the server is sending.

    Examples

    The first example shows a minimal logging configuration that will work and generate modest log volumes.

    logging{
      channel simple_log {
        file "/var/log/named/bind.log" versions 3 size 5m;
        severity warning;
        print-time yes;
        print-severity yes;
        print-category yes;
      };
      category default{
        simple_log;
      };
    };
    


    Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.

     

    http://www.zytrax.com/books/dns/ch7/logging.html


  13. Why does rndc log warning key file ... exists, but using default configuration file (rndc.conf)?
    Author: Cathy Almond Reference Number: AA-00722 Views: 24969 Created: 2012-07-18 15:04 Last Updated: 2017-09-18 04:44 0 Rating/ Voters ico-rating-g.gifico-rating-g.gifico-rating-g.gifico-rating-g.gifico-rating-g.gif
    After upgrading BIND to a current version, you might be surprised to see this warning when using rndc commands (although the command should still work as before, unless you've made other configuration changes):
    WARNING: key file (rndc.key) exists, but using default configuration file (rndc.conf)

    Both named and rndc can operate with explicit or automatic control configuration.  They do this by looking for the file rndc.key in the default configuration files directory.

    If there is no explicit configuration (the controls statement in named.conf for named, or the existence of the file rndc.conf for rndc), then the key in the rndc.key file will be used instead (if it exists). 

    The rndc.key file isn't created automatically on installation

    Use "rndc-confgen -a" to create the rndc.key file

    Unfortunately, in the situation where there is both an explicit configuration, and the file rndc.key exists, it can sometimes be confusing for troubleshooting to know which configuration option is in use, particularly if there are problems with issuing rndc commands.  So from BIND 9.7.0, the warning was added so that the choice made by rndc was clearly indicated to the operator.

    Administrators who have made use of the include functionality of named.conf and rndc.conf to import an independently-generated rndc.key file will see this new warning, but can safely ignore it.

     

    Getting rid of the warning message

    There is no need to make any configuration changes if rndc commands are not failing, but administrators might prefer to ensure that any ambiguity is removed.  Options include:

    • Removing the rndc.key file
    • Keeping rndc.key, but removing the controls statements from named.conf and deleting rndc.conf
    • If using include for rndc.key, you could put the file elsewhere and import it from there

     

     


    © 2001-2018 Internet Systems Consortium

    For assistance with problems and questions for which you have not been able to find an answer in our Knowledge Base, we recommend searching our community mailing list archivesand/or posting your question there (you will need to register there first for your posts to be accepted). The bind-users and the dhcp-users lists particularly have a long-standing and active membership.

    ISC relies on the financial support of the community to fund the development of its open source software products. If you would like to support future product evolution and maintenance as well having peace of mind knowing that our team of experts are poised to provide you with individual technical assistance whenever you call upon them, then please consider our Professional Subscription Support services - details can be found on our main website.

     

    https://deepthought.isc.org/article/AA-00722/0/Why-does-rndc-log-warning-key-file-...-exists-but-using-default-configuration-file-rndc.conf.html

     


  14. What is PECL?

    PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.

    The packaging and distribution system used by PECL is shared with its sister, PEAR.

    News

    Documentation

    Downloads

    I want to publish my PHP Extension in PECL I want to publish my PHP Extension in PECL

     

    https://pecl.php.net/


  15. https://www.regular-expressions.info/

    Welcome to Regular-Expressions.info
    The Premier website about Regular Expressions

    A regular expression (regex or regexp for short) is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids. You are probably familiar with wildcard notations such as *.txt to find all text files in a file manager. The regex equivalent is ^.*\.txt$.

    But you can do much more with regular expressions. In a text editor like EditPad Pro or a specialized text processing tool like PowerGREP, you could use the regular expression \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\bto search for an email address. Any email address, to be exact. A very similar regular expression (replace the first \bwith ^ and the last one with $) can be used by a programmer to check whether the user entered a properly formatted email address. In just one line of code, whether that code is written in Perl, PHP, Java, a .NET language, or a multitude of other languages.

     

    https://www.regular-expressions.info/

×