|NO.Z.00016|——————————|^^ 部署 ^^|——|Linux&DNS服务.V05--|——|4台server|智能DNS|分离解析|
一、智能DNS(分离解析)
### --- 智能DNS(分离解析)
### --- 实验原理:
~~~ #DNS分离解析即将相同域名解析为不同的IP地址,
~~~ 显示网络中一些网站为了让用户有更好的体验效果解析速度更快,
~~~ 就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度。
二、不做分离解析的时候配置文件之间的管理
### --- 不做分离解析的时候配置文件之间的管理
~~~ 用户请求进来后进入主配置文件;然后会有一个访问的平衡限制来决定是否运行访问,
~~~ 若允许则通过include标签调用named.rfc1912.zones的配置文件,
~~~ 该配置文件配置着对应的正向解析和反向解析声明的域,
~~~ 然后对应的会有正向配置文件和反向配置文件各自写各自的解析内容,
~~~ 若用户访问的是正向请求,
~~~ 则对应的访问正向解析的配置文件找到正向的数据配置文件进行解析,
~~~ 若是反向则找反向。标准DNS的模式。

三、分离解析配置解析关系
### --- 分离解析配置解析关系
~~~ 来自于不同的客户端来源地址当访问到DNS分离解析服务器的时候,
~~~ 主配置文件就会匹配你是来自于哪里的客户端,
~~~ 若你是来自于内网的就匹配到内网的配置文件,若是外网的就匹配到外网的配置文件,
~~~ 每一个局域配置文件就有对应的数据配置文件,也就对应的正向和反向解析配置文件。


四、实验环境
### --- 实验环境:
~~~ 一台内网测试机(单网卡)
~~~ 一台网关+DNS(双网卡)
~~~ 一台外网测试机(但网卡)
~~~ 一台web服务器(双网卡)
~~~ 先关闭服务器和客户机的防火墙和selinux
### --- 实验步骤:
~~~ 安装bind软件
~~~ 内核配置文件开启路由转发,修改/etc/sysctl/conf
~~~ 修改主配置文件/etc/named.conf
view lan {
match-clients { 192.168.10.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/lan.zones";
};
view wan {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/wan/zones";
};
#include "/etc/named.rfc1912.zones";
inclued "/etc/named.root.key";
~~~ 注意:不同的解析放在了各自的局域配置文件(便于区分和维护更新)
### --- 生成自己定义的局域文件(方向解析省略掉了)
cp -a named.rfc1912.zones lan
cp -a named.rfc1912.zones wan
### --- 配置数据文件
~~~ 配置内网的正向解析文件
~~~ 配置外网的正向解析文件
### --- 重启服务
service named restart
### --- 效果测试
~~~ 内网客户端网卡配置
~~~ 将DNS和网关都指向为网关服务器的内网口地址
~~~ 外网客户端网卡配置
~~~ 将DNS和网关都指向为网关服务器的外网口地址
一、智能DNS;DNS的分离解析
### --- 智能DNS;DNS的分离解析
### --- ——>硬件环境<——
centos6.x-server10:192.168.10.10 DNS 内网 lan client
centos6.x-server20:192.168.10.20 100.100.100.20 DNS web server 两张网卡
centos6.x-server30:192.168.10.30 100.100.100.30 DNS server 两张网卡
centos6.x-server40:100.100.100.40 DNS 外网 wan client
二、DNS分离解析
### --- DNS分离解析:环境准备:
### --- 网卡及地址规划说明
vmnat10:192.168.10.0/24
vmnat11:100.100.100.0/24
centos6.x-server10: vmnat10:192.168.10.10
centos6.x-server20: vmnat10:192.168.10.20 vmnat11:100.100.100.20
centos6.x-server30: vmnat10:192.168.10.30 vmnat11:100.100.100.30
centos6.x-server40: vmnat11:100.100.100.40
### --- lan client网卡配置:
[root@server10 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.30
DNS1=192.168.10.30
[root@server10 ~]# service network restart
### --- web server网卡配置:
[root@server20 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.20
NETMASK=255.255.255.0
[root@server20 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=100.100.100.20
NETMASK=255.255.255.0
[root@server20 ~]# service network restart
### --- DNS server网卡配置
[root@server30 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.30
NETMASK=255.25.255.0
[root@server30 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=100.100.100.30
NETMASK=255.255.255.0
[root@server30 ~]# service network restart
### --- wan 网卡配置
[root@server40 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
NAME=ens33
ONBOOT=yes
IPADDR=100.100.100.40
NETMASK=255.255.255.0
GATEWAY=100.100.100.30
DNS1=100.100.100.30
[root@server40 ~]# service network restart
centos6.x-server20:192.168.10.20 100.100.100.20 DNS web server 两张网卡
### --- 安装Apache服务
[root@server20 ~]# yum install -y httpd
[root@server20 ~]# vim /var/www/html/index.html
This is the DNS server fenlijiexi.com
[root@server20 ~]# service httpd restart
### --- 通过内外网测试Apache服务是否可以运行
[root@server10 ~]# curl 192.168.10.20
This is the DNS server fenlijiexi.com
[root@server40 ~]# curl 100.100.100.20
This is the DNS server fenlijiexi.com
centos6.x-server30:192.168.10.30 100.100.100.30 DNS server 两张网卡
### --- 安装bind服务
[root@server30 ~]# yum install -y bind
### --- 开启内核路由转发
[root@server30 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@server30 ~]# sysctl -p
net.ipv4.ip_forward = 1
### --- 修改主配置文件,添加参数
[root@server30 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; // any所有两张网卡都可以解析
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
view lan { // 内网的视图声明
match-clients { 192.168.10.0/24; }; // IP访问的凭令;大括号写来自哪里的客户端;匹配成功则调用这个的局域的配置文件include "lan.zones";
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/lan.zones"; // 添加一条include声明
};
view wan { // 外网的视图声明
match-clients { any; }; // 匹配的顺序是自上而下,不可以写100.100.100.0/24而是any所有。
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/wan.zones"; // include只能写在lan或者wan标签当中,因为include和zones属于同级别的。
};
#include "/etc/named.rfc1912.zones"; // include用不到了,注释掉
include "/etc/named.root.key";
### --- 配置分析解析内外网局域解析配置文件
[root@server30 ~]# cp -a /etc/named.rfc1912.zones /etc/lan.zones // 配置正向的内网的配置文件配置
[root@server30 ~]# vim /etc/lan.zones
zone "atyanqi.com" IN {
type master;
file "lan.localhost";
allow-update { none; };
};
[root@server30 ~]# cp -a /etc/named.rfc1912.zones /etc/wan.zones // 配置正向的外网的配置文件配置
[root@server30 ~]# vim /etc/wan.zones
zone "atyanqi.com" IN {
type master;
file "wan.localhost";
allow-update { none; };
};
### --- 生成各自的数据配置文件
[root@server30 ~]# cp -a /var/named/named.localhost /var/named/lan.localhost
[root@server30 ~]# vim /var/named/lan.localhost // 内网数据配置文件
$TTL 1D
@ IN SOA atyanqi.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.atyanqi.com.
dns A 192.168.10.30
www A 192.168.10.20
[root@server30 ~]# cp -a /var/named/lan.localhost /var/named/wan.localhost
[root@server30 ~]# vim /var/named/wan.localhost // 外网数据配置文件
$TTL 1D
@ IN SOA atyanqi.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.atyanqi.com.
dns A 100.100.100.30
www A 100.100.100.20
### --- 启动服务:启动成功,说明DNS服务器的配置是正确的。
[root@server30 ~]# service named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
centos6.x-server10:192.168.10.10 DNS 内网 lan client
### --- 内网测试验证:
[root@server10 ~]# curl www.atyanqi.com
This is the DNS server fenlijiexi.com // 可以正常解析
[root@server10 ~]# yum install -y bind-utils
[root@server10 ~]# nslookup www.atyanqi.com // 解析到内网的解析地址
Server: 192.168.10.30
Address: 192.168.10.30#53
Name: www.atyanqi.com
Address: 192.168.10.20
centos6.x-server40:100.100.100.40 DNS 外网 wan client
### --- 外网测试验证:
[root@server40 ~]# curl www.atyanqi.com
This is the DNS server fenlijiexi.com // 可以正常解析
[root@server10 ~]# yum install -y bind-utils
[root@server40 ~]# nslookup www.atyanqi.com // 解析到外网的解析地址
Server: 100.100.100.30
Address: 100.100.100.30#53
Name: www.atyanqi.com
Address: 100.100.100.20
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通