dhcp简介
DHCP (Dynamic Host Configuration Protocol,动态主机管理协议)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设备或网络供应商自动分配IP地址,通常会应用在大型的局域网环境中或局域网内存在比较多的移动办公设备,DHCP协议能够实现集中的管理、分配IP地址。
DHCP服务程序能够使局域网内的主机自动且动态的获取IP地址、子网掩码、网关地址以及DNS服务器地址等信息,且能够有效的提升地址使用率,提高配置效率,减少管理和维护成本。
安装DHCPD
万事第一步,更新~
[root@localhost ~]# yum update
dhcp软件包默认是在epel-release仓库源里的,所以需要安装epel-release。
yum install epel-release
yum install -y dhcp
配置DHCP
安装好了后来到/etc/dhcp/ 默认没有dhcpd.conf文件
配置文件:/etc/dhcp/dhcpd.conf
配置文件模板:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
租约文件:/var/lib/dhcpd/dhcpd.leases
dhcp首个分配的子网必须是系统的网段,例:centos网卡的ip为192.168.1.50,则
标准的DHCP配置文件包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数:
[root@localhost dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
default-lease-time 600; #全局配置
max-lease-time 7200; #全局配置
subnet 192.168.1.0 netmask 255.255.255.0 { #子网网段声明
range 192.168.1.50 192.168.1.150;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.50;
broadcase-address 192.168.1.255;
}
subnet 192.168.2.0 netmask 255.255.255.0 { #子网网段声明
range 192.168.2.1 192.168.2.150;
option routers 192.168.2.254;
option domain-name-servers 192.168.1.50;
broadcase-address 192.168.1.255;
}
全局配置参数用于定义整个配置文件的全局参数,而子网网段声明用于配置整个子网段的地址属性,具体参数有:
参数 作用
ddns-update-style类型 定义DNS服务动态更新的类型,类型包括:none(不支持动态更新),interim(互动更模式)与ad-hoc(特殊更新模式)。
allow/ignore client-updates 允许/忽略客户机更新DNS记录。
default-lease-time 21600 默认超时时间。
max-lease-time 43200 最大超时时间。
option domain-name-servers 8.8.8.8 定义DNS服务器地址。
option domain-name "domain.org" 定义DNS域名。
range 定义用于分配的IP地址池。
option subnet-mask 定义客户机的子网掩码。
option routers 定义客户机的网关地址。
broadcase-address 广播地址 定义客户机的广播地址。
ntp-server IP地址 定义客户机的网络时间服务器(NTP)。
nis-servers IP地址 定义客户机的NIS域服务器的地址。
hardware 硬件类型 MAC地址 指定网卡接口的类型与MAC地址。
server-name 主机名 通知DHCP客户机服务器的主机名。
fixed-address IP地址 将某个固定IP地址分配给指定主机。
time-offset 偏移差 指定客户机与格林尼治时间的偏移差。
如果需要IP地址和MAC地址绑定,使用如下配置:
host test {
hardware ethernet 00:0c:29:25:9b:33;
fixed-address 192.168.80.80; #将某个固定IP地址分配给指定主机。
option subnet-mask 255.255.255.0; #定义客户机的子网掩码。
option routers 192.168.80.2; #定义客户机的网关地址。
option domain-name-servers 114.114.114.114, 8.8.8.8; #定义DNS服务器地址。
}
这样就是根据MAC地址分配ip地址了,MAC地址可以通过ifconfig或者ipconfig获得。
接下来就是实现dhcp,拓扑如下(渣渣拓扑)
首先在VM虚拟网络设置将dhcp关掉
dhcp服务器ip为192.168.1.50/24,客户端网段为192.168.2.0/24
如果不是GUI界面我们必须要将dhcp-server的网关写入配置文件,在此我们将dhcp-server设置成静态ip
ensp不做多解释只做dhcp中继(懒了)
最后重启dhcp
[root@Dhcp-Dns ~]# systemctl restart dhcpd
来到ensp客户机设置成ip配置为dhcp
到这里dhcp就算完成了。
DNS简介
DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地。
基本工作流程
相关概念
1、域名
域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。
2、FQDN
FQDN全称为Fully Qualified Domain Name,即完全合格域名。FQDN由两个部分组成:主机名和域名。因为DNS是逐级管理的,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例,在第二层中,.com就是域名,google就是主机名,而到了第三层中,.google.com就成了域名,www就成了主机名。
注意:主机名与域名并不是依据"."来划分的,主机名中也可以包含"."号的,主要还是要根据域名的注册情况来划分。
3、正向解析
从FQDN转换为IP地址称为正向解析。
4、反向解析
从IP地址转换为FQDN称为反向解析。
5、区域
正向解析或反向解析中,每个域的记录就是一个区域。
DNS的解析库
DNS的主要作用是进行主机名的解析。解析:根据用户提供一种名称,去查询解析库,以得到另一种名称。 正向解析与反向解析使用不同的解析库。
资源记录:rr(resource record),有类型的概念;用于此记录解析的属性。
A:Address地址 IPv4
AAAA:Address地址 IPv6
NS:Name Server域名服务器
SOA:Start of Authority授权状态
MX:Mail Exchanger邮件交换
CNAME:Canonical Name规范名
PTR:Pointer指针
DNS搭建
[root@Dhcp-Dns ~]yum install -y bind bind-chroot bind-utils
BIND配置
1、BIND配置文件保存在两个位置:
/etc/named.conf - BIND服务主配置文件
/var/named/ - zone文件(域的dns信息)
修改named.conf配置
options {
listen-on port 53 { any; }; #修改为any
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; #修改为any
修改named.rfc1912.zones
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "8owe.com" IN { #正向解析
type master;
file "8owe.com.zone";
};
zone "1.1.1.in-addr.arpa" IN { #反向解析
type master;
file "1.1.1.zone";
};
然后在/var/named/ 下创建8owe.com.zone和1.1.1.zone文件
8owe.com.zone
$TTL 1D
@ IN SOA 8owe.com. admin.8owe.com.com. (
0 ; serial
1D ; refresh # 主从刷新时间
1H ; retry # 主从通讯失败后重试间隔
1W ; expire # 缓存过期时间
3H ) ; minimum # 没有TTL定义时的最小生存周期
NS ns1.8owe.com.
NS ns2.8owe.com.
A 127.0.0.1
AAAA ::1
MX 10 mx.8owe.com.
ttl IN A 192.168.1.2
www IN A 192.168.1.2
bbs IN CNAME www
mx IN A 192.168.1.2
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.2
1.1.1.zone
$TTL 1D
@ IN SOA 8owe.com. admin.8owe.com. (
0
2H
10M
7D
1D )
NS ttl.8owe.com.
A 127.0.0.1
AAAA ::1
22 IN PTR 8owe.com.
33 IN PTR www.8owe.com.
11 IN PTR ns1.8owe.com.
11 IN PTR ns2.8owe.com.
66 IN PTR mx.8owe.com.
最后检查、启动
[root@Dhcp-Dns ~]# named-checkzone "8owe.com" /var/named/8owe.com.zone
[root@Dhcp-Dns ~]# systemctl start named-chroot
此时nslookup就能解析到了!