linux上的DHCP服务器与dhcp中继代理.docx
《linux上的DHCP服务器与dhcp中继代理.docx》由会员分享,可在线阅读,更多相关《linux上的DHCP服务器与dhcp中继代理.docx(11页珍藏版)》请在冰豆网上搜索。
![linux上的DHCP服务器与dhcp中继代理.docx](https://file1.bdocx.com/fileroot1/2023-1/22/679ef524-4e65-4f2d-a0cb-5e74e01f5bd1/679ef524-4e65-4f2d-a0cb-5e74e01f5bd11.gif)
linux上的DHCP服务器与dhcp中继代理
Linux-DHCP服务的配置,group,超级作用域,中继代理
DHCP服务的配置
DHCP简介:
DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方式,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,而且也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址。
DHCP作用域是指DHCP服务器可分配给DHCP客户端的IP地址范围,一个DHCP服务器至少要一个作用域,如有多个作用域,作用域之间的IP地址不能重叠。
DHCP的工作原理:
DHCP工作过程分为四个步骤:
第一步(DHCPDISCOVER):
客户端发送广播查找可以给自己提供IP地址的DHCP服务器,
第二步(DHCPOFFER):
DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址打上标记,以防再次分配。
第三步(DHCPREQUEST):
客户端收到广播后再次发送一个广播请求该地址,如果有多台DHCP响应,则第一个收到的优先。
第四步(DHCPACK):
DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池中将该地址打上标记,以防再次分配。
DHCP的基本配置:
第一步:
安装软件:
[root@localhost~]#rpm-ivh/misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
第二步:
编辑配置文件:
[root@localhost~]#vi/etc/dhcpd.conf
#see/usr/share/doc/dhcp*/dhcpd.conf.sample
当进入到配置文件里面时,这里是空的,有如上一行的提示,说可以参考这个文件来编写配置文件,那就复制一份再编辑。
[root@localhost~]#cp-rvf/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample/etc/dhcpd.conf
[root@localhost~]#vi/etc/dhcpd.conf
ddns-update-styleinterim;//配置DHCP和DNS为互动更新模式,
ignoreclient-updates;//忽略客户端的更新。
subnet192.168.100.0netmask255.255.255.0{//定义作用域
optionrouters192.168.100.1;//默认路由
optionsubnet-mask255.255.255.0;//子网掩码
optionnis-domain"";//NIS域名
optiondomain-name"";//DNS域名
optiondomain-name-servers192.168.100.10;//DNS服务器地址
optiontime-offset-18000;#EasternStandardTime//为客户端设置与格林威治的时间偏移
optionntp-servers192.168.1.1;//网络时间服务器地址
optionnetbios-name-servers192.168.1.1;//指定WINS服务器地址
rangedynamic-bootp192.168.100.128192.168.100.254;//动态分配的地址范围
default-lease-time21600;//默认租约时间
max-lease-time43200;//最大租约时间
hostabc{//指定特定主机
hardwareethernet00:
0C:
29:
FD:
44:
C8;//硬件地址
fixed-address192.168.100.30;//IP地址
}
}
如有多个要绑定的主机时可以把所有主机信息用group{}包括起来,这样更方便管理。
格式如下:
group{
……这里不可以添加一些佤全局选项,这样就不用在每个里面写了。
hostabc{
……
……
}
hostxyz{
……
……
}
}
[root@localhost~]#servicedhcpdrestart
测试:
在linux下:
首先让地址从DHCP获取:
[root@localhost~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
[root@localhost~]#servicenetworkrestart//重启一下网络服务,这里不能使用ifdown和ifup,因为要配置路由信息。
[root@localhost~]#ifconfig
eth0Linkencap:
EthernetHWaddr00:
0C:
29:
FD:
44:
C8
inetaddr:
192.168.100.30Bcast:
192.168.100.255Mask:
255.255.255.0
这就是绑定的IP地址。
[root@localhost~]#cat/etc/resolv.conf
;generatedby/sbin/dhclient-script
search
nameserver192.168.100.10
这里的DNS服务器地址也获取到了。
[root@localhost~]#route-n
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
192.168.100.00.0.0.0255.255.255.0U000eth0
169.254.0.00.0.0.0255.255.0.0U000eth0
0.0.0.0192.168.100.10.0.0.0UG000eth0
默认路由也获取到了。
查看一下端口:
[root@localhost~]#netstat-tlunp|grep68
udp000.0.0.0:
680.0.0.016150/dhclient
查看客户端的租约文件:
lease{
interface"eth0";
fixed-address192.168.100.30;//固定地址
optionsubnet-mask255.255.255.0;//子网掩码
optiontime-offset-18000;//时间偏移
optionrouters192.168.100.1;//默认路由
optiondhcp-lease-time21600;//租约时间
optiondhcp-message-type5;
optiondomain-name-servers192.168.100.10;
optiondhcp-server-identifier192.168.100.20;
optionnis-domain"";
optiondomain-name"";
renew52010/4/909:
01:
40;
rebind52010/4/911:
34:
53;
expire52010/4/912:
19:
53;
}
windows下:
把IP地址设成自动获取。
C:
\DocumentsandSettings\Administrator>ipconfig/all
Connection-specificDNSSuffix.:
PhysicalAddress.........:
00-0C-29-D3-C6-B3
DhcpEnabled...........:
Yes
AutoconfigurationEnabled....:
Yes
IPAddress............:
192.168.100.253
SubnetMask...........:
255.255.255.0
DefaultGateway.........:
192.168.100.1
DHCPServer...........:
192.168.100.20
DNSServers...........:
192.168.100.10
LeaseObtained..........:
2010年4月9日14:
44:
12
LeaseExpires..........:
2010年4月9日20:
44:
12
基本配置完成。
DHCP超级作用域
比如现在有一个C类的作用域,但随着网络的扩大,现在一个C类网络地址已经不够用了,那别的主机怎么得到IP地址呢?
经过测试,直接再添加一个作用域发现第二个作用域的地址申请不到,那解决的办法呢?
如下:
shared-networksupper{
}
用这个把所有的作用域括起来,就可以实现了。
shared-network后面的supper是自己定义的超级作用域名称,可以随便。
很简单吧?
DHCP保留地址。
在DHCP里为某个主机绑定地址已经知道了,但怎么去保留某一段地址来留着备用呢?
如有这样一个要求:
DHCP提供192.168.100.0/24这上网段的地址,但现在想192.168.100.2-192.168.100.99,192.168.100.101-192.168.100.254这些地址是不能分出去的,要保留使用。
(这是为了实验,这样就只有两个IP地址能分配了,能够证明。
)实现如下:
rangedynamic-bootp192.168.100.1192.168.100.1;
rangedynamic-bootp192.168.100.100192.168.100.100;
其实原理很简单,就是把可以分出去的地址写出来,没写的自然就不会被分出去了,这样就实现了地址的保留。
DHCP中继代理
如果有两个子网,中间隔着一台路由器,而只有一台DHCP服务器,因为主机向DHCP服务器申请地址时使用的是广播,路由器又隔离广播,那另一个子网的主机怎么获得IP地址呢?
有一种支持RFC1542的路由器可以实现,但不是这种路由器那就没办法了吗?
当然不是,这时,就需要用到DHCP中继代理了。
首先配置DHCP服务器:
(要做中继代理时,dhcp服务器网卡一定要配置网关)
[root@rhel~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1//这个网关一定要(中继代理上连接dhcp服务器近的网卡ip)。
[root@rhel~]#servicenetworkrestart
安装DHCP软件:
[root@rhel~]#rpm-ivh/misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
编辑配置文件:
[root@rhel~]#vi/etc/dhcpd.conf
ddns-update-styleinterim;
ignoreclient-updates;
optiontime-offset-18000;
default-lease-time21600;
max-lease-time43200;
shared-networksupper{
subnet192.168.10.0netmask255.255.255.0{
optionrouters192.168.10.1;//必需配置(dhcp服务器的网关)。
optionsubnet-mask255.255.255.0;
rangedynamic-bootp192.168.10.2192.168.10.2;
}
subnet192.168.20.0netmask255.255.255.0{
optionrouters192.168.20.1;
optionsubnet-mask255.255.255.0;
rangedynamic-bootp192.168.20.2192.168.20.3;
}
}
[root@rhel~]#servicedhcpdrestart
接下来配置DHCP中继代理服务器:
DHCP中继代理服务器需要有两块网卡。
eth0用于和DHCP服务器相连,eth1用于和内网相连。
[root@rhel3~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.10.1//这里的地址是DHCP服务器的网关地址。
NETMASK=255.255.255.0
[root@rhel3~]#vi/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.20.1//这里的地址是第二个作用域的地址。
NETMASK=255.255.255.0
[root@rhel3~]#servicenetworkrestart
安装DHCP软件(必需):
[root@rhel3~]#rpm-ivh/misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
编辑这个文件,开启转发功能:
[root@rhel3~]#vi/etc/sysctl.conf
net.ipv4.ip_forward=1//把这里改为1,默认为0。
执行为条命令使其生效:
[root@rhel3~]#sysctl-p
[root@rhel3~]#dhcrelay192.168.10.10//后面是DHCP的IP地址。
好了,配置完成,测试。
DHCP常用命令。
ipconfig/release//windows下释放IP地址
ipconfig/renew//windows下重新获取IP地址
servicenetworkrestart//linux重启网络服务
DHCP综合配置实例。
目标:
当网络中的DHCP服务器出现问题,另一台服务器可以继续承担分配ip地址,主服务器的地址为192.168.10.10,辅服务器的地址为192.168.10.11,分配的地址范围是192.168.10.100-192.168.10.254,默认租约为1天,最大租约为2天。
默认路由为192.168.10.1,DNS服务器地址为192.168.20.20,DNS域名为。
WINS服务器地址为192.168.20.21。
其中,192.168.10.201保留给计算机名为rhel3,MAC地址为00:
0C:
29:
2B:
5B:
2F的主机使用,并配置DNS服务器地址为219.146.0.130,192.168.20.20。
192.168.10.202保留给计算机名为rhel4,MAC地址为00-0C-29-D3-C6-B3的主机使用,并配置DNS服务器地址为219.146.0.130,192.168.20.20。
192.168.10.150-192.168.10.160地址保留备用。
配置过程:
主服务器配置:
[root@rhel~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.10.10
NETMASK=192.168.10.11
[root@rhel~]#servicenetworkrestart
[root@rhel~]#rpm-ivh/misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
[root@rhel~]#vi/etc/dhcpd.conf
ddns-update-styleinterim;
ignoreclient-updates;
subnet192.168.10.0netmask255.255.255.0{
default-lease-time86400;
max-lease-time172800;
optionrouters192.168.10.1;
optiondomain-name"";
optiondomain-name-servers192.168.20.20;
optionnetbios-name-servers192.168.20.21;
rangedynamic-bootp192.168.10.100192.168.10.140;
rangedynamic-bootp192.168.10.161192.168.10.200;
group{
optiondomain-name-servers219.146.0.130,192.168.20.20;
hostrhel3{
hardwareethernet00:
0C:
29:
2B:
5B:
2F;
fixed-address192.168.10.201;
}
hostrhel4{
hardwareethernet00:
0C:
29:
D3:
C6:
B3;
fixed-address192.168.20.202;
}
}
}
[root@rhel~]#servicedhcpdrestart
辅服务器的配置:
[root@rhel2~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.10.11
NETMASK=255.255.255.0
[root@rhel2~]#servicenetworkrestart
[root@rhel2~]#rpm-ivh/misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
[root@rhel2~]#vi/etc/dhcpd.conf
ddns-update-styleinterim;
ignoreclient-updates;
subnet192.168.10.0netmask255.255.255.0{
default-lease-time86400;
max-lease-time172800;
optionrouters192.168.10.1;
optiondomain-name"";
optiondomain-name-servers192.168.20.20;
optionnetbios-name-servers192.168.20.21;
rangedynamic-bootp192.168.10.203192.168.10.254;//除了这里不一样,其他都都一样。
group{
optiondomain-name-servers219.146.0.130,192.168.20.20;
hostrhel3{
hardwareethernet00:
0C:
29:
2B:
5B:
2F;
fixed-address192.168.10.201;
}
hostrhel4{
hardwareethernet00:
0C:
29:
D3:
C6:
B3;
fixed-address192.168.20.202;
}
}
}
[root@rhel2~]#servicedhcpdrestart