[root@RHEL1 dhcp]# ls dhclient.d dhcpd6.conf dhcpd.conf [root@RHEL1 dhcp]# cat dhcpd.conf #默认是没有配置信息的 # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see 'man 5 dhcpd.conf' # [root@RHEL1 dhcp]# rpm -ql dhcp /etc/dhcp /etc/dhcp/dhcpd.conf #Ipv4的DHCP配置文件 /etc/dhcp/dhcpd6.conf #IPV6的DHCP配置文件 /etc/openldap/schema/dhcp.schema #认证相关的,我也不懂 /etc/portreserve/dhcpd /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcpd6 /etc/rc.d/init.d/dhcrelay /etc/sysconfig/dhcpd /etc/sysconfig/dhcpd6 /etc/sysconfig/dhcrelay DHCP中继代理 /usr/bin/omshell /usr/sbin/dhcpd /usr/sbin/dhcrelay /usr/share/doc/dhcp-4.1.1 /usr/share/doc/dhcp-4.1.1/3.0b1-lease-convert /usr/share/doc/dhcp-4.1.1/IANA-arp-parameters /usr/share/doc/dhcp-4.1.1/README.ldap /usr/share/doc/dhcp-4.1.1/api+protocol /usr/share/doc/dhcp-4.1.1/dhclient-tz-exithook.sh /usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample #默认模板文件 /usr/share/doc/dhcp-4.1.1/dhcpd6.conf.sample /usr/share/doc/dhcp-4.1.1/draft-ietf-dhc-ldap-schema-01.txt /usr/share/doc/dhcp-4.1.1/ms2isc /usr/share/doc/dhcp-4.1.1/ms2isc/Registry.perlmodule /usr/share/doc/dhcp-4.1.1/ms2isc/ms2isc.pl /usr/share/doc/dhcp-4.1.1/ms2isc/readme.txt /usr/share/doc/dhcp-4.1.1/sethostname.sh /usr/share/doc/dhcp-4.1.1/solaris.init /usr/share/man/man1/omshell.1.gz /usr/share/man/man5/dhcpd.conf.5.gz /usr/share/man/man5/dhcpd.leases.5.gz /usr/share/man/man8/dhcpd.8.gz /usr/share/man/man8/dhcrelay.8.gz /var/lib/dhcpd /var/lib/dhcpd/dhcpd.leases #租约数据库文件 /var/lib/dhcpd/dhcpd6.leases
主配置文件
dhcpd.conf组成部分
parameter(参数)
declaration(声明)
option(选项)
从整体框架来看分为全局配置和局部配置
复制模板
[root@RHEL1 dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf cp: overwrite `/etc/dhcp/dhcpd.conf'? y
配置文件简介
parameter(参数) ddns-update-style (none|interim|ad-hoc); #默认是被注释的;在RHEL6.4之前好像是必须要启用才能启动dhcp服务 none: 表示不支持动态更新。 Interim: 表示DNS互动更新模式 ad-hoc: 表示特殊DNS更新模式 ignore client-updates #忽略客户端动态更新 default-lease-time #指定确省租赁时间的长度,单位是秒。 max-lease-time #指定最大租赁时间长度,单位是秒。 hardware #指定网卡接口类型和MAC地址。 server-name #通知DHCP客户服务器名称。 get-lease-hostnames flag #检查客户端使用的IP地址。 fixed-address ip #分配给客户端一个固定的地址。 authoritative #拒绝不正确的IP地址的要求。 log-facility local7 #用于定义DHCP的日志 declaration(声明) shared-network #用来告知是否一些子网络分享相同网络。 subnet #描述一个IP地址是否属于该子网。 range 起始IP 终止IP #提供动态分配IP 的范围。 host 主机名称 #参考特别的主机。 group #为一组参数提供声明。 allow unknown-clients ﹔deny unknown-client #是否动态分配IP给未知的使用者。 allow bootp;deny bootp #是否响应激活查询。 allow booting﹔deny booting #是否响应使用者查询。 filename #开始启动文件的名称,应用于无盘工作站。 next-server #设置服务器从引导文件中装如主机名,应用于无盘工作站。 option(选项) subnet-mask #为客户端设定子网掩码。 domain-name #为客户端指明DNS名字。 domain-name-servers #为客户端指明DNS服务器IP地址。 host-name #为客户端指定主机名称。 routers #为客户端设定默认网关。 broadcast-address #为客户端设定广播地址。 ntp-server #为客户端设定网络时间服务器IP地址。 time-offset #为客户端设定和格林威治时间的偏移时间,单位是秒。
某部门有60台计算机,网段192.168.1.1-192.168.1.254,子网掩码24位,网关为192.168.1,192.168.1.2-192.168.1.30为服务器固定地址,客户端可用网段为192.168.1.100-192.168.1.200,其余IP为保留地址,DNS为192.168.1.11
[root@RHEL1 dhcp]# vim dhcpd.conf #建议先复制需要部分,然后再对不需要的局部进行注释,默认配置是104行(:.,104s/^/#/g 注释) #全局配置 default-lease-time 600; max-lease-time 7200; log-facility local7; #局部配置 subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option domain-name-servers 192.168.10.11; }
启动dhcpd服务
[root@RHEL1 dhcp]# service dhcpd restart //如果没有问题就可以进行测试;
关闭vmware的DHCP;
测试主机网卡选择
测试主机2003设置为DHCP获取
释放IP,顺便用wireshark抓包看看
DHCP数据包
网络拓扑
在vmware上添加网卡vm2并去掉其DHCP功能,手工配置网卡中的IP与DHCP服务器同一网段即可,我这里已经添加过了
然后ping测试一下,保证其连通性;
配置dhcpd.conf
全局部分不变 局部配置
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option domain-name-servers 172.16.0.1; option routers 192.168.10.1; option broadcast-address 192.168.10.255; } subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.200 192.168.20.200; option domain-name-servers 172.16.0.1; option routers 192.168.20.1; option broadcast-address 192.168.20.255; }
重启服务
[root@sharecast dhcp]# service dhcpd restart
Starting dhcpd: [ OK ]
测试服务
再将RHEL2网卡改为DHCP模式获取,如图
看一下服务求租约数据库文件
end
网络拓扑
主要原理是DHCP是同过广播的方式进行通话,广播包无法跨网段,故需要中继代理和数据转发DHCP服务器的网关一定要指向中继代理商的网卡
vmware网卡配置按照网络拓扑配置即可
DHCP server
dhcp.conf配置
全局不变即可, 局部参数如下
shared-network test { subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option domain-name-servers 192.168.10.11; } subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.100 192.168.20.200; option routers 192.168.20.1; option domain-name-servers 192.168.10.11; } } host win2003 { hardware ethernet 00:0C:29:F8:48:2C; fixed-address 192.168.20.150; }
配置完成重启服务
网卡配置为如拓扑所示即可
DHCRELAY SERVER
首先,将网卡配置为拓扑所要求的,并且启用linux的转发功能
[root@sharecast dhcp]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C:29:38:D4:8E inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe38:d48e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2658 errors:0 dropped:0 overruns:0 frame:0 TX packets:2698 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:245806 (240.0 KiB) TX bytes:268177 (261.8 KiB) Interrupt:19 Base address:0x2000 eth2 Link encap:Ethernet HWaddr 00:0C:29:38:D4:98 inet addr:192.168.20.1 Bcast:192.168.20.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe38:d498/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:919 errors:0 dropped:0 overruns:0 frame:0 TX packets:282 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:108776 (106.2 KiB) TX bytes:22690 (22.1 KiB) Interrupt:19 Base address:0x2400 [root@sharecast dhcp]# vim /etc/sysctl.conf # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 1 #将这里改为1即可 [root@sharecast dhcp]# sysctl –p #检查配置 net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 [root@sharecast dhcp]# vim /etc/sysconfig/dhcrelay # Command line options here #DHCRELAYARGS="" # DHCPv4 only INTERFACES="eth1 eth2" #本机网卡 # DHCPv4 only DHCPSERVERS="192.168.10.11" #指向DHCP服务器 [root@sharecast dhcp]# service dhcrelay restart #重启代理服务器 Shutting down dhcrelay: [ OK ] Starting dhcrelay: [ OK ] [root@RHEL1 ~]# iptables –F #清除防火墙规则
测试
end