GVKun编程网logo

Centos环境下的DNS智能解析(centos配置dns解析)

18

对于想了解Centos环境下的DNS智能解析的读者,本文将提供新的信息,我们将详细介绍centos配置dns解析,并且为您提供关于CentOS7搭建简单的DNS分离解析服务、centos6.5-cen

对于想了解Centos环境下的DNS智能解析的读者,本文将提供新的信息,我们将详细介绍centos配置dns解析,并且为您提供关于CentOS 7搭建简单的DNS分离解析服务、centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?、Centos6环境下搭建DNS服务器、CentOS下搭建智能DNS系统wdDNS 的方法的有价值信息。

本文目录一览:

Centos环境下的DNS智能解析(centos配置dns解析)

Centos环境下的DNS智能解析(centos配置dns解析)

DNS智能解析的实质:基于不同的来源,DNS服务器返回不同的结果

DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址。如访问者是网通用户,DNS策略解析服务器会把你的域名对应的网通IP地址解析给这个访问者。DNS策略解析服务器会把您域名对应的电信IP地址解析给这个访问者。

实验环境:DNS服务器是在centos6.4 32位操作系统上实现的,中间用了一台H3C的防火墙。Internet用的是一台电脑pc模拟的。

实验中用到的MysqL-5.5.15-linux2.6-i686.tar.gz可以到MysqL的官方网站 www.MysqL.com 下载,

也可以到 http://pan.baidu.com/disk/home?frm=hao123 下载,

bind-9.8.6-P1.tar.gz可以到 http://pan.baidu.com/disk/home?frm=hao123 下载。

网络拓扑图如下:

试验结果预期:内网用户解析出来的地址是192.168.80.12,外网地址解析出来的地址是61.130.130.1.

[root@localhost ~]# tar -zxvf MysqL-5.5.15-linux2.6-i686.tar.gz -C /usr/local/

把源码解压到/usr/local/目录下

[root@localhost ~]# cd /usr/local/

[root@localhost local]# ln -s MysqL-5.5.15-linux2.6-i686 MysqL

进入解压好的目录,为了方便访问给此目录创建一个快捷方式

[root@localhost local]# cd MysqL

[root@localhost MysqL]# vim INSTALL-BINARY

进入MysqL目录,里边有一个INSTALL-BINARY文件,这是个安装帮助文档,可以看到如下步骤介绍:

[root@localhost ~]# groupadd MysqLsts

[root@localhost ~]# useradd -r -g MysqL MysqL

创建一个MysqL组并添加一个账号MysqL

[root@localhost MysqL]# chown -R MysqL .

[root@localhost MysqL]# chgrp -R MysqL .

改变所有文件的所有者和所有组都改为MysqL

[root@localhost MysqL]# scripts/MysqL_install_db --user=MysqL

以sql的身份来初始化数据库

[root@localhost MysqL]# chown -R root .

[root@localhost MysqL]# chown -R MysqL data

再把所有者和所有组改回来

[root@localhost MysqL]# cp support-files/my-medium.cnf /etc/my.cnf

将support-files/my-medium.cnf拷贝到 /etc/my.cnf,是否覆盖选择y。

[root@localhost MysqL]# cp support-files/MysqL.server /etc/init.d/MysqLd

[root@localhost MysqL]# chmod a+x /etc/init.d/MysqLd

给MysqLd执行权限

[root@localhost MysqL]# service MysqLd start

启动服务MysqLd。

发现出现错误:

如果出现此错误的话,就把刚才做的命令重新执行一遍:

[root@localhost MysqL]# chown -R MysqL .

[root@localhost MysqL]# chgrp -R MysqL .

[root@localhost MysqL]# scripts/MysqL_install_db --user=MysqL

[root@localhost MysqL]# chown -R root .

[root@localhost MysqL]# chown -R MysqL data

后边拷贝的那两步就不用重做了,然后再次开始MysqLd服务,运行成功!

[root@localhost MysqL]# netstat -tupln |grep 3306

查看MysqLd端口是否打开


端口已经打开。

[root@localhost MysqL]# chkconfig --add MysqLd

[root@localhost MysqL]# chkconfig MysqLd on

将MysqLd设为开机自动启动。

[root@localhost MysqL]# vim /etc/profile

PATH=$PATH:/usr/local/MysqL/bin

为了方便使用目录下的bin文件,将它加入到系统文件中:

[root@localhost MysqL]# . /etc/profile

重新读取profile文件:(重新登录也可以)

[root@localhost MysqL]# MysqLadmin -u root -p password '123'然后直接回车

给MysqL创建一个管理员用户,密码为123

到这里,MysqL已经安装完毕。


接下里安装bind:

[root@localhost ~]# tar -zxvf bind-9.8.6-P1.tar.gz -C /usr/local/src/

解压bind安装包

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# ll

total 4

drwxrwxr-x. 12 10132 wheel 4096 Oct 16 08:09 bind-9.8.6-P1

[root@localhost src]# cd bind-9.8.6-P1/

切换到bind目录

[root@localhost bind-9.8.6-P1]# ./configure --prefix=/usr/local/bind9 --with-dlz-MysqL=/usr/local/MysqL --enable-threads=no --disable-openssl-version-check

[root@localhost bind-9.8.6-P1]# make && make install 执行make命令已经make install

[root@localhost bin]# cd /usr/local/bind9/

进入此目录,此目录为bind的安装目录

[root@localhost bind9]# cd sbin/

[root@localhost sbin]# ./rndc-confgen -a

执行此命令会在/usr/local/bind9/etc/下产生一个rndc.key 文件

[root@localhost sbin]# ./rndc-confgen >../etc/named.conf

生成named.conf 文件

以上两步最好不要在终端中做,因为在终端中做文件生的特别慢,最好是直接在系统中执行命令。

现在进入/usr/local/bind9/etc/目录会发现其中有三个文件:

进入named.conf文件:

去掉第20行至23行前边的#:

修改option如下:

directory "/usr/local/bind9/etc/";

pid-file "/usr/local/bind9/var/run/named.pid";

allow-query { any; };

recursion no;

version "gaint-d1"

在此文件中创建“lan”和“wan”两个访问控制链表:

并在此文件中添加以下内容:

view "lan-view" {

match-clients {lan;};

dlz "MysqL zone" {

database "MysqL

{host=127.0.0.1 dbname=mydata ssl=false user=root pass=123}

{select zone from lan_dns_records where zone='$zone$'}

{select ttl,type,mx_priority,case when lower(type)='txt' then concat('\"',data,'\"') 32 when lower(type) = 'soa' then concat_ws(' ',resp_person,serial,refresh,retry,expire,minimum) 33 else data end from lan_dns_records where zone='$zone$' and host='$record$'}";

};

};

view "wan-view" {

match-clients {wan;};

dlz "MysqL zone" {

database "MysqL

{host=127.0.0.1 dbname=mydata ssl=false user=root pass=123}

{select zone from wan_dns_records where zone='$zone$'}

{select ttl,'\"')

when lower(type) = 'soa' then concat_ws(' ',minimum)

else data end from wan_dns_records where zone='$zone$' and host='$record$'}";

};

到此处为止,bind也基本安装完成。

接下来给数据库中添加内容:

[root@localhost etc]# MysqL -u root -p

Enter password:

以管理员身份登录MysqL

MysqL> create database mydata;

创建数据库mydate

MysqL> use mydata;

打开mydate

创建lan表:

create table lan_dns_records (

zone varchar (255),

host varchar (255),

type varchar (255),

data varchar (255),

ttl int(11),

mx_priority varchar (255),

refresh int(11),

retry int(11),

expire int(11),

minimum int(11),

serial bigint(20),

resp_person varchar (255),

primary_ns varchar (255)

);

创建wan表:

create table wan_dns_records (

zone varchar (255),

primary_ns varchar (255)

);

可以看到现在数据库中有如下表:

Centos环境下的DNS智能解析

MysqL> insert into lan_dns_records (zone,host,ttl,retry) values ('abc.com','www','A','192.168.80.12','86400','15');

MysqL> insert into wan_dns_records (zone,'61.130.130.1','15')

两表格中各插入一条记录。

此时可看到数据库中的两个表中有如下数据:

使用/usr/local/bind9/sbin/named -g -d 1 -c /usr/local/bind9/etc/named.conf指令测试:

发现出错,缺少一个libMysqLclient.so.18库文件

其实这个文件时存在的,在/usr/local/MysqL/lib/目录下,

[root@localhost sbin]# vim /etc/ld.so.conf.d/MysqL.conf

在/etc/ld.so.conf.d/下随便建一个文件,比如叫做MysqL.conf 然后将此库文件的路径写入:

/usr/local/MysqL/lib/

[root@localhost sbin]# ldconfig

执行ldconfig刷新缓存。

[root@localhost etc]# ifconfig eth0:0 61.130.130.10 netmask 255.255.255.0

给网卡eth0再加个地址61.130.130.0/24网段内的,以便测试之用。

[root@localhost etc]# dig www.abc.com @192.168.80.12

[root@localhost etc]# dig www.abc.com @61.130.130.10

测试结果如下:

然后进入防火墙配置:

[H3C]int eth0/0

[H3C-Ethernet0/0]ip add 192.168.80.254 255.255.255.0

[H3C-Ethernet0/0]int eth0/4

[H3C-Ethernet0/4]ip add 61.130.130.100 255.255.255.0

[H3C-Ethernet0/0]quit

[H3C]firewall zone trust

[H3C-zone-trust]add int eth0/4

[H3C-zone-trust]quit

[H3C]firewall zone untrust

[H3C-zone-untrust]add int eth0/0

[H3C-Ethernet0/4]nat server protocol udp global 61.130.130.1 53 inside 192.168.80.12 53

配置完成后可以测试一下:

测试成功!


CentOS 7搭建简单的DNS分离解析服务

CentOS 7搭建简单的DNS分离解析服务

实验环境:

1.win10系统一台作为局域网内的客户机。
2.win10系统一台作为广域网的客户机。
3.CentOS7系统一台作为DNS服务器。

CentOS 7搭建简单的DNS分离解析服务

实验准备:

1.在服务器系统上安装DNS服务程序“bind”,注意:需要在联网环境下安装。

输入:yum install bind -y

CentOS 7搭建简单的DNS分离解析服务

2.安装完毕后,给centOS7系统增加一块网卡,加上原来共两块网卡的网络模式均设为仅主机模式。

CentOS 7搭建简单的DNS分离解析服务

3.分别将系统win10、win10-1的网络模式改为仅主机模式。

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

4.进入centOS7系统,用“ifconfig”命令查看网卡是否添加成功。

CentOS 7搭建简单的DNS分离解析服务

5.现在我们开始网卡的配置,首先配置“ens33”网卡。

输入:cd /etc/sysconfig/network-scripts/
输入:vim ifcfg-ens33
将dhcp改为static
添加:
IPADDR=192.168.100.1
NETMASK=255.255.255.0

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

6.将“ens33”网卡的配置文件复制一份命名为“ens36”,然后用vim编辑器对它进行编辑。

输入:cp -p ifcfg-ens33 ifcfg-ens36
输入:vim ifcfg-ens36
删除:UUID=7bdb3fdc-0c3b-4a92-918d-3815b0816b02
将所有“ens33”改为“ens36”
将“192.168.100.1”改为“12.0.0.1”

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

7.重启网络服务,并用“ifconfig”命令查看是否配置成功。

输入:service network restart
输入:ifconfig

CentOS 7搭建简单的DNS分离解析服务

8.给系统win10配上局域网IP地址“192.168.100.100”,网关和DNS都设置为“192.168.100.1”。win10-1系统配置广域网IP地址“12.0.0.12”,网关和DNS都设置为“12.0.0.1”。

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

主配置文件的配置:

1.用vim编辑器对主配置文件“/etc/named.conf”进行配置,将监听的IP和允许查询的范围都改为“any”。

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

2.用“4dd”将根域解析文件内容的从主配置文件中剪切出来。

CentOS 7搭建简单的DNS分离解析服务

区域配置文件的配置:

1.用vim编辑器对区域配置文件“/etc/named.rfc1912.zones”进行配置。

添加:
view "lan" {
        match-clients { 192.168.100.0/24; };

        zone "kgc.com" IN {
          type master;
          file "kgc.com.lan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };
};

view "wan" {
        match-clients { 12.0.0.0/24; };

        zone "kgc.com" IN {
          type master;
          file "kgc.com.wan";
        };
};
删除:后面所有内容

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

区域数据配置文件的配置:

1.用“cp -p”命令保留权限复制一份“name.localhost”文件,命名为“kgc.com.lan”。然后用vim编辑器对其进行编辑。

输入:cd /var/named/
输入:cp -p named.localhost kgc.com.lan
输入:vim kgc.com.lan

CentOS 7搭建简单的DNS分离解析服务

2.文件配置如下。

$TTL 1D
@       IN SOA  kgc.com. admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kgc.com.
        A       192.168.100.1
www IN  A       192.168.100.99
smtp IN A       192.168.100.88

CentOS 7搭建简单的DNS分离解析服务

3.用“cp -p”命令保留权限复制一份“kgc.com.lan”文件,命名为“kgc.com.wan”。然后用vim编辑器对其进行编辑。

输入:cp -p kgc.com.lan kgc.com.wan
输入:vim kgc.com.wan

CentOS 7搭建简单的DNS分离解析服务

4.文件配置如下:

$TTL 1D
@       IN SOA  kgc.com. admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kgc.com.
        A       12.0.0.1
www IN  A       12.0.0.1
smtp IN A       12.0.0.1

CentOS 7搭建简单的DNS分离解析服务

5.开启DNS服务,并关闭防火墙和增强性安全功能。

输入:systemctl start named
输入:systemctl stop firewalld.service
输入:setenforce 0

CentOS 7搭建简单的DNS分离解析服务

6.分别用win10主机和win10-1主机测试,都能对域名进行解析。

CentOS 7搭建简单的DNS分离解析服务


CentOS 7搭建简单的DNS分离解析服务

centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?

centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?

现在要求php的环境支持tsl1.2和sha-256,php的curl库升级到curl 7.35.0,openssl升级到openssl/1.0.1f,但是通过配资文件查看curl的ssl version是nss,如果修改为openssl?
入下图ssl version处如何变更为openssl
centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?
centos 6.5 php的curl的ssl version 为什么是nss/3.19.1 而不是openssl/1.0.1f 如何变更?

回复内容:

现在要求php的环境支持tsl1.2和sha-256,php的curl库升级到curl 7.35.0,openssl升级到openssl/1.0.1f,但是通过配资文件查看curl的ssl version是nss,如果修改为openssl?
入下图ssl version处如何变更为openssl
centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?
centos 6.5 php的curl的ssl version 为什么是nss/3.19.1 而不是openssl/1.0.1f 如何变更?

针对你的问题,在我的开发环境里亲自实践了一遍成功了,说下步骤:

  1. 先来一次yum update,把openssl更新到最新版本
    centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?

  2. 然后确认curl的ssl版本是不是openssl,centos默认安装的是NSS
    centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?

    立即学习“PHP免费学习笔记(深入)”;

如果检测不是如上图的openssl,就要下载curl重新编译

wget https://curl.haxx.se/download/archeology/curl-7.19.7.tar.gz
tar xvzf curl-7.19.7.tar.gz
cd curl-7.19.7
./configure --prefix=/usr/local/curl/ --without-nss --with-ssl
sudo make && sudo make install
登录后复制

备份默认的curl二进制文件
sudo mv /usr/bin/curl /usr/bin/curl.bak
然后做一个新的curl软链
sudo ln -s /usr/local/curl/bin/curl /usr/bin/curl

然后再curl --version确认是否已经是openssl的版本

  1. 下载对应版本的PHP源码包,重新编译安装php的curl扩展

    wget http://cn2.php.net/get/php-5.6.21.tar.gz
    tar xvzf php-5.6.21.tar.gz
    cd phpphp-5.6.21/ext/curl
    phpize
    ./configure --with-curl=/usr/local/curl/ --with-php-config=/usr/local/php/bin/php-config
    sudo make && sudo make install

安装完毕以后会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目录下生成curl.so

注意:如果原来安装过curl扩展,那么要先删除curl.so

最后重启下php-fpm,再确认下phpinfo

centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?

Centos6环境下搭建DNS服务器

Centos6环境下搭建DNS服务器

配置域主服务器

阶段:

1.在bind的主配置文件中添加该域

2.在/var/named中创建该域的zone文件

3.编辑zone文件,添加需要的信息

4.检测防火墙或selinux设置

5.启动bind服务

6.使用host或nslookup命令 检测域信息是否正常

安装bind

yum install -y bind bind-chroot bind-utils

Centos6环境下搭建DNS服务器

BIND配置文件保存在:

/etc/named.conf 主配置文件

/var/named/ 域zone文件位置

修改主配置文件

vim /etc/named.conf (如下图1)

修改完毕,保存退出

接着配置zone文件

修改zone配置文件vim /etc/named.rfc1912.zones (如下图2)

Centos6环境下搭建DNS服务器

Centos6环境下搭建DNS服务器

配置正向解析(如下图一)

cd /var/named/

cp named.localhost helome.com.zone

vim helome.com.zone(一定要和主配置文件里面定义的zone文件名一致)

配置反向解析(如下图二)

cp named.localhost 32.168.192.zone

vim 32.168.192.zone

保存退出!

Centos6环境下搭建DNS服务器

Centos6环境下搭建DNS服务器

更改防火墙设置和selinux设置

getenforce

setenforce 0

iptables –F(如下图一所示)或者vim /etc/sysconfig/iptables#配置防火墙端口(如下图二所示)

-AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT

-AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

-AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT

service iptables save

service iptables restart#重启防火墙,使规则生效

Centos6环境下搭建DNS服务器

Centos6环境下搭建DNS服务器

启动bind

service named start

修改/etc/resolv.conf文件

vim /etc/resolv.conf

Centos6环境下搭建DNS服务器

Centos6环境下搭建DNS服务器

测试检测域信息是否正常

检查之前先看下 配置文件有没有读取权限ll /var/named(如果没有chmod +r /var/named/* 即可)

Centos6环境下搭建DNS服务器

使用host或nslookup命令 检测域信息是否正常(如下图所示)

host mail.helome.com

nslookup mail.helome.com

到此DNS服务器的搭建就完毕了。

Centos6环境下搭建DNS服务器

bind文件配置过程中容易出错

以下命令用以检查bind配置文件及zone文件语法

named-checkconf/etc/named.conf

named-checkzone helome.com /var/named/helome.com.zone

Centos6环境下搭建DNS服务器

一定要检查配置文件有没有读取权限

CentOS下搭建智能DNS系统wdDNS 的方法

CentOS下搭建智能DNS系统wdDNS 的方法

centos下搭建智能dns系统wddns 的方法

v3功能亮点

1 完全重构,性能更高及更稳定

2 数据支持文本与mysql数据库方式的,更灵活及需求选择

3 独立运行,不依懒wdCP,更易部署及扩展

4 支持API调用开发,易于个性化支持与服务

5 支持批量操作,适合站群或特殊用户的特殊需求

目前v3没有业务系统,如多用户支持,在线支付及自助开通,流量统计等

更合适个人或中小企业自用,站群应用,内部网解析应用,局部DNS劫持应用等

如需要智能DNS运营版,仍可考虑v2版本,或等后续v3的升级版

为提供更好的服务与支持,v3将继续提供免费的基础版和收费的高级版

安装环境说明及方法

环境:CentOS 6.x/7.x,其它系统尚未测试

安装前,需要系统已安装好并动行mysql,在安装过程中,需要输入mysql的root用户密码

下载安装
wget http://down.wdlinux.cn/in/wddns3_install.sh && sh wddns3_install.sh
登录后复制

安装完默认后台,用户,密码:

http://ip:8091

admin/wdlinux.cn
登录后复制

以上就是CentOS下搭建智能DNS系统wdDNS 的方法的详细内容,更多请关注php中文网其它相关文章!

我们今天的关于Centos环境下的DNS智能解析centos配置dns解析的分享就到这里,谢谢您的阅读,如果想了解更多关于CentOS 7搭建简单的DNS分离解析服务、centos6.5 - centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?、Centos6环境下搭建DNS服务器、CentOS下搭建智能DNS系统wdDNS 的方法的相关信息,可以在本站进行搜索。

本文标签: