DHCP
DHCP原理
作用:是一种网络协议,用于自动分配IP地址、子网掩码、默认网关、DNS服务器等TCP/IP参数
1.DHCP的四个报文
1.discover报文: 找寻dhcp服务器
2.offer报文: 服务器回复discover报文并且携带网络配置信息(ip地址 网关 子网掩码信息)
3.request报文:客户机回复request报文告知,收到了配置项并且已经使用
4.ack报文:服务器回复ack报文,确定客户机使用分配的ip地址
1.配置DHCP
第一步需要安装dhcp
yum install dhcp -y
安装完成后可以用rpm -qc dhcp命令看到dhcp的配置文件
cat /etc/dhcp/dhcpd.conf
#查看dhcp配置文件
文件中说明了dhcp的配置文件的模版在
/usr/share/doc/dhcp*这个文件夹下
cp /usr/share/doc/dhcp-4.2.5/ /etc/dhcp/dhcp.conf
#把模版拷贝过来
vim /etc/dhcp/dhcpd.conf
配置dhcp
下一步需要重新启动dhcp程序并且配置想要使用dhcp服务的网卡配置文件
systemctl restart dhcpd
#重启dhcp服务
vim /etc/sysconfig/network-scripts/ifcfg-*
#配置网卡
将bootproto改成dhcp
并且把IP地址和网关和子网掩码和DNS注释掉
systemctl restart network
#重启网络
重启网络后用ifconfig命令看到对应网卡已经成功动态获取到ip地址了
2.配置DHCP固定地址
vim /etc/dhcp/dhcpd.conf
#进入dhcp配置文件下
host fantasia {
hardware ethernet 00:0C:29:69:9B:97;(注意分隔符)
#输入需要配置固定地址的网卡MAC地址
fixed-address 192.168.133.210;
#输入想配置的固定地址
}
配置需要配置固定地址的网卡
配置完成后ifconfig命令可以看到固定地址已经配置成功了
DNS
DNS作用:网址解析为对应IP地址
1.DNS原理
域名的组成:
根域名
一级域名(顶级域)
二级域名
三级域名
例:
www.baidu.com
.代表根域 大家都有 根域所以就省略了
.com 一级域名
.baidu 二级域名
www 主机名
DNS启动过程
DNS各种资源记录
区域解析库:由众多资源记录RR(Resource Record)组成
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
-
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
-
A(internet Address):作用,域名解析成IP地址
-
AAAA(FQDN): --> IPV6
-
PTR(PoinTeR):反向解析,ip地址解析成域名
-
NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器
-
CNAME : Canonical Name,别名记录
-
MX(Mail eXchanger)邮件交换器
-
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
2.安装配置bind(内网域名解析)
安装包名:bind
程序名字:named
配置文件:
/etc/named.conf:主配置文件
/etc/named.rfc1912.zones:区域配置文件 你想解析的域名要在这个文件中指明
数据库配置文件 /var/named/* 指明了域名和ip地址的一一对应关系
[root@localhost ~]yum list bind*
[root@localhost ~]yum install bind bind-utils -y
#主软件 和 配置包管理软件
[root@localhost ~]systemctl stop firewalld.service
[root@localhost ~]setenforce 0
[root@localhost ~]systemctl start named
#开启服务
[root@localhost ~]netstat -ntap |grep named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 17047/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 17047/named
tcp6 0 0 ::1:53 :::* LISTEN 17047/named
tcp6 0 0 ::1:953 :::* LISTEN 17047/named
[root@localhost ~]vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=127.0.0.1
[root@localhost ~]systemctl restart network
[root@localhost ~]rpm -qc bind
#配置文件包
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca #根服务器位置
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
[root@localhost ~]vim /etc/named.conf
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any; };
allow-query { any; };
# // listen-on port 53 { 127.0.0.1; };
# // allow-query { localhost; };
[root@localhost ~]rndc reload
#重新加载DNS服务
server reload successful
[root@localhost named]vim /etc/named.rfc1912.zones
#编写域名
zone "cc.com" {
type master;
file "cc.com.zone";
};
named-checkconf /etc/named.rfc1912.zones
#检查文件格式
[root@localhost named]cd /var/named/
#切换目录
[root@localhost named]ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]cp named.localhost ./cc.com.zone -p
#保留权限复制
[root@localhost named]ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]vim kgc.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@ IN SOA master.kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.91.100
www A 192.168.91.101
www CNAME cdn.kgc.com
cdn A 192.168.91.100
db A 192.168.91.103
IN MX 10 mail.kgc.com.
mail A 192.168.91.10
@ A 192.168.91.100 #不需要 主机名
* A 192.168.91.100 #随便写几个ww
#检查启动文件格式
named-checkconf
named-checkzone cc.com /var/named/cc.com.zone
[root@localhost named]systemctl restart named
#重启bind系统
[root@localhost named]host www.cc.com
#查看dns服务器是否配置成功
3.DNS服务器主从复制
当主服务器出现问题后,可以用从服务器继续提供DNS服务
实验环境:
主服务器地址:192.168.91.100
从服务器地址:192.168.91.101
###从服务器的配置
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install bind bind-utils.x86_64 -y
#从服务器先安装bind软件
[root@localhost etc]# vim /etc/named.conf
#两段改成any
listen-on port 53 { any; };
allow-query { any; };
[root@localhost etc]# vim /etc/named.rfc1912.zones
#添加从服务器的配置文件
zone "kgc.com" IN {
type slave;
#类型从
file "slaves/kgc.com.zone";
#文件地址在/var/named/slaves/ 下
masters { 192.168.91.100; };
#申明主服务器的地址
};
[root@localhost etc]# ls /var/named/slaves
kgc.com.zone
[root@localhost etc]# systemctl start named
#主服务器配置好后再启动
#主服务器配置
[root@localhost etc]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-transfer { 192.168.91.103; };
#添加从服务器的地址
};
[root@localhost etc]#rndc reload