Linux(DNS)中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux(DNS)中相关的知识,希望对你有一定的参考价值。

DNS服务器(svr7)
—— 192.168.10.7

DNS客户机(pc207、svr7、真机、……)
—— 192.168.10.207、192.168.10.7
大多数连网程序(浏览器、ping、……)只能使用默认/首选DNS
DNS测试工具(nslookup、host)使用指定的DNS

host www.baidu.com

host www.baidu.com DNS服务器地址

如何指定默认/首选DNS服务器的地址:

vim /etc/resolv.conf

nameserver DNS服务器的IP地址
或者

nmcli con mod 连接名 ipv4.dns DNS服务器的IP地址

nmcli con up 连接名

DNS的用途:
为客户机提供“域名??的IP地址是多少?”信息查询服务

DNS服务器(svr7)
—— 192.168.10.7
任务1:配置tedu.cn的权威DNS
任务2:特殊解析应用(可选)
1)一个域名 --> 多个IP地址(DNS轮询)
修改tedu.cn域的地址库文件,
www.tedu.cn. A IP地址1
www.tedu.cn. A IP地址2
www.tedu.cn. A IP地址3

2)多个未知站点.tedu.cn --> 同一个IP地址(泛域名解析)
修改tedu.cn域的地址库文件,

  • A IP地址

任务3:智能解析(为不同客户机给不同的解析结果)

C:\Users\iamking> nslookup www.baidu.com
服务器: ACA3000A.ipt.aol.com
Address: 172.163.0.10

非权威应答:
名称: www.a.shifen.com
Addresses: 61.135.169.125
61.135.169.121
Aliases: www.baidu.com

PC机 ==》交换机 ==》路由器 ==》路由器 ==》交换机 ==》服务器

上述设备中,哪一类设备的数量最多/最少?
服务器、路由器

一台PC机,要配置连接到互联网需要哪些参数?
1)IP地址/掩码
2)默认网关
3)DNS服务器

互联网中的DNS服务器的作用?
为客户机提供XX域名的IP地址

当一台PC机通过浏览器访问www.baidu.com网址时 ——
第一步,先查找到www.baidu.com的IP地址(A)
本地缓存 --> /etc/hosts文件 --> /etc/resolv.conf中的nameserver指定的DNS服务器

第二步,向www.baidu.com网站服务器请求网页
封装一个HTTP请求包,发给IP地址A
www.baidu.com网站服务器处理此请求,反馈HTTP应答
PC机成功收到应答,正确显示网页结果

从DNS客户机的角度来看 ——
指定需要查找域名的IP地址时去问哪一台DNS服务器
永久配置:

nmcli con mod ens33 .. .. ipv4.dns DNS服务器地址

nmcli con up ens33

临时配置:

vim /etc/resolv.conf

nameserver DNS服务器地址
手动指定:

host www.baidu.com DNS服务器地址

计算机/上网客户机 ==》首选DNS(缓存)==》官方/权威DNS

任务1:基础DNS服务器搭建
1)装包 bind bind-chroot
2)配置

vim /etc/named.conf —— 负责的区域、地址库存在哪

.. ..

named-checkconf 【正常无输出】

vim /var/named/地址库文件 —— 记录“域名-->IP地址”

named-checkzone 区域名 /var/named/地址库文件

        【正常显示OK】

3)起服务 named

任务2:DNS轮询、泛域名解析
1)DNS轮询 —— 一个域名 --》多个IP地址
修改区域的地址库记录
www.tedu.cn. A IP地址1
www.tedu.cn. A IP地址2
www.tedu.cn. A IP地址3
www.tedu.cn. A IP地址4
2)泛域名解析 —— 不确定站点名.tedu.cn --》固定IP地址
修改区域的地址库记录

  • A 固定IP地址

普通DNS:
任何客户机来查询某个域名A,获得的结果IP地址相同

智能DNS:
不同客户机(联通、电信、……)来查询某个域名A,获得的结果IP地址不相同

任务3:智能DNS
用途:针对XX域名,为不同的客户机提供不同的解析结果
1)装包 bind bind-chroot
2)配置

vim /etc/named.conf

view 类别1 {
.. .. 第1类客户机包括哪些地址
.. .. 为这些客户机使用哪一个地址库文件(a)
};
view 类别2 {
.. .. 第2类客户机包括哪些地址
.. .. 为这些客户机使用哪一个地址库文件(b)
};
3)起服务 named

剁椒鱼头、.. .. 菜谱

地址库文件 —— 菜谱(记录XX菜XX价格)
XX域名 —— 菜名
XX价格 —— 菜价
客户机分类(联通、移动、.. ..) —— 顾客分类(VIP会员、普通顾客)
VIP会员 ---- 剁椒鱼头 38元
普通顾客 ---- 剁椒鱼头 48元

基础DNS配置参考 ——

[[email protected] ~]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" {
type master;
file "tedu.cn.zone";
};

[[email protected] ~]# cat /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ root.tedu.cn (
1
4H
4H
4H
1D
)
@ NS ns.tedu.cn.
ns.tedu.cn. A 192.168.10.7
www.tedu.cn. A 114.115.116.117
bbs.tedu.cn. A 192.168.10.7

智能DNS配置参考 ——
主配置文件:
[[email protected] ~]# vim /etc/named.conf
options {
directory "/var/named";
};
view "svr7" {
match-clients { 192.168.10.7; };
zone "tedu.cn" {
type master;
file "tedu.cn.zone.1";
};
};
view "pc207" {
match-clients { 192.168.10.207; };
zone "tedu.cn" {
type master;
file "tedu.cn.zone.2";
};
};

地址库文件:
[[email protected] ~]# cat /var/named/tedu.cn.zone.1
$TTL 1D
@ IN SOA @ root.tedu.cn (
1
4H
4H
4H
1D
)
@ NS ns.tedu.cn.
ns.tedu.cn. A 192.168.10.7
www.tedu.cn. A 1.1.1.1
bbs.tedu.cn. A 192.168.10.7

[[email protected] ~]# cat /var/named/tedu.cn.zone.2
$TTL 1D
@ IN SOA @ root.tedu.cn (
1
4H
4H
4H
1D
)
@ NS ns.tedu.cn.
ns.tedu.cn. A 192.168.10.7
www.tedu.cn. A 2.2.2.2
bbs.tedu.cn. A 192.168.10.7

快速清理DNS服务端配置:

yum -y remove bind bind-chroot

rm -rf /etc/named* /var/named

排错方法 —— 看系统日志/日记
时间、地点(主机名/IP地址)、人物(进程名)、事情

关注点:error、failed、not、warning、named、tedu.cn.zone、……

1)先清空日志文件

> /var/log/messages

2)故意改错/etc/named.conf

vim /etc/named.conf

.. ..

systemctl restart named

3)查看日志内容变化

less /var/log/messages //分页阅读文件内容

系统日志/日记文件记录的消息格式:
时间、地点(主机名)、人物(程序)、事件

公共消息文件 /var/log/messages,记录了系统及大多数服务的启动/停止/配置异常等重要信息
安全日志 /var/log/secure,记录了用户登录的信息

[[email protected] named]# uptime
10:19:20 up 1:42, 1 user, load average: 0.00, 0.01, 0.05

最近1、5、15分钟之内的平均负载(CPU处理的任务数)

管道操作(把命令1的显示结果交给命令2处理):
命令1 | 命令2

重定向输出操作(把命令1的显示结果保存为文件2):
命令1 > 文件2

列出名称中包含指定关键词的进程的编号:

pgrep 关键词

列出所有进程的编号(. 代表任何字符):

pgrep .

统计进程数量:

pgrep -c .

列出系统中所有的网络连接信息

netstat -anptu

-a,列出所有网络连接
-n,以数字方式显示结果
-p,列出与网络连接相关的进程
-t,列出TCP连接
-u,列出UDP连接

练习:使用手动监控工具
1)使用 uptime 检查CPU负载
2)使用 who | wc -l 了解用户登录情况
3)使用 pgrep -c . 检查进程数
4)使用 iptraf-ng 检查网络流量

SNMP,简单网络管理协议
Agent

SNMP,简单网络管理协议(几乎所有的路由器/交换机默认支持)

练习:准备zabbix服务器环境
1)设置本机域名映射

vim /etc/hosts

192.168.10.7 zbx.tedu.cn
192.168.10.8 svr8.tedu.cn
2)清理旧的LAMP平台

yum -y remove httpd mariadb-server mariadb php php-mysql

rm -rf /etc/httpd/ /var/lib/mysql /var/www

3)安装并启用新的LAMP平台环境

yum -y install httpd mariadb-server mariadb php php-mysql

systemctl restart httpd mariadb

systemctl enable httpd mariadb

4)禁用防火墙、禁用SELinux机制
.. ..

常见问题:
安装LAMP平台时失败,提示
.. .. 软件包xxx需要 php-common-5.5.56.x86_64(低版本)
.. .. 已经安装 php-common-5.5.60.x86_64(高版本)
原因:系统中有已经安装了某个软件的高版本,但是你将要安装的这一套软件又需要低版本,所以因冲突导致失败
解决:

yum -y remove httpd-tools php-common mariadb-libs

yum -y install httpd mariadb-server mariadb php php-mysql

修复:

yum -y install postfix

yum -y install 软件包名... 【找软件源】

yum -y install 软件包安装文件.rpm ... 【找本地已经下载.rpm文件,如果需要依赖包再找软件源】

获取软件资源:
zabbix-server目录 ==>包括9个.rpm包【适用于CentOS7.5系统】

安装zabbix服务器 ——
1)通过WinSCP将zabbix-server目录上传到虚拟机的/root目录下
2)离线安装zabbix相关软件

yum -y install /root/zabbix-server/*.rpm

3)检查安装结果

yum list "zabbix*"

.. ..
已安装的软件包
zabbix-agent.x86_64 3.4.14-1.el7 installed
zabbix-get.x86_64 3.4.14-1.el7 installed
zabbix-server-mysql.x86_64 3.4.14-1.el7 installed
zabbix-web.noarch 3.4.14-1.el7 installed
zabbix-web-mysql.noarch 3.4.14-1.el7 installed

常见问题:
如果虚拟机系统是CentOS 7.3,配置的yum源也是CentOS 7.3
==》21个包
先装zabbix相关包,后装LAMP

建议解决办法:重新装一个CentOS 7.5

安装结果需要调整的地方:

  1. 网站界面 zabbix-web 【需要更改配置】
    调整PHP环境支持当前时区

    vim /etc/httpd/conf.d/zabbix.conf

    php_value date.timezone Asia/Shanghai //注意删除行首的#号

  2. 服务端zabbix-server 【需要更改配置】
    1)准备初始数据库资料

    mysql -uroot

    create database zabbix character set utf8 collate utf8_bin;
    grant all on zabbix.* to [email protected] identified by ‘[email protected]‘;
    quit;

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix [email protected] zabbix

    2)告诉zabbix服务端如何访问数据库资料

    vim /etc/zabbix/zabbix_server.conf

    [email protected] //注意删除行首的#号

  3. 客户端 zabbix-agent 【默认配置】

常见错误:
1)访问zabbix初始页面时
页面提示 –Time zone for PHP is not set (configuration parameter "date.timezone").
原因:date.timezone没有启用(忘记改了,或者前面#没有删除,改完后没有重启httpd服务)

2)网页提示 连接数据库失败
Details–Error connecting to database: Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
原因:mariadb服务没有启动

3)网页提示“未知数据库zabbix”
Details–Error connecting to database: Unknown database ‘zabbix‘
原因:没有创建名为zabbix的库

4)网页提示:前端详细资料与zabbix数据库不匹配
Details–The frontend does not match Zabbix database.
原因:zabbix库里是空的(没有导入初始库资料,或者导入不成功)

5)以用户Admin登入zabbix平台页面报错
–strtotime(): Invalid date.timezone value ‘Asia/Shanhai‘, we selected the timezone ‘UTC‘ for now
原因:设置的时区名称有错误

zabbix控制台的用户 ——
管理员 Admin,密码zabbix
来宾用户 guest,
其他由管理员添加的用户(比如ntdadm)
……

Linux系统的配置文件中,

表示注释、说明

注意观察监控项名称:
Agent ping ===》 这个zabbix客户端是否能ping通
Available memory ===》 可用内存
Processor load (1 min average per core) ===》1分钟平均负载
Processor load (5 min average per core) ===》5分钟平均负载
Processor load (15 min average per core) ===》15分钟平均负载
Number of logged in users ===》登录用户数
Number of processes ===》运行的进程数

键值(如何获取监控数据的预先定义好的方法)
入站流量监控对应的键值:
net.if.in[ens33]
出站流量监控对应的键值:
net.if.out[ens33]

常见问题:
1)无法添加对网卡ens33的监控项,提示 .. .. exists
原因:已经存在自动发现的网卡流量监控项
Network interface discovery: Incoming network traffic on ens33
Network interface discovery: Outgoing network traffic on ens33
解决:先删除上述监控项,重新添加
2)被监控主机zabbix server右侧的可用性标记ZBX是灰色的
原因:
/etc/zabbix/zabbix_server.conf文件中数据库连接有误(没设置密码、密码有错),或者SELinux没有关闭
解决:修正DBPassword设置,重启zabbix-server服务,关闭SELinux
3)被监控主机zabbix server右侧的可用性标记ZBX是红色的
原因:zabbix客户端服务连接失败(忘记启动zabbix-agent服务,或者连接设置有错误)
解决:启动zabbix-agent服务,刷新网页
4)查看网卡流量监控图形时,入站流量有数据、出站流量没有
原因:出站流量的监控项设置有错误
5)查看各种监控图形时,图形中都没有数据
原因:zabbix服务端无法成功连接数据库(DBPassword设置有问题)
6)zabbix-server服务启动失败,或者启动时一直卡着不动
原因:系统资源不足
解决办法:增加内存,虚拟机关机后重开

vim /etc/zabbix/zabbix_server.conf

CacheSize=64M

systemctl restart zabbix-server

补充:手动测试工具(检查是否能获取到监控结果)

zabbix_get -s 127.0.0.1 -k "net.if.in[ens33]"

以上是关于Linux(DNS)中的主要内容,如果未能解决你的问题,请参考以下文章

IDEA中代码模板学习

JavaScript中代码注释的正确方式是啥

NSURLErrorDomain 中代码的含义是啥?

Javascript中代码的执行顺序是啥?

Quartus中代码字体大小的调整方法

AsyncTask 中代码崩溃的旋转屏幕