https://www.jianshu.com/p/251811ef1405
DNS (Domain Name System,域名系统),其主要作用就是将主机名解析成ip地址的过程,完成了从域名到主机识别ip地址之间的转换。
DNS的域名结构
DNS解析域名到IP需要经过三个阶段:
DNS负载均衡技术的实现原理是:在DNS服务器中为同一个主机名配置多个IP地址,多个IP地址以轮询的方式选择。
-- 下方内容来自网易Java架构师课程截图
使用DIG工具查看对域名yes.163.com的解析:
DNS负载均衡:
对同一个请求的域名,映射为不同的服务器IP地址。
HTTP重定向:
HTTP代理(比如浏览器)向Web服务器请求某一url后,Web服务器根据http响应头信息中的location标记来返回一个新的url,然后http代理继续请求访问这个新的url。
反向代理负载均衡:
反向代理指的是以代理服务器来接收对Web服务器的连接请求,然后转发给内部网络中不同的Web服务器,并将从Web服务器请求得到的结果返回给请求连接的客户端,以Nginx为代表。
NAT负载均衡:
将公网地址映射为多个私网地址,解决IP地址紧张,不想让外部网络知道内部网络结构的问题。
CDN:
CDN即Content Delivery Network,内容分发网络。通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到离用户最近的缓存节点作为服务提供节点。
混合型负载均衡:
在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。
sudo yum -y install bind
安装完之后可以使用
whereis named.conf
查看配置文件地址,我这里使用的是Fedora来操作的,所以这个配置文件的地址在 /etc/named.conf,之前看视频看到有的人的配置文件是拆分开的,如 named.conf.local 和 named.conf.options,但是我这边是合并在一起的,具体我也不是很清楚,但是影响不是很大,反正都是修改相应的部分。
sudo emacs /etc/resolv.conf
我这里是使用了emacs来编辑,如果没有安装emacs,也可以使用vim来编辑,不影响
nameserver 192.168.1.7 # 这里设置本地DNS解析指向本机IP,具体需要替换成自己的IP哦
search localdomain
sudo emacs /etc/named.conf
然后修改内容,主要有两个地方
贴一个完整的配置
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.1.7; }; // 这里是修改过的内容
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
geoip-directory "/usr/share/GeoIP";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
// 这里是新增的内容
zone "lazyfennec.cn" {
type master;
file "/etc/bind/db.lazyfennec.cn";
};
cd /etc
sudo mkdir bind
cd /bind
sudo emacs db.lazyfennec.cn
然后编辑内容即可
$TTL 604800
@ IN SOA lazyfennec.cn root.localhost. (
1 ; serial
604800 ; refresh
1H ; retry
1W ; expire
3H) ; minimum
;
@ IN NS localhost.
lazyfennec.cn IN NS 192.168.1.7
yes IN A 192.168.1.7
yes IN A 192.168.1.8
yes IN A 192.168.1.9
保存退出
sudo systemctl start named
测试一下
dig yes.lazyfennec.cn
结果
但是我这边有个问题,好像使用ping的时候,会出现点问题,这里容我后续再去了解验证一下,如果有哪位大佬知道,希望可以在下方留言评论,非常感谢!!!
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~