DNS服务器分离解析
什么是分离解析
• 当收到客户机的DNS查询请求的时候
– 能够区分客户机的来源地址
– 为不同类别的客户机提供不同的解析结果(IP地址)
– 为客户机就近提供服务器
DNS服务器=互联网的导航员
BIND的view视图
• 根据源地址集合将客户机分类
– 不同客户机获得不同结果(待遇有差别)
– 所有的客户端都要找到自己的类别
– 分类的匹配由上到下依次匹配,原则:匹配及停止
– 所有的zone都必须写在view中
view "vip" {
match-clients { 客户端来源地址1; .. ..; };
zone "12306.cn" IN {
...... 地址库1;
}; };
view "other" {
match-clients { 客户端来源地址2; .. .. ; };
zone "12306.cn" IN {
...... 地址库2;
}; };
view "haha" {
match-clients { any; }; 任意
zone "12306.cn" IN {
...... 地址库3;
}; };
案例需求及要点
• 环境及需求
– 权威DNS:svr7.tedu.cn 192.168.4.7
– 负责区域:tedu.cn
– A记录分离解析 —— 以 www.tedu.cn 为例
客户机来自 解析结果
192.168.4.207 --www.tedu.cn—》192.168.4.100
其他地址 --www.tedu.cn—》1.2.3.4
虚拟机A:
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
view "haha" {
match-clients { 192.168.4.207; }; #匹配客户端来源IP地址
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone"; #定义地址库文件
};
};
view "xixi" {
match-clients { any; }; #匹配客户端来源地址,任意
zone "tedu.cn" IN {
type master;
file "tedu.cn.other"; #定义地址库文件
};
};
[root@svr7 ~]# cd /var/named
[root@svr7 named]# vim tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
[root@svr7 named]# cp -p tedu.cn.zone tedu.cn.other
[root@svr7 named]# vim tedu.cn.other
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
[root@svr7 named]# systemctl restart named
案例需求及要点
• 环境及需求
– 权威DNS:192.168.4.7
– 负责区域:tedu.cn qq.com
– A记录分离解析 以 www.tedu.cn与www.qq.com为例
客户机来自 解析结果
192.168.4.207 --www.tedu.cn---》192.168.4.100
其他地址 --www.tedu.cn---》1.2.3.4
192.168.4.207 --www.qq.com---》192.168.4.200
其他地址 --www.qq.com---》10.20.30.40
在每一个view中,zone的个数保持一致
在每一个view中,zone负责的域名保持一致
虚拟机A:
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
view "haha" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN { #定义新的zone
type master;
file "qq.com.zone"; #指定地址库文件,写入解析结果为192.168.4.200
};
};
view "xixi" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";
};
zone "qq.com" IN { #定义新的zone
type master;
file "qq.com.other"; #指定地址库文件,写入解析结果为10.20.30.40
};
};
[root@svr7 ~]# cd /var/named
[root@svr7 named]# vim qq.com.zone
qq.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.200
[root@svr7 named]# cp -p qq.com.zone qq.com.other
[root@svr7 named]# vim qq.com.other
qq.com. NS svr7
svr7 A 192.168.4.7
www A 10.20.30.40
了解内容:
定义 acl地址列表
[root@svr7 /]# vim /etc/named.conf
acl test { 192.168.4.207; 192.168.4.100; 192.168.4.8; 192.168.7.0/24; 192.168.1.1; 192.168.2.0/24; };
view "haha" {
match-clients { test; };
.......
RAID阵列概述
• 廉价冗余磁盘阵列
– Redundant Arrays of Inexpensive Disks
– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘
– 阵列的价值:提升I/O效率、硬件级别的数据冗余
– 不同RAID级别的功能、特性各不相同
• RAID 0,条带模式
– 同一个文档分散存放在不同磁盘
– 并行写入以提高效率
– 至少需要两块磁盘组成
• RAID 1,镜像模式
– 一个文档复制成多份,分别写入不同磁盘
– 多份拷贝提高可靠性,效率无提升
– 至少需要两块磁盘组成
• RAID5,高性价比模式
– 相当于RAID0和RAID1的折中方案
– 需要至少一块磁盘的容量来存放校验数据
– 至少需要三块磁盘组成
• RAID6,高性价比/可靠模式
– 相当于扩展的RAID5阵列,提供2份独立校验方案
– 需要至少两块磁盘的容量来存放校验数据
– 至少需要四块磁盘组成
• RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的优势
– 并行存取提高效率、镜像写入提高可靠性
– 至少需要四块磁盘组成
对比项 RAID 0 RAID 1 RAID 10 RAID 5 RAID 6
磁盘数 ≧ 2 ≧ 2 ≧ 4 ≧ 3 ≧ 4
存储利用率 100% ≦ 50% ≦ 50% n-1/n n-2/n
校验盘 无 无 无 1 2
容错性 无 有 有 有 有
IO性能 高 低 中 较高 较高
进程管理
程序:静态的代码 占用磁盘空间
进程:动态执行的代码 占用 CPU 与 内存
父进程与子进程 整体为树型结构 僵尸进程 孤儿进程
进程标识:PID
查看进程树
• pstree — Processes Tree
– 格式:pstree [选项] [PID或用户名]
• 常用命令选项
– -a:显示完整的命令行
– -p:列出对应PID编号
systemd:所有进程的父进程,上帝进程
虚拟机A:
[root@svr7 ~]# pstree #查看整棵进程树信息
[root@svr7 ~]# pstree lisi #查看lisi用户的进程
bash───vim
[root@svr7 ~]# pstree -p lisi #显示PID
bash(30931)───vim(30963)
[root@svr7 ~]# pstree -ap lisi #显示完整的命令信息
bash,30931
└─vim,30963 a.txt
[root@svr7 ~]#
• ps aux 操作
– 列出正在运行的所有进程,信息全面
• ps -elf 操作
– 列出正在运行的所有进程,可以看到父进程的PID值
PPID列:父进程的PID值
统计正在运行的进程个数
虚拟机A:
[root@svr7 ~]# wc -l /etc/passwd
24 /etc/passwd
[root@svr7 ~]# ps aux | wc -l
[root@svr7 ~]# ps -elf | wc -l
[root@svr7 ~]# wc -l /var/log/messages
[root@svr7 ~]# find /etc/ -name "*.conf" | wc -l
进程动态排名
• top 交互式工具
– 格式:top [-d 刷新秒数] [-U 用户名]
P(大写)按CPU进行排序
M(大写)按内存进行排序
检索进程
• pgrep — Process Grep
– 用途:pgrep [选项]… 查询条件
• 常用命令选项
– -l:输出进程名,而不仅仅是 PID
– -U:检索指定用户的进程
– -x:精确匹配完整的进程名
虚拟机A:
[root@svr7 ~]# pgrep -l a
[root@svr7 ~]# pgrep -l crond
[root@svr7 ~]# pgrep -l cro
[root@svr7 ~]# pgrep -lU lisi
[root@svr7 ~]# pstree -ap lisi
进程的前后台调度
• 在命令行末尾添加“&”符号,不占用当前终端
• Ctrl + z 组合键
– 挂起当前进程(暂停并转入后台)
• jobs 命令
– 查看后台任务列表
• fg 命令
– 将后台任务恢复到前台运行
• bg 命令
– 激活后台被挂起的任务
虚拟机A:
[root@svr7 ~]# sleep 1000 & #正在运行放入后台
[root@svr7 ~]# jobs #查看后台进程信息
[root@svr7 ~]# sleep 800
^Z #按Ctrl+z暂停放入后台
[2]+ 已停止 sleep 800
[root@svr7 ~]# jobs #正在运行放入后台
[root@svr7 ~]# bg 2 #将后台编号为2的进程继续运行
[root@svr7 ~]# jobs
[root@svr7 ~]# fg 1 #将后台编号为1的进程恢复到前台
sleep 1000
^C #按Ctrl+c结束运行的进程
[root@svr7 ~]# fg 2 #将后台编号为2的进程恢复到前台
sleep 800
^C #按Ctrl+c结束运行的进程
[root@svr7 ~]# jobs
杀死进程
• 干掉进程的不同方法
– Ctrl+c 组合键,中断当前命令程序
– kill [-9] PID… 、kill [-9] %后台任务编号
– killall [-9] 进程名…
– pkill [-9] 查找条件
虚拟机A:
[root@svr7 ~]# sleep 800 &
[root@svr7 ~]# sleep 800 &
[root@svr7 ~]# sleep 800 &
[root@svr7 ~]# sleep 800 &
[root@svr7 ~]# jobs -l
[root@svr7 ~]# kill 2728
[root@svr7 ~]# jobs -l
[root@svr7 ~]# kill -9 2731
[root@svr7 ~]# jobs -l
[root@svr7 ~]# killall sleep
[root@svr7 ~]# jobs -l
日志管理
日志的功能:
• 系统和程序的“日记本”
– 记录系统、程序运行中发生的各种事件
– 通过查看日志,了解及排除故障
– 信息安全控制的“依据”
• 由系统服务rsyslog统一记录/管理
– 日志消息采用文本格式
– 主要记录事件发生的时间、主机、进程、内容
• 常见的日志文件
/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
日志分析
• 通用分析工具
– tail、tailf、less、grep等文本浏览/检索命令
– awk、sed等格式化过滤工具
tailf:实时跟踪日志消息
[root@svr7 ~]# echo 123 > /opt/1.txt
[root@svr7 ~]# tailf /opt/1.txt
123
用户登录分析
• users、who、w 命令
– 查看已登录的用户信息,详细度不同
pts:图形终端
• last、lastb 命令
– 查看最近登录成功/失败的用户信息
[root@svr7 ~]# users
[root@svr7 ~]# who
[root@svr7 ~]# last -2 #最近登陆成功的2条信息
[root@svr7 ~]# lastb -2 #最近登陆失败的2条信息
日志消息的优先级
• Linux内核定义的事件紧急程度
– 分为 0~7 共8种优先级别
– 其数值越小,表示对应事件越紧急/重要
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等
使用journalctl工具
• 提取由 systemd-journal 服务搜集的日志
– 主要包括内核/系统日志、服务日志
• 常见用法
[root@svr7 ~]# journalctl | grep named
[root@svr7 ~]# journalctl -xe #在服务启动失败时,报错信息显示
– journalctl -u 服务名 [-p 优先级]
– journalctl -n 消息条数
– journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS"
systemd介绍
init程序的作用
• Linux系统和服务管理器
– 是内核引导之后加载的第一个初始化进程(PID=1)
– 负责掌控整个Linux的运行/服务资源组合
systemd
• 一个更高效的系统&服务管理器
– 开机服务并行启动,各系统服务间的精确依赖
– 配置目录:/etc/systemd/system/
– 服务目录:/lib/systemd/system/
– 主要管理工具:systemctl
对于服务的管理
systemctl restart 服务名 #重起服务
systemctl start 服务名 #开启服务
systemctl stop 服务名 #停止服务
systemctl status 服务名 #查看服务当前的状态
systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #设置服务不开机自启动
systemctl is-enabled 服务名 #查看服务是否开机自启动
HEL6 运行级别
0:关机
1:单用户模式(基本功能的实现,破解Linux密码)
2:多用户字符界面(不支持网络)
3:多用户字符界面(支持网络)服务器默认的运行级别
4:未定义
5:图形界面
6:重起
切换运行级别:init 5
RHEL7 运行模式/运行级别
字符模式:multi-user.target
图形模式:graphical.target
[student@room9pc01 ~]$ rht-vmctl reset classroom
[student@room9pc01 ~]$ rht-vmctl reset server
虚拟机server:当前直接切换到字符模式
[root@server ~]# systemctl isolate multi-user.target
虚拟机server:当前直接切换到图形模式
[root@server ~]# systemctl isolate graphical.target
虚拟机server:查看每次开机默认进入模式
[root@server ~]# systemctl get-default
graphical.target
虚拟机server:设置永久策略,每次开机自动进入multi-user.target
#systemctl set-default multi-user.target
#reboot