Total Pageviews

Tuesday, 2 July 2019

基于 perl的zonemaster项目

Introduction

Zonemaster is a software package that validates the quality of a DNS delegation. The ambition of the Zonemaster project is to develop and maintain an open source DNS validation tool, offering improved performance over existing tools and providing extensive documentation which could be re-used by similar projects in the future.
Zonemaster consists of several modules or components. The components will help different types of users to check domain servers for configuration errors and generate a report that will assist in fixing the errors.

Background

DNSCheck from IIS and Zonecheck from AFNIC are two old software packages that validate the quality of a DNS delegation. AFNIC and IIS came together to develop a new DNS validation tool from scratch under the name Zonemaster. Zonemaster intends to be a major rewrite of Zonecheck and DNSCheck, and aims to implement the best parts of both.

Purpose

The components developed as part of the Zonemaster project will help different types of users to check domain servers for configuration errors and generate a report that will assist in fixing the errors.
The ambition of the Zonemaster project is to develop and maintain an open source DNS validation tool, offering improved performance over existing tools and providing extensive documentation which could be re-used by similar projects in the future.

Documentation

This is the main project repository. In this repository, documentation regarding the designrequirements and specifications for the Zonemaster implementation are available. We also have a brief user guide.

Prerequisites

Zonemaster comes with documentation for and has been tested on the operating systems and processor architecture listed below.

Supported processor architectures

  • x86_64 / amd64

Supported operating system versions

  • CentOS 7
  • Debian 8
  • Debian 9
  • FreeBSD 11.2
  • FreeBSD 12.0
  • Ubuntu 16.04
  • Ubuntu 18.04

Supported database engine versions

Operating SystemMySQLPostgreSQL
CentOS 75.69.3
Debian 85.59.4
Debian 910.1 (*)9.6
FreeBSD 11.25.69.5
FreeBSD 12.05.69.5
Ubuntu 16.045.79.5
Ubuntu 18.045.710
*) For Debian 9 MariaDB is supported, not MySQL.
Zonemaster Backend has been tested with the combination of OS and database engine version listed in the table above. Zonemaster uses functionality introduced in PostgreSQL version 9.3, and earlier versions are as such not supported.

Supported Perl versions

Operating SystemPerl
CentOS 75.16
Debian 85.20
Debian 95.24
FreeBSD 11.25.28
FreeBSD 12.05.28
Ubuntu 16.045.22
Ubuntu 18.045.26
Zonemaster requieres Perl version 5.14.2 or higher. Zonemaster has been tested with the default version of Perl in the OSs as listed in the table above.

Supported Client Browser versions

Zonemaster GUI is tested against the browsers, their versions and listed OS as indicated bellow and should work perfectly with similar configurations.
Operating SystemBrowserVersion
Ubuntu 18.04Firefox64, 65, 66
Ubuntu 18.04Chrome66
Windows 10Firefox64, 65, 66
Windows 10Chrome73
MacOsFirefox65
MacOsChrome73
Zonemaster GUI was tested manually or with testing tools. See the Zonemaster-gui repository for more details.

Localization

Zonemaster comes with localization for these locales:
  • en.UTF-8
  • fr.UTF-8
  • sv.UTF-8
  • da.UTF-8 (*)
*) Some strings have not yet been translated to Danish.

Zonemaster and its components

The Zonemaster product consists of the main part and five components. The main part consists of specifications and documentation for the Zonemaster product, and is stored in main Zonemaster Github repository (Zonemaster).
All the software for the Zonemaster project belong to the five components, each component being stored in its own Github repository (listed below).
The software has not yet been packaged for any operating systems, and you have to install most of it from the source code. The recommended method is to install from CPAN (except for Zonemaster-GUI), but it is possible to install directly from clones of the Github repositories. Zonemaster-GUI has no Perl code, and is installed directly from its repository at Github.
The Zonemaster Product includes the following components:

Installation

To install Zonemaster, start with installation of Zonemaster-Engine (which will draw in Zonemaster-LDNS) and then continue with the other parts. You will find installation instructions from the links above.

Versions

Go to the release list of this repository to find the latest version of Zonemaster and the versions of the specific components. Be sure to read the release note of each component before installing or upgrading.

Participation

You can submit code by forking this repository and creating pull requests. When you create a pull request, please select the "develop" branch in the relevant Zonemaster repository.
You can follow the project in these two mailing lists:
----

Installation

This document describes prerequisites, installation, post-install sanity checking for Zonemaster::Engine, and rounds up with a few pointer to interfaces for Zonemaster::Engine. For an overview of the Zonemaster product, please see the main Zonemaster Repository.

Prerequisites

For details on supported operating system versions and Perl verisons for Zonemaster::Engine, see the declaration of prerequisites.

Installation

This instruction covers the following operating systems:

Installation on CentOS

  1. Install the EPEL 7 repository:
    sudo yum --enablerepo=extras install epel-release
  2. Make sure the development environment is installed:
    sudo yum groupinstall "Development Tools"
  3. Install binary packages:
    sudo yum install cpanminus libidn-devel openssl-devel perl-Clone perl-core perl-Devel-CheckLib perl-File-ShareDir perl-File-Slurp perl-IO-Socket-INET6 perl-JSON-PP perl-List-MoreUtils perl-Module-Find perl-Moose perl-Net-IP perl-Pod-Coverage perl-Readonly-XS perl-Test-Differences perl-Test-Exception perl-Test-Fatal perl-Test-Pod perl-YAML
  4. Install packages from CPAN:
    sudo cpanm Locale::Msgfmt Locale::TextDomain Mail::RFC822::Address Module::Install Module::Install::XSUtil Test::More Text::CSV
  5. Install Zonemaster::LDNS and Zonemaster::Engine:
    sudo cpanm Zonemaster::LDNS Zonemaster::Engine

Installation on Debian

  1. Refresh the package information
    sudo apt update
  2. Install dependencies from binary packages:
    sudo apt install autoconf automake build-essential cpanminus libclone-perl libdevel-checklib-perl libfile-sharedir-perl libfile-slurp-perl libidn11-dev libintl-perl libio-socket-inet6-perl libjson-pp-perl liblist-moreutils-perl liblocale-msgfmt-perl libmail-rfc822-address-perl libmodule-find-perl libmodule-install-xsutil-perl libmoose-perl libnet-ip-perl libpod-coverage-perl libreadonly-xs-perl libssl-dev libtest-differences-perl libtest-exception-perl libtest-fatal-perl libtest-pod-perl libtext-csv-perl libtool m4
  3. Install dependencies from CPAN:
    sudo cpanm Module::Install Test::More
  4. Install Zonemaster::LDNS and Zonemaster::Engine:
    sudo cpanm Zonemaster::LDNS Zonemaster::Engine

Installation on FreeBSD

  1. Become root:
    su -l
  2. Update list of package repositories:
    Create the file /usr/local/etc/pkg/repos/FreeBSD.conf with the following content, unless it is already updated:
    FreeBSD: {
    url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
    }
    
  3. Check or activate the package system:
    Run the following command, and accept the installation of the pkg package if suggested.
    pkg info -E pkg
    
  4. Update local package repository:
    pkg update -f
    
  5. Install dependencies from binary packages:
    pkg install libidn p5-App-cpanminus p5-Clone p5-Devel-CheckLib p5-File-ShareDir p5-File-Slurp p5-IO-Socket-INET6 p5-JSON-PP p5-List-MoreUtils p5-Locale-libintl p5-Locale-Msgfmt p5-Mail-RFC822-Address p5-Module-Find p5-Module-Install p5-Module-Install-XSUtil p5-Moose p5-Net-IP p5-Pod-Coverage p5-Readonly-XS p5-Test-Differences p5-Test-Exception p5-Test-Fatal p5-Test-Pod p5-Text-CSV
  6. Install Zonemaster::LDNS and Zonemaster::Engine:
    cpanm Zonemaster::LDNS Zonemaster::Engine

Installation on Ubuntu

Use the procedure for installation on Debian.

Post-installation sanity check

Make sure Zonemaster::Engine is properly installed.
time perl -MZonemaster::Engine -E 'say join "\n", Zonemaster::Engine->test_module("BASIC", "zonemaster.net")'
The command is expected to take a few seconds and print some results about the delegation of zonemaster.net.

What to do next



No comments:

Post a Comment