DNS服务基础
DNS服务器的功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名(不常用)
NS(声明DNS记录)
A(正向解析记录)
CNAME(解析记录别名)
安装软件
bind # 域名服务包
bind-chroot #提供虚拟根支持,牢笼政策
默认端口:TCP/UDP 53
主配置文件:/etc/named.conf #负责设置本机负责解析的域名
地址库文件:/var/named/ #完整的主机名域IP对应关系
修改主配置文件
cp /etc/named.conf /root/named.bak #修改前先备份
vim /etc/name.conf
options {
directory "/var/named"; #指定地址库文件存放位置
};
zone "tedu.cn" IN { #指定本机负责解析的域名
type master; #指定主DNS服务器
file "tedu.cn.zone"; #指定创建地址库文件名称
};
建立对应的地址库文件
cp -p name.localhost tedu.cn.zone # 权限不变拷贝
所有的域名都必须以点最为结尾
如果没有以点结尾,默认补全地址库负责的域名
# vim tedu.cn.zone
tedu.cn. NS svr7 #声明域名DNS服务器
svr7 A 192.168.4.7 #DNS服务器地址解析记录
www A 1.1.1.1 #域名正向解析记录
ftp A 2.2.2.2 #域名正向解析记录
重启服务器
systemctl restart named
客户端验证
客户端解析域名优先级:
1./etc/hosts
2./etc/resolv.conf
3.交由本机127.0.0.1:53处理
指定DNS服务器地址
echo nameserver dns服务器ip > /etc/resolv.conf
DNS轮询
• 基于DNS的站点负载均衡
– 一个域名 ---> 多个不同IP地址
泛域名解析
* A 192.168.0.1
任何域名都会解析到192.168.0.1
有规律的泛域名解析
pc1.tedu.cn ------> 192.168.10.1
pc2.tedu.cn ------> 192.168.10.2
pc3.tedu.cn ------> 192.168.10.3
pc4.tedu.cn ------> 192.168.10.4
........
pc50.tedu.cn ------> 192.168.10.50
内置函数: $GENERATE 起始-结束 制造连续范围的数字
$GENERATE 1-50 pc$ A 192.168.10.$
解析记录别名CNAME
#vim/named/
baidu CNAME a.shifen
# baidu 与 a.shifen 的解析结果一致
分离解析
view "nsd" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";--->192.168.4.100
};
zone "sina.com" IN {
type master;
file "sina.com.other";--->10.20.30.40
};
};
view "abc" {
match-clients { 192.168.4.208; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";--->1.2.3.4
};
zone "sina.com" IN {
type master;
file "sina.com.abc";--->192.168.4.120
};
};
view "other" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";--->1.2.3.4
};
zone "sina.com" IN {
type master;
file "sina.com.other";--->10.20.30.40
};
};
DNS服务基础的更多相关文章
- DNS服务基础原理介绍
FQDN 全称域名 localhost(主机名或者是别名).localdomain(域名) FQDN=主机名.域名 根域 . 顶级域名 .com .n ...
- Bind DNS服务——基础知识
Linux基础--Bind DNS服务 Part0 DNS简介 域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库 ...
- Linux:Day18(上) dns服务基础进阶
DNS:Domain Name Service,协议(C/S,53/udp,53/tcp):应用层协议. BIND:Bekerley Internat Name Domain,ISC(www.isc. ...
- 1、DNS服务基础
w'indows上名称解析目录: C:\Windows\System32\drivers\etc https://jocent.me/2017/06/18/dns-protocol-principle ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
- Linux基础服务——Bind DNS服务 Part2
Linux基础服务--Bind DNS服务 Part2 DNS反向解析与区域传送 实验环境延续Part1的实验环境. 反向区域配置 正向解析是域名到IP地址的映射,反向解析则是IP地址到域名的解析,在 ...
- Linux基础服务——Bind DNS服务 Part1
Linux基础服务--Bind DNS服务 Part1 DNS正向解析 实验环境: CentOS8.3.2011 IP地址:192.168.100.50 VMware虚拟环境 NAT网段 需要解析的区 ...
- #WEB安全基础 : HTTP协议 | 0x3 TCP三次握手和DNS服务
TCP三次握手精准无误地把数据送达目标处,TCP协议把数据包送出去后,向对方确认是否成功发送,握手过程中使用了TCP的标志(flag)——SYN和ACK 请看图 若握手中断,TCP协议再次从同样顺序发 ...
- 【Linux】DNS服务-BIND基础配置(二)
BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet ...
随机推荐
- java动态更新枚举类
工作中遇到需要对枚举类的值进行动态更新 手动改不现实也不方便 现记录下来方便以后学习使用 1.在工程utils包中添加动态更新枚举类得工具类(根据自己得项目,放到指定位置调用就可以) 2.一开始陷入了 ...
- 使用pycharm开发web——django2.1.5(一)入坑尝试第一步,基本搭建
首先,接触python的人应该都会用pip 来安装需要的包吧(------>>>>)默认 在运行中使用python -m django --version来检查自己的djang ...
- springboot简易上传下载
1.导入上传下载依赖: <dependency> <groupId>commons-fileupload</groupId> <artifactId>c ...
- [第二季ZYNQ] [南京米联]ZYNQ第二季更新完毕课程共计16节课
ZYNQ第二季更新完毕课程共计16节课全部免费 [第二季ZYNQ] ...
- getContextPath、getServletPath、getRequestURI、getRealPath、getRequestURL、getPathInfo();的区别
<% out.println("getContextPath: "+request.getContextPath()+"<br/>"); ou ...
- Python 常用外部模块详解
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- 植物大战僵尸:查找植物叠加种植CALL
实验目标:我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物. 我们首先需要找到植物的种植CALL,然后在逐步测试观察功能之间 ...
- react的状态管理
近两年前端技术的发展如火如荼,大量的前端项目都在使用或转向 Vue 和 React 的阵营, 由前端渲染页面的单页应用占比也越来越高,这就代表前端工作的复杂度也在直线上升,前端页面上展示的信息越来越多 ...
- react用高阶组件实现路由守卫
react-router不像vue-router一样有很多钩子函数,可以做路由守卫.想实现路由守卫,可以用高阶组件来实现. @connect(state => ({ isLogin: state ...
- JS ES7
指数运算符(幂) ** console.log(3 ** 2); //9 判断数组中包含 Array.prototype.includes(value) var arr1 = [1,2,'a','b' ...