linux dns函数,Linux DNS (1)的基本概念
欢迎大家留言 ,有什么好的建议都可以说
我这个文章那里做的不到位,希望大家给予意见
我们共同进步。谢谢大家。
DNS服务器
DNS是Domain Name System,它能够把形如www.lampmaster.cn本站域名转换为219.136.249.93这样的IP地址;没有DNS,浏览www.lampmaster.cn时,就必须用219.136.249.93这么难记的数字来访问。提供DNS服务的就是DNS服务器。
DNS服务器可以分为三种,高速缓存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。
DNS作用:
正向解析:将域名转换成对应的ip地址
反向解析:将ip地址转换成对应的域名
域名解析过程
一次递归多次迭代
DNS使用端口 :
TCP 53
UDP 53
NDS的配置文件:
/var/named/chroot/etc/named.conf # 主配置文件
/var/named/chroot/var/named # 区域文件目录
/var/named/zonefile #数据文件
/usr/share/doc/bind*/sample/ #模版文件
/var/log/messages #日志文件
/var/named/chroot/etc/named.caching-nameserver.conf # 模板
named.conf 配置解析:
- type :类型
- hint :根区域
- master :主区域
- slave :从区域
- forward :转发区域
DNS解析的作用:
正向解析:
- 根据主机名称(域名)查找其对应的IP地址
- 这是最基本,最常用的功能
反向解析:
- 根据IP地址查找其对应的主机名称(域名)
- 反垃圾邮件/安全防护等领域使用
DNS分布式结构:
DNS解析过程:
DNS主配置文件内容解说如下:
[root@localhost ~]# vim /var/named/chroot/etc/named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver 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.
// 上面这行是告诉我们模板在那里。
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { 127.0.0.1; };
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";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { localhost; };
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
全局配置文件解释:
options :用于指定BIND服务的参数,
listen-on port :指定BIND侦听的DNS查询请求的本机IP地址及端口。
listen-on-v6 port :指定BIND侦听的DNS查询请求的本机IP地址及端口,只是用与IPv6.。
directory :指定区域配置文件所在的路径,默认是“/var/named”如果是使用了“chroot”该路径会是一个相对的路径,“/var/named/chroot/var/named”
dump-file : 当执行 rndc dumpdb 命令时, DNS服务器存放数据库文件的路径名。
statistics-file : 当执行 rndc stats 命令时,服务器会将统计信息追加到的文件路径名。
memstatistics-file : DNS服务器输出的内存使用统计文件的路径名。
query-source port :指定客户端提交 DNS 查询时必须使用的源端口。
allow-query : 指定接受 DNS 查询请求的客户端。
logging : 用于指定BIND服务的日志参数
view : 用于指定主配置文件存放路径及名称。
match-clients :指定提交DNS客户端的源IP地址范围。
match-destinations : 指定提交DNS客户端的目标IP地址范围。
recursion : 指定 DNS 客户端是否提交递归查询。
include : 指定主配置文件
[root@localhost ~]# vim /var/named/chroot/etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files. # 这个是告诉我们模板的位置。
//
zone "." IN { # 定义根域
typehint; # 类型hint
file "named.ca"; # 根域信息在named.ca
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN { # 本地正解定义
type master; # 类型为master
file "localhost.zone"; # 正解文件名
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN { # 本地反解定义
type master; # 类型为master
file "named.local"; # 反解文件名
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
DNS区域配置文件:
- $TTL (Time Live 生存时间)
- SOA (Start Of Authority,授权信息开始)
- 分号“.”开始的部分表示注释
1)正向解析格式:
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost ~]# vim localdomain.zone
$TTL 86400 # 有效记录的生存周期
@ IN SOA localhost root (
42 ; serial (d. adams) # 更新序号
3H ; refresh # 刷新时间
15M ; retry # 重试间隔
1W ; expiry # 失效时间
1D ) ; minimum # 无效记录的生存周期
IN NS localhost
localhost IN A 127.0.0.1
注释:
NS: 代表域名服务器(Name Server)记录
A : 代表地址(Address)记录,用在正向解析区域
2)反向解析格式:
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost ~]# vim named.local
$TTL 86400 # 有效记录的生存周期
@ IN SOA localhost root (
42 ; serial (d. adams) # 更新序号
3H ; refresh # 刷新时间
15M ; retry # 重试间隔
1W ; expiry # 失效时间
1D) ; minimum # 无效记录的生存周期
IN NS localhost.
1 IN PTR localhost.
注释:
PTR:代表指针(Point)记录,用在反向解析区域,第一列指定IP地址中的主机地址部分即可。
泛域名解析:
$ : 代表变量。
$GENERATE 1-200 station$ IN A 192.168.4.$
$GENERATE 1-200 $ IN PTR station$.baidu.com
$GENERATE # 函数
1-200 # 要循环的变量
station$# 主机名
192.168.4.$# 对应的IP地址
linux dns函数,Linux DNS (1)的基本概念相关推荐
- linux receive函数,Linux网络 - 数据包的接收过程
的方式写入到指定的内存地址,该地址由网卡驱动分配并初始化.注: 老的网卡可能不支持DMA,不过新的网卡一般都支持. 3: 网卡通过硬件中断(IRQ)通知CPU,告诉它有数据来了 4: CPU根据中断表 ...
- linux线程调度函数,Linux调度策略及线程优先级设置
Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃 3, ...
- linux sysconf函数,linux c sysconf函数 得到系统配置
函数原型: NAME sysconf - Get configuration information at runtime SYNOPSIS #include long sysconf(int nam ...
- linux blind函数,Linux网络编程入门
上一节创建socket时,仅指定了协议类型以及服务类型,但是没有指定具体的socket地址. bind函数含义如词义,给上述创建的套接字socket绑定一个socket地址. 比喻如下:我们创建了so ...
- make找不到linux内核函数,linux内核make menuconfig出错
今天实验刚从服务器上迁移过来的维护的linux 9260的内核,使用make menuconfig时出错,报错为: yongtao@yongtao-desktop:~/public/linux_rel ...
- linux put函数,Linux内核中的get_user和put_user
当标号1处发生缺页异常时,系统将调用do_page_fault提交物理页面,然后跳到__get_user_bad继续执行.get_user函数如果成果执行则返回1,否则返回-EFAULT. put_u ...
- linux timerfd_settime函数,Linux的timerfd分析
timerfd是Linux为用户程序提供的一个定时器接口.这个接口基于文件描述符,所以能够被用于select/poll的应用场景. 1.使用方法 timerfd提供了如下接口供用户使用 timerfd ...
- linux asm函数,Linux 字符设备驱动—— ioremap() 函数解析
一. ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的相关寄存器来进行的,通常包括控制寄存器.状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址.根据CPU体系结构的不同, ...
- linux setlocale函数,linux中的多语言环境(LC_ALL, LANG, locale)
为了在Linux下实现多语言支持,必须在定制安装程序时,引入与glibc和图形环境两者对应的多语言环境支持.对于glibc环境而言,它是整个Linux中文化的基础,我们需要在/usr/share/lo ...
最新文章
- 【论文解读】MV3D-Net、AVOD-Ne用于自动驾驶的多视图3D目标检测网络
- 百度面试 中缀表达式变成后缀表达式
- 程序员一夜暴富捷径?不,别被轻易骗进“独角兽”
- Maven发布web项目到tomcat
- java web 缓存省市县_实现 Java 本地缓存,该从这几点开始
- 影视剪辑,视频剪辑的万能剪辑技巧来啦,剪辑技巧合集
- 微信小程序开发之微信小程序交互
- 【IDE】【WebStorm】html排版设置head和body缩进
- docker技术简介
- 计算机word的关闭怎么办,为什么我的计算机word文档打开和关闭缓慢
- Canonical Coordinate System
- 教您如何远离电脑病?
- 用matlab求 矩阵每一列的平方和 最小值及其下标
- SSL2811 2017年10月30日提高组T2 摘Galo(树形dp)
- Python制作二维码1
- c语言用空格分隔和用逗号分隔,c语言程序设计课呵件第02章简单程序设计.ppt
- windows文件服务器双机热备_实战教程:如何建立双机热备系统
- 给ubuntu中谷歌配置host
- 本周AI热点回顾:机器人写稿同样拥有著作权、大脑中竟存在“分布强化学习”
- 500G硬盘的实际容量
热门文章
- git mergetool 解决冲突的问题
- Python实战从入门到精通第十一讲——可接受任意数量参数的函数
- Don't stop pretraining,继续预训练!
- 召回离线评估指标(二)
- fit_generator生成的history显示 key_error,并且没有loss 和 val_accuracy
- Leetcode每日一题:197.rising-temperature(上升的温度)
- 蓝桥杯 基础练习 回文数
- Selective Search for Object Recognition解读
- 反向传播算法的详细解释(下)
- Mac安装prometheus+grafana监控