1、讲述dhcp服务的原理
dhcp服务可分以下几个阶段:
- 搜寻dhcp服务阶段
dhcp 客户端启动时,网卡启动自动在网络中发送 discover 报文广播,并且它现在的IP地址是0.0.0.0 子网掩码是 255.255.255.255 。网络中所有主机都会收到这个报文,但是只有dhcp 服务器会回应。 - dhcp 服务器响应阶段
dhcp 服务器收到 discover 报文后,通过解析报文,在地址池中选择合适的IP地址,然后以dhcp offer 报文的形式通知客户端,这里可以提供dhcp的服务。 - 客户端请求提供服务阶段
此时客户端向 dhcp 服务器发起 request 服务请求,获取 IP、子网掩码、网关、DNS等信息 - dhcp 服务器确认阶段
服务器收到请求后,确认该IP还可用,然后便响应一个包含IP等信息的 ack 报文,同时服务器标记这个IP已被使用。客户端绑定这个IP后,网络中的其他dhcp 服务器则回收之前提供的IP。 - dhcp 客户端重新登录网络阶段
通过上次获取的dhcp服务器的地址,重新发送使用该IP的请求,服务器收到请求后,尝试让客户端使用原来的IP地址,并回一个ack报文。如果该IP被占用,将回一个nak报文,重新分配新的IP给客户端。 - dhcp 客户端续约阶段
服务器提供IP地址是有一定的有效期,客户端需要发送续约请求才能继续使用。客户端在租期的50%时,向服务器发送 renew 续租报文。
2、用ansible安装nginx服务
ansible all -m yum -a'name=nginx'
3、详细叙述ansible的工作原理
工作原理我们可以简单这样理解:ansible 读取yaml文件,转换成相应的python code ,然后通过ssh协议copy到目标主机上执行,最后将结果传回来。
4、叙述dns服务的原理
主机查询FQDN对应的IP地址的流程如下:
- 主机首先查找本地的hosts文件是否有对应的记录
- 没有查到后向配置DNS服务器发起请求,这时DNS服务器将在自己的缓存查找,没有的话将向根服务器发起请求
- 根服务器回一个下一级域名的服务器地址,DNS服务器再向下一级服务器发起请求
- DNS服务器再得到一个二级域名的服务器地址,再发起查询请求,这样一级一级递归查询,直到查询到IP后,将结果返回给查询主机。DNS将这个查询结果缓存在自己服务器上,供下次查询使用。
5、讲述vmlinuz、initrd.img的作用
vmlinuz 是内核程序,用于系统初始化,运行用户空间第一个应用程序 /sbin/init
initrd.img是 在为了内核加载根分区阶段,为其提供相应的驱动支持
6、使用ansible在多台机器上添加用户
# 新建一个 user.yaml 的playbook文件
---
- hosts: all
remote_user: root
tasks:
- name: "create user"
user: name=test state=present
# 然后在命令行中调用
ansible-playbook user.yaml
参考资料