DHCP原理及中继原理及配置!
Posted 龙少。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DHCP原理及中继原理及配置!相关的知识,希望对你有一定的参考价值。
DHCP原理及中继原理及配置!
一.概念
DHCP:动态主机配置协议,由internet工作任务小组设计开发,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议;使用的udp67、68端口,服务器端使用67/udp,客户端使用68/udp。
二.DHCP的好处
减少管理员的工作量
避免输入错误的可能
避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
为大量客户机自动分配地址,提高集中管理
减轻管理和维护成本,提高网络配置效率
三.DHCP的分配
1.DHCP的分配方式
自动分配:分配到一个IP地址后永久使用
手动分配:有DHCP服务器管理员专门制定IP地址
动态分配:使用完后释放该IP,供其他客户机使用
2.DHCP的可分配信息
网卡的ip地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
四.DHCP的工作原理(租约过程)
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程,分为四个步骤
① 客户端从零开始,所以源ip:0.0.0.0,不知道目标ip,所以需要发广播,目标地址:255.255.255.255,源端口:68,目标端口:67;
② 客户端发现DCHP服务器,源ip:DHCP服务器,仍需要发送广播,目标ip:255.255.255.255,源端口:67,目标端口offer同时携带ip地址、网关、dns等参数;
③ 因为广播域中不止存在一台DHCP服务器,有多台DHCP都向服务器发送的offer时,客户端需要发广播,源ip:0.0.0.0,目标ip:255.255.255.255,且默认服务器确认收到的第一个offerr,其余offer不接收,源端口:68,目标端口:67;
④ 是服务器需要跟客户端再次确认IP地址,所以还是发广播。第四步结束之后才获得IP地址。
再三广播确认是因为使用的是UDP协议,UDP协议本身是不稳定的,需要再三确认;若使用的TCP协议的话,本身TCP协议的搭建在三次握手的基础上,在很稳定的基础上就可以直接获得ip地址。
五.DHCP的租期
租期是整个DHCP过程的基础,DHCP服务器提供每个IP地址都有相应的租用期。
IP租约期限到达50%时,DHCP客户端就会请求更新IP地址租约;
DHCP客户端在租约期限到达87.5%时,还没有收到服务器相应,会申请重新绑定IP;
如果IP租约到期前都没有收到服务器的响应,客户端停止使用此IP地址;
如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE 报文,释放该IP地址
需要说明一点的是,并不是到87.5%就释放了,若回应UNack,先回到RELEASE,时间到了100%,IP地址释放,再回到DISCOVER状态。
六.DHCP租约配置文件和日志目录
租约配置文件
/var/lib/dhcpd/dhcpd.leases
日志目录
/var/log/messages
[root@xu ~]# tail -f /var/log/messages
May 30 12:48:01 xu systemd: Started Session 8968 of user root.
May 30 12:48:01 xu systemd: Started Session 8965 of user root.
May 30 12:48:01 xu systemd: Started Session 8967 of user root.
May 30 12:48:01 xu systemd: Started Session 8966 of user root.
May 30 12:48:01 xu systemd: Started Session 8970 of user root.
May 30 12:48:01 xu systemd: Started Session 8969 of user root.
May 30 12:48:01 xu systemd: Started Session 8971 of user root.
May 30 12:48:01 xu systemd: Started Session 8972 of user root.
May 30 12:48:04 xu chronyd[6120]: Selected source 139.199.215.251
May 30 12:49:37 xu journal: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed
May 30 12:50:02 xu systemd: Started Session 8973 of user root.
May 30 12:50:02 xu systemd: Started Session 8974 of user root.
May 30 12:50:02 xu systemd: Started Session 8975 of user root.
七.DHCP配置
1.搭建DHCP 服务给客户机自动分配ip
准备3台虚拟机,2台linux1台win10,其中一台linux做dhcp服务器。
(1)dhcp服务端选择nat模式,下载dhcp安装
[root@xu ~]# hostname dhcp
[root@xu ~]# bash
[root@dhcp ~]# yum -y install dhcp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: centos.cs.nctu.edu.tw
* extras: ftp.sjtu.edu.cn
* updates: ftp.sjtu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-82.el7.centos 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
dhcp x86_64 12:4.2.5-82.el7.centos base 515 k
事务概要
================================================================================
安装 1 软件包
总下载量:515 k
安装大小:1.4 M
Downloading packages:
dhcp-4.2.5-82.el7.centos.x86_64.rpm | 515 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 12:dhcp-4.2.5-82.el7.centos.x86_64 1/1
验证中 : 12:dhcp-4.2.5-82.el7.centos.x86_64 1/1
已安装:
dhcp.x86_64 12:4.2.5-82.el7.centos
完毕!
您在 /var/spool/mail/root 中有新邮件
[root@dhcp ~]# rpm -q dhcp
dhcp-4.2.5-82.el7.centos.x86_64
再把模式改成仅主机模式
查看
(2)设置相关配置文件
[root@dhcp ~]# cp -p /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.nat
[root@dhcp ~]#
[root@dhcp ~]#
[root@dhcp ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@dhcp ~]# systemctl restart network
[root@dhcp ~]#
[root@dhcp ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.44.100 netmask 255.255.255.0 broadcast 192.168.44.255
inet6 fe80::3339:805:9ff3:5382 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f7:67:91 txqueuelen 1000 (Ethernet)
RX packets 485445 bytes 711040083 (678.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 188991 bytes 11572597 (11.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@dhcp ~]#
[root@dhcp ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf //主配置文件
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases //租约的文件
/var/lib/dhcpd/dhcpd6.leases
[root@dhcp ~]#
[root@dhcp ~]# cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@dhcp ~]#
[root@dhcp ~]# vim /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
(3)启动服务并查看服务是启动成功
[root@dhcp ~]# systemctl start dhcpd
[root@dhcp ~]#
[root@dhcp ~]# netstat -aunp | grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 67193/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 7182/dnsmasq
[root@dhcp ~]#
(4)验证业务是否成功
① 进入win10查看验证是否可以自动获取设置的配置
② 进入另一台linux客户端查看验证
vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@dhcp ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.44.11 netmask 255.255.255.0 broadcast 192.168.44.255
inet6 fe80: : 404c:531f: 44d:5f23 prefixlen 64 scopeid 0x20<link>
ether 00: 0c: 29: 00: b0: 8c txqueuelen 1000 (Ethernet)
RX packets 486943 bytes 711170552 (678.2 MiB)
RX packets 1280768 bytes 1735798028( 1.6 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
Tx packets 619849 bytes 41297799 ( 39.3 MiB)
Tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[ root@localhost~] #
[root@dhcp ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.44.100 0.0.0.0 UG 100 0 0 ens33
192.168.44.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@dhcp ~]#
dhcp客户端可以查看服务器状态
dhclient -d ens33
2.搭建DHCP服务并绑定客户机mac分配固定ip
对客户机win10分配固定ip
(1)查看win10mac
00:0C:29:63:3D:FC
(2)更改配置文件
vim /etc/dhcp/dhcpd.conf
(3)重启服务并查看服务是否成功
[root@dhcp ~]# systemctl restart dhcpd
[root@dhcp ~]#
[root@dhcp ~]# netstat -aunp | grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 69412/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 7182/dnsmasq
(4)进入win10客户机查看验证
这里可以查看一下租约的文件
/var/lib/dhcpd/dhcpd.leases
此文件是随DHCP安装而形成的,刚开始是空的,随着dhcp使用增加内容
打开查看一下内容
vim /var/lib/dhcpd/dhcpd.leases
3.DHCP服务端添加一块网卡接通外网下载抓包软件抓包
(1)添加一块网卡选择NAT模式
查看网卡
[root@dhcp ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.44.100 netmask 255.255.255.0 broadcast 192.168.44.255
inet6 fe80::3339:805:9ff3:5382 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f7:67:91 txqueuelen 1000 (Ethernet)
RX packets 493743 bytes 711734215 (678.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 189672 bytes 11664534 (11.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.206.161 netmask 255.255.255.0 broadcast 192.168.206.255
inet6 fe80::ea5e:9c92:c145:5d60 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f7:67:9b txqueuelen 1000 (Ethernet)
RX packets 24 bytes 6431 (6.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 44 bytes 6643 (6.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 266 bytes 23064 (22.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 266 bytes 23064 (22.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:b5:13:98 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
(2)ping通外网测试
[root@dhcp ~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=128 time=5.81 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=128 time=5.96 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=3 ttl=128 time=6.67 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=4 ttl=128 time=4.93 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=5 ttl=128 time=5.69 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=6 ttl=128 time=5.30 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=7 ttl=128 time=5.60 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=8 ttl=128 time=7.17 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=9 ttl=128 time=5.10 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=10 ttl=128 time=5.18 ms
^C
--- www.a.shifen.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 18035ms
rtt min/avg/max/mdev = 4.937/5.745/7.174以上是关于DHCP原理及中继原理及配置!的主要内容,如果未能解决你的问题,请参考以下文章