CentOS安装及配置DHCP服务器

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

有关DHCP服务器的配置一直打算学习,这几天终于抽出时间来专门学习这个知识点。

DHCP:动态主机配置协议,在此就不多做介绍。不清楚的童鞋,可以去百度下。

本次实验OS:centos6.5 64bit

双网卡:eth0为外网网卡,eth1为内网网卡

eth0网卡外网可以正常连接互联网,如下:

clip_image001

要想配置DHCP服务,我们要先来安装DHCP软件包,如下:

yum -y install dhcp

clip_image002

clip_image003

检查安装DHCP软件包,所生成的文件。如下:

rpm -ql |dhcp

clip_image004

通过上图我们可以看到有DHCP服务的配置文件以及DHCP服务的启动文件。

通过上图我们可以知道,DHCP的配置文件为/etc/dhcp/dhcpd.conf。但该配置文件内容默认是空的,我们可以从dhcp安装目录下复制一个到/etc/dhcp/下。如下:

vi /etc/dhcp/dhcpd.conf

clip_image005

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

clip_image006

clip_image007

dhcpd.conf文件有两大部分,分别是全局配置和局部配置:

1、当全局配置与局部配置发生冲突时,局部配置优先级更高。

2、配置文件中每一行必须以分号结尾,因为在启动dhcpd时是不会报错的,只能通过查看日志文件/var/log/message得知配置文件是否有问题。

3、局部配置必须包含在一对中括号之间。

●常用参数:

●ddns-update-style (none|interim|ad-hoc):定义所支持的DNS动态更新类型,该参数必选且必须放在第一行且只能在全局配置中使用。

●default-lease-time:客户端IP默认租约时间,单位秒,该参数可以在全局配置、局部配置均可使用。

●max-lesase-time:客户端IP租约时间的最大值,单位秒,该参数可以在全局配置、局部配置均可使用。

●subnet 网络号 netmask 子网掩码 {…..}:定义作用域。

●range 起始IP 结束IP:动态IP地址范围。

●option routes IP地址:默认网关,该选项可以在全局配置、局部配置均可使用。

●option subnet-mask 子网掩码:默认子网掩码,该选项可以在全局配置、局部配置均可使用。

●option domain-name-servers:DNS服务器地址,该选项可以在全局配置、局部配置均可使用。

●option domain-name:DNS后缀,该选项可以在全局配置、局部配置均可使用。

●host 名称 {…..} 为特殊机器保留IP地址。

相关的事例说明如下:

ddns-update-style none;

subnet 10.5.5.0 netmask 255.255.255.224 {设置子网声明

range 10.5.5.26 10.5.5.30;设置DHCP的IP地址池

option domain-name-servers ns1.internal.example.org;设置DNS服务器地址

option domain-name “internal.example.org”;为客户端设置DNS后缀

option routers 10.5.5.1;设置缺省网关为192.168.2.1

option broadcast-address 10.5.5.31;设置DHCP的广播地址

default-lease-time 600;设置客户端缺省的地址租期

max-lease-time 7200;设置客户端最长的地址租期

}

host ubuntu {为MAC地址00:0c:29:ee:38:80的机器保留IP地址10.5.5.3

hardware ethernet 00:0c:29:ee:38:80;

fixed-address 10.5.5.3;

}

本次实验的配置如下:

more /etc/dhcp/dhcpd.conf

clip_image008

option domain-name “ilanni.com”;

option domain-name-servers 192.168.1.1,223.5.5.5;

default-lease-time 600;

max-lease-time 7200;

ddns-update-style none;

subnet 10.5.5.0 netmask 255.255.255.0 {

range 10.5.5.2 10.5.5.254;

option domain-name-servers 192.168.1.1;

option routers 10.5.5.1;

default-lease-time 600;

max-lease-time 7200;

}

host ubuntu{

hardware ethernet 00:0c:29:ee:38:80;

fixed-address 10.5.5.3;

}

注意有关作用域的配置,其实模版配置文件中。是有几个版本的,如下:

clip_image009

我们使用的最后一个配置选项,以上配置文件保存后,我们现在来设置DHCP服务器两张网卡的网络配置。

我们来设置eth0外网网卡,具体配置如下:

more /etc/sysconfig/network-scripts/ifcfg-eth0

clip_image010

eth1内网网卡,具体配置如下:

more /etc/sysconfig/network-scripts/ifcfg-eth1

clip_image011

同时因为本机是多网卡机器,所以我们在此还要配置DHCP监听的网卡。如下:

vi /etc/sysconfig/dhcpd

clip_image012

我们再前边已经提到过eth1网卡时内网网卡,所以在DHCP监听的网卡中我们填写的是eth1.

以上配置完毕后,我们现在来启动DHCP服务,如下:

clip_image013

上述配置文件中,我们特别为MAC地址00:0c:29:ee:38:80机器预留10.5.5.3这个IP地址,其他的机器我们没有做此设置。

我们来先看其他机器,如下:

clip_image014

通过上图,我们可以看到此机器已经正常获取IP地址及相关的信息。

再来查看那台我们做过保留的IP地址的机器,如下:

clip_image015

通过上图,我们可以看到该机器通过手工设置IP地址的,而且IP地址就是我们预留的。

按道理说,到此我们的DHCP服务器已经配置完毕。但是我们会发现,已经获得IP地址的机器是不能上网的,如下:

clip_image016

这个已经和DHCP服务本身没有关系了,而是需要我们再DHCP所在的服务器开启NAT服务。

为了操作方便,我们先暂时关闭DHCP所在服务器的防火墙,如下:

/etc/init.d/iptables stop

clip_image017

开启IP转发功能,如下:

clip_image018

然后在执行sysctl –p命令:

clip_image019

注意图中的报错信息,这个是因为没有加载bridge模块导致。现在我们来手工加载该模块,如下:

modprobe bridge

lsmod |grep bridge

clip_image020

然后再次执行sysctl –p命令,如下:

clip_image021

以上操作完毕后,再执行如下iptables命令,开启iptables的NAT网络地址转换功能。如下:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

clip_image022

其中eth0为外网网卡。

通过这条命令就可以开启iptables的NAT地址转换的功能,这条命令的意思是当有数据包要转发出去时,iptables就会将IP地址转换为eth0接口的IP地址。上边这条命令的好处在于不必理会接口的IP地址是什么,转换会自动进行。

或者以下命令:

iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE

iptables –append FORWARD –in-interface eth1 -j ACCEPT

现在我们再来看看,客户端是否可以正常连接互联网。如下:

clip_image023

以上对防火墙的操作是暂时的,下次重启DHCP服务器客户端还是无法正常连接互联网。

我们可以通过/etc/init.d/iptables save,把该规则进行保存。如下:

/etc/init.d/iptables save

more /etc/sysconfig/iptables

clip_image024

 

最后我们来查看租约的数据库文件/var/lib/dhcpd/dhcpd.leases,如下:

2014-08-26_095922

 

到此我们有关DHCP服务器的相关配置已经全部完成。在这还有一部分知识没有介绍,是和PXE有关的。这部分,我们会在kickstart无人值守安装linux中做介绍。

相关文章
|
13天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
23 1
|
10天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
13天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
15天前
|
安全 关系型数据库 MySQL
国产麒麟服务器等保二级 配置规范(一)
国产麒麟服务器等保二级 配置规范(一)
33 0
|
16天前
|
数据采集
robots.txt配置 减小服务器压力
robots.txt配置 减小服务器压力
13 0
|
16天前
|
Linux
centos 查看服务器信息 版本cpu
centos 查看服务器信息 版本cpu
12 0
|
26天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
2月前
|
缓存 关系型数据库 MySQL
百度搜索:蓝易云【CentOS8服务器安装MySQL报错:no match mysql-community-server】
现在,你已经成功安装了MySQL服务器并解决了"no match mysql-community-server"的报错问题。祝你使用愉快!
43 1
|
4月前
|
Linux Shell Swift
django(二)centos安装django3.2报错SQLite 3.8.3 or later is required (found 3.7.17)
我正在参加「掘金·启航计划」 Centos安装diango3.2框架请参照《django(一)ubuntu18.04安装框架》 在运行: 复制代码 python3 manage.py runserver 0.0.0.0:81 的时候报错: swift 复制代码 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). 报错的大体意思是:对sqlite最低版本的需求的3.8.3,但是现在只找到了3.7.17。
33 1
|
5月前
Cannot download repomd.xml解决CentOS8 yum安装AppStream报错
Cannot download repomd.xml解决CentOS8 yum安装AppStream报错