运维面经整理--网络篇--dhcp

在整理篇中主要是对原理的整理和配置的整理:

dhcp:

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

dhcp的工作方式:(重点)

运维面经整理--网络篇--dhcp_第1张图片

1.客户端:利用广播封包发送搜索 DHCP 服务器的封包:
若客户端网络设定使用 DHCP 协议取得 IP (在 Windows 内为『自动取得 IP』),则当客户端开机或者是重新启动网络卡时, 客户端主机会发送出搜寻 DHCP 服务器的 UDP 封包给所有物理网段内的计算机。此封包的目标 IP 会是 255.255.255.255, 所以一般主机接收到这个封包后会直接予以丢弃,但若局域网络内有 DHCP 服务器时,则会开始进行后续行为。

2.服务器端:提供客户端网络相关的租约以供选择:

DHCP 服务器在接收到这个客户端的要求后,会针对这个客户端的硬件地址 (MAC) 与本身的设定数据来进行下列工作:

    到服务器的登录文件中寻找该用户之前是否曾经用过某个 IP ,若有且该 IP 目前无人使用,则提供此 IP 给客户端;
    若配置文件针对该 MAC 提供额外的固定 IP (static IP) 时,则提供该固定 IP 给客户端;
    若不符合上述两个条件,则随机取用目前没有被使用的 IP 参数给客户端,并记录下来。

总之,服务器端会针对客户端的要求提供一组网络参数租约给客户端选择,由于此时客户端尚未有 IP ,因此服务器端响应的封包信息中, 主要是针对客户端的 MAC 来给予回应。此时服务器端会保留这个租约然后开始等待客户端的回应。

>

3.客户端:决定选择的 DHCP 服务器提供的网络参数租约并回报服务器:

由于局域网络内可能并非仅有一部 DHCP 服务器,但客户端仅能接受一组网络参数的租约。 因此客户端必需要选择是否要认可该服务器提供的相关网络参数的租约。当决定好使用此服务器的网络参数租约后, 客户端便开始使用这组网络参数来设定自己的网络环境。此外,客户端也会发送一个广播封包给所有物理网段内的主机, 告知已经接受该服务器的租约。此时若有第二台以上的 DHCP 服务器,则这些没有被接受的服务器会收回该 IP 租约。至于被接受的 DHCP 服务器会继续进行底下的动作。

>

4.服务器端:记录该次租约行为并回报客户端已确认的响应封包信息:
当服务器端收到客户端的确认选择后,服务器会回传确认的响应封包,并且告知客户端这个网络参数租约的期限, 并且开始租约计时喔!那么该次租约何时会到期而被解约 (真可怕的字眼) ?你可以这样想:
    客户端脱机:不论是关闭网络接口 (ifdown)、重新启动 (reboot)、关机 (shutdown) 等行为,皆算是脱机状态,这个时候 Server 端就会将该 IP 回收,并放到 Server 自己的备用区中,等待未来的使用;

    客户端租约到期:前面提到 DHCP server 端发放的 IP 有使用的期限,客户端使用这个 IP 到达期限规定的时间,而且没有重新提出 DHCP 的申请时,就需要将 IP 缴回去!这个时候就会造成断线。但用户也可以再向 DHCP 服务器要求再次分配 IP 啰。

DHCP服务器端的配置:

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "bigstar.com";  #目的主机中/etc/resolv.conf 中 search bigstar.com
option domain-name-servers 114.114.114.114 ;  #目的主机中/etc/resolv.conf 中 nameserver 114.114.114.114.114

default-lease-time 600;   #默认组期为600s
max-lease-time 7200;      #最大组期为7200s

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.


# This is a very basic subnet declaration.

subnet 172.25.77.0 netmask 255.255.255.0 {
  range 172.25.77.10 172.25.77.120;  #ip地址池范围
  option routers 172.25.77.1;  #路由器地址
}


#host fantasia {  #这里是绑定主机的,将MAC地址对应上来,就不会有租约了。
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;
#}

服务端有个租约文件:(可以记录连接dhcp的主机信息)

[root@server1 ~]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1

server-duid "\000\001\000\001\"N\006\356RT\000\242\241J";

lease 172.25.77.10 {
  starts 3 2018/03/28 07:57:30;
  ends 3 2018/03/28 08:07:30;
  cltt 3 2018/03/28 07:57:30;
  binding state active;
  next binding state free;
  hardware ethernet 52:54:00:b9:46:53;
}
lease 172.25.77.10 {
  starts 3 2018/03/28 07:57:30;
  ends 3 2018/03/28 08:07:30;
  tstp 3 2018/03/28 08:07:30;
  cltt 3 2018/03/28 07:57:30;
  binding state free;
  hardware ethernet 52:54:00:b9:46:53;
}
lease 172.25.77.11 {
  starts 3 2018/03/28 08:14:43;
  ends 3 2018/03/28 08:24:43;
  cltt 3 2018/03/28 08:14:43;
  binding state active;
  next binding state free;
  hardware ethernet f0:79:59:1e:7b:56;
  uid "\001\360yY\036{V";
  client-hostname "DESKTOP-SHBBHU6";
}
lease 172.25.77.12 {
  starts 3 2018/03/28 08:15:25;
  ends 3 2018/03/28 08:25:25;
  cltt 3 2018/03/28 08:15:25;
  binding state active;
  next binding state free;
  hardware ethernet b0:25:aa:1a:70:9f;
  uid "\001\260%\252\032p\237";
  client-hostname "DESKTOP-2OA5GC7";
}

你可能感兴趣的:(运维面经整理)