zoukankan      html  css  js  c++  java
  • Linux学习(十四)

    一、简述DNS服务器原理,并搭建主-辅服务器

    1、简述DNS服务器原理
    第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器; 
    第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回; 
    第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址; 
    第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址; 
    第五步:重复第四步,直到找到正确的纪录;
    第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户 。
    
    2、DNS服务器主从搭建

    二台主机,一台当主服务器(192.1685.11/24),一台当从服务器(192.168.5.12/24),配置 shanghb.com 域的主从架构 

    (1)l两天主机安装BIND服务
    yum install -y bind

    (2)修改主服务配置文件/etc/named.conf

    vim /etc/named.conf
    //  listen-on port 53 { 127.0.0.1; };        #注释此项
    //  allow-query     { localhost; };          #注释此项
    allow-transfer {192.168.5.12;};             #添加此项
    

    (3)新建域解析文件 /var/named/shanghb.com.zone

    cp  /var/named/named.localhost  /var/named/shanghb.com.zone -p
    vim shanghb.com.zone
    

    $TTL 1D
    @ IN SOA ns1 admin   (1 1D 10M 1W 1D)
               NS      ns1
               NS      ns2
    ns1       A       192.168.5.11
    ns2       A       192.168.5.12
    www     A       192.168.5.11
    

    (4)在主服务器域文件 /etc/named.rfc1912.zones 中添加"shanghb.com"域

    vim /etc/named.rfc1912.zones 
    #添加以下内容
    zone "shanghb.com"  IN {                      #添加此项
        type master;
        file "shanghb.com.zone";
    }
    

    named-checkconf        #检查配置文件   
    named-checkzone    shanghb.com  /var/named/shanghb.com.zone #检查数据库文件
    

    rndc reload      #同步信息
    

    (5)配置从服务器主配置文件 /etc/named.conf

    vim /etc/named.conf
    //  listen-on port 53 { 127.0.0.1; };    #注释此项
    //  allow-query     { localhost; };    #注释此项
    allow-transfer {none;};    #添加此项
    

    (6)并在从服务器的域文件 /etc/named.rfc1912.zones 中添加域信息

    vim /etc/named.rfc1912.zones 
    #添加以下内容
    zone "shanghb.com" IN {
            type slave;
            master {192.168.5.11;};
            file "slaves/shanghb.com.zone.slave";
    };
    

    ls  /var/named/slaves/
    cat /var/named/slaves/shanghb.com.zone.slave
    

    (7)启动主从服务器的DNS服务,并测试

    systemctl start named
    
    dig www.shanghb.com @192.168.5.11
    

    dig www.shanghb.com@192.168.5.12
    

    dig -t axfr shanghb.com @192.168.5.11
    dig -t axfr shanghb.com @192.168.5.12
    

    二、搭建并实现智能DNS

    二台主机,各两块网卡,一个网卡(192.168.5.0/24)另外一个网卡(172.17.0.0/16)假设通过192.168.5.0/24网段访问DNS服务器,则智能解析到 1.1.1.1,通过172.17.0.0/16网段访问DNS服务器,则智能解析到 2.2.2.2,其它网段的解析到 3.3.3.3

    (1)在DNS服务器上安装BIND服务

    yum install -y bind
    

    (2)在DNS服务器上配置文件/etc/named.conf的 acl 和 view

    vim /etc/named.conf 
    
    acl bjnet {    
            192.168.5.0/24;
    };
    acl tjnet {
            172.17.0.0/16;
    };
    acl othernet {
            any;
    };
    
    
    
    view view_bjnet{
            match-clients { bjnet; };
            include "/etc/named.rfc1912.zones.bjnet";
    };
    view view_tjnet{
            match-clients { tjnet; };
            include "/etc/named.rfc1912.zones.tjnet";
    };
    view view_other{
            match-clients { othernet; };
            include "/etc/named.rfc1912.zones.other";
    };
    
    删除以下内容:
        zone "." IN {
            type hint;
            file "named.ca";
        };
        
        include "/etc/named.rfc1912.zones";
    

    (3)配置域文件

    vim /etc/named.rfc1912.zones
    
    zone "." IN {
        type hint;
        file "named.ca";
    };
    
    
    cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bjnet -p
    vim /etc/named.rfc1912.zones.bjnet
    
    zone "shanghb.com" IN {
            type master;
            file "shanghb.com.zone.bjnet";
    };
    
    cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.tjnet -p
    vim /etc/named.rfc1912.zones.tjnet
    
    zone "shanghb.com." IN {
            type master;
            file "shanghb.com.zone.tjnet";
    };
    
    cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.other -p
    vim /etc/named.rfc1912.zones.other
    
    zone "shanghb.com" IN {
            type master;
            file "shanghb.com.zone.other";
    };
    

    (4)配置解析文件

    cd /var/named/
    
    cp named.localhost  shanghb.com.zone.bjnet -p
    
    $TTL 1D 
    @ IN SOA ns1 admin (1 1D 10M 1W 1D) 
                   NS      ns1 
    ns1             A      192.168.5.11  
    webserver       A      1.1.1.1
    www         CNAME      webserver
    
    cp named.localhost  shanghb.com.zone.tjnet -p
    
    $TTL 1D 
    @ IN SOA ns1 admin (1 1D 10M 1W 1D) 
                   NS      ns1 
    ns1             A      192.168.5.11  
    webserver       A      2.2.2.2
    www         CNAME      webserver
    
    cp named.localhost  shanghb.com.zone.other -p
    
    $TTL 1D 
    @ IN SOA ns1 admin (1 1D 10M 1W 1D) 
                   NS      ns1 
    ns1             A      192.168.5.11  
    webserver       A      3.3.3.3
    www         CNAME      webserver
    

    (5)客户端验证

    三、编译安装Mariadb,并启动后可以正常登录

    (1) 准备源码文件到服务器

    ll mariadb-10.2.25.tar.gz
    

    (2) 解压安装包,并创建mysql用户和数据目录

    tar -zxvf mariadb-10.2.25.tar.gz
    useradd -r -s /sbin/nologin -d /data/mysql mysql
    mkdir /data/mysql
    chown mysql:mysql /data/mysql
    


    (3) 安装相应依赖包

    yum install -y bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel libdb-cxx-devel
    

    (4) cmake编译安装

    cmake . 
    -DCMAKE_INSTALL_PREFIX=/app/mysql 
    -DMYSQL_DATADIR=/data/mysql/ 
    -DSYSCONFDIR=/etc/ 
    -DMYSQL_USER=mysql 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DWITHOUT_MROONGA_STORAGE_ENGINE=1 
    -DWITH_DEBUG=0 
    -DWITH_READLINE=1 
    -DWITH_SSL=system 
    -DWITH_ZLIB=system 
    -DWITH_LIBWRAP=0 
    -DENABLED_LOCAL_INFILE=1 
    -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci
    

    cmake . 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql            [MySQL安装的根目录]
    -DDEFAULT_CHARSET=utf8                             [设置默认字符集为utf8]
    -DDEFAULT_COLLATION=utf8_general_ci                [设置默认字符校对]
    -DENABLED_LOCAL_INFILE=1                           [启用加载本地数据]
    -DENABLE_DOWNLOADS=1                               [编译时允许自主下载相关文件]
    -DEXTRA_CHARSETS=all                               [使MySQL支持所有的扩展字符]
    -DSYSCONFDIR=/etc                                  [MySQL配置文件所在目录]
    -DWITHOUT_TOKUDB=1 
    -DWITH_ARCHIVE_STPRAGE_ENGINE=1                    [MySQL的数据库引擎]
    -DWITH_ARCHIVE_STORAGE_ENGINE=1                    [MySQL的数据库引擎]
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1                  [MySQL的数据库引擎]
    -DWITH_DEBUG=0                                     [禁用调试模式]
    -DWITH_MEMORY_STORAGE_ENGINE=1                     [MySQL的数据库引擎]
    -DWITH_MYISAM_STORAGE_ENGINE=1                     [MySQL的数据库引擎]
    -DWITH_INNOBASE_STORAGE_ENGINE=1                   [MySQL的数据库引擎]
    -DWITH_PARTITION_STORAGE_ENGINE=1                  [MySQL的数据库引擎]
    -DWITH_READLINE=1                                  [MySQL的readline library]
    -DWITH_SSL=system                                  [通讯时支持ssl协议]
    -DWITH_ZLIB=system                                 [允许使用zlib library]
    -DWITH_LOBWRAP=0 
    -DMYSQL_DATADIR=/data/mysql                        [MySQL数据库文件存放目录]
    -DMYSQL_USER=mysql                                 [MySQL用户名] 
    -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock        [MySQL的通讯目录]
    -DMYSQL_TCP_PORT=3306                              [MySQL的监听端口]
    -DMYSQL_MAINTAINER_MODE=0
    

    如果CMAKE编译失败,删除CMakeCache.txt。

    make && make install
    

    (5) 安装完成后,配置环境变量

    echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    
    . /etc/profile.d/mysql.sh
    
    echo $PATH
    
    /app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

    (6) 初始化数据库,生成数据库文件

    cd /app/mysql
    
    scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    

    (7) 准备配置文件与启动脚本

    mv /etc/my.cnf /etc/my.cnf.bak
    
    cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
    
    cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
    

    (8) 启动数据库服务并登录测试

    chkconfig --add mysqld
    
    service mysqld start
    
    ss  -ntlp|grep 3306
    

    mysql
    

  • 相关阅读:
    OI算法复习汇总
    B. Anatoly and Cockroaches
    c# 文件过大时清空原有内容重新写入
    c# 记录内容到txt文件
    c# 关闭和重启.exe程序
    mutex 互斥量
    mysql 事件
    <asp:Button点击查询后,调用js中函数展现加载圈
    取得<asp:TextBox中的值:
    json 相关知识
  • 原文地址:https://www.cnblogs.com/shanghongbin/p/13342018.html
Copyright © 2011-2022 走看看