linux dhcp服务器配置

配置linux dhcp首先要安装dhcp软件包

dhcp-3.0.5-21.el5.i386.rpm

[root@server Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm 安装dhcp安装包

[root@server Server]# rpm -ql dhcp /查询dhcp文件安装位置

[root@server Server]# rpm -qc dhcp /查询dhcp的可配置文档,c代表config可配置的

下面开始进入dhcp的配置文档进行配置

[root@server Server]# vim /etc/dhcpd.conf /dhcp的配置文档的从上面介绍的两种查询可以知道在/etc/dhcpd.conf

# DHCP Server Configuration file.

# see /usr/share/doc/dhcp*/dhcpd.conf.sample

但是进去之后并没有什么配置文档只有两句话,但是在第二句话给我们提示了一个文件,这个文件是dhcp的配置文档模板,可以直接把它拷贝过来修改为dhcp的配置文档进去配置,也可以通过读取的方法来进行配置如下图

 

 

1 #

2 ddns-update-style interim;

3 ignore client-updates;

4

5 subnet 192.168.10.0 netmask 255.255.255.0 { ///这一行相当于windows里作用域

6

7 # --- default gateway

8 option routers 192.168.10.254; 网关

9 option subnet-mask 255.255.255.0;

10

11 option nis-domain "domain.org";

12 option domain-name "tec.com"; 域名

13 option domain-name-servers 222.88.88.88,222.85.85.85; 这个是域名服务器,和windows上的dns服务器一样

14

15 option time-offset -18000; # Eastern Standard Time

16 # option ntp-servers 192.168.1.1; //这个是时间服务器,是使时间同步

17 # option netbios-name-servers 192.168.1.1; //这个和windows上的win服务器一样基于机器名转换成ip地址

18 # --- Selects point-to-point node (default is hybrid). Don't change this unless

19 # -- you understand Netbios very well

20 # option netbios-node-type 2;

21

22 range dynamic-bootp 192.168.10.1 192.168.10.253; 这个是客户机的地址池,如果排除某个ip地址就要分开来写如:

range dynamic-bootp 192.168.10.1 192.168.10.99;

range dynamic-bootp 192.168.10.101 192.168.10.253;

23 default-lease-time 21600; ///租约时间

24 max-lease-time 43200;

25

26 # we want the nameserver to appear at a fixed address

27 host ns /host后面最好写上绑定ip的那台机器的机器名 {

28 next-server marvin.redhat.com;

29 hardware ethernet 12:34:56:78:AB:CD;

30 fixed-address 207.175.42.254; //27--31是mac地址和ip地址绑定

31 }

32 }

33 # DHCP Server Configuration file.

34 # see /usr/share/doc/dhcp*/dhcpd.conf.sample

35 #

当然了如果里面的一些配置不太清楚,可以通过man 5 dhcpd.conf此命令查看

配置完成之后可以通过下面的命令进行测试,测试结果是ok说明没有问题,然后就可以启动了

[root@server Server]# service dhcpd configtest

Syntax: OK

[root@server Server]# service dhcpd start

Starting dhcpd: [ OK ]

dhcp 服务器 走的协议是udp 端口67 dhcp客户端协议也是udp 端口是68

[root@server Server]# netstat -tupln | grep dhcpd //可以通过此命令查看dhcp是否起来,同时也可以看出dhcp服务器的端口号和协议

udp 0 0 0.0.0.0:67 0.0.0.0:* 27595/dhcpd

这个时候dhcp服务器就已经做好了。

用linux系统从dhcp服务器上来获取地址步骤如下:

ifconfig eth0 down //先把eth0上的地址禁掉

dhclient -d eth0 //通过此命令来获取地址

如果客户机比较多,一个c类地址不够用但是又不能用b类地址,这时可以把上面的5--32行复制一遍在32行下粘贴,把作用域的地址段修改下如:192.168.20.0网段,但是绑定的那个地方的一个名称要修改一下,和上面的不能一样,然后再第5行上面加shared-network zzdx(名称) { }左右大括号是把这两个作用域全部括起来就ok.

这样一个超级作用域就完成了。shared-network:相当于是声明超级作用域

对于客户机获得地址的信息可以从vim /var/lib/dhcpd/dhcpd.leases里面查看,在这个里面有客户机获得地址及mac地址还有时间的信息,相当于windows里面的地址租约。

在windows上dhcp服务器超级作用域有一个服务器选项,这个服务器选项可以添加路由器等。但是如果作用域中有路由器(网关),是以作用域中的为先。在linux也有,

就是13 option domain-name-servers 222.88.88.88,222.85.85.85;可以把这一行剪切到作用域外超级作用域内,就可以实现服务器选项配置。

 

 

在linux里自动获得地址时dns也会自动获得,如何实现获得地址同时dns不自动获得,而是手动配置如下:

[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 /打开这个文件加入一行如图:

 

 

&&&&&&&&&&&&

Dhcp小实验:

有一个公司有一个技术部(tec)和市场部(mkt),通过dhcp服务器来完成这两个部门的地址分配,这两个部门在不同的vlan。

地址分配dhcp服务器192.168.10.0/24

Tec 192.168.20.0/24

Mkt 192.168.30.0/24

Dhcp服务器通过linux来实现,路由通过win2003来完成

Ip地址:

Linux eth0:192.168.10.100/24 网关:192.168.10.254

Win2003:vm1:192.168.10.254------与linux连接

Vm2:192.168.20.254------与tec连接

Vm3:192.168.30.254------与mkt连接

拓扑图:

 

 

Dhcp配置如下:

subnet 192.168.10.0 netmask 255.255.255.0 {

}

subnet 192.168.20.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.20.254;

option subnet-mask 255.255.255.0;

option nis-domain "domain.org";

option domain-name "tec.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

option time-offset -18000; # Eastern Standard Time

# option ntp-servers 192.168.1.1;

# option netbios-name-servers 192.168.1.1;

# -- you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.20.1 192.168.20.253;

# we want the nameserver to appear at a fixed address

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

}

}

subnet 192.168.30.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.30.254;

option subnet-mask 255.255.255.0;

option nis-domain "domain.org";

option domain-name "mkt.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

option time-offset -18000; # Eastern Standard Time

# option ntp-servers 192.168.1.1;

# option netbios-name-servers 192.168.1.1;

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.30.1 192.168.30.253;

default-lease-time 21600;

max-lease-time 43200;

# we want the nameserver to appear at a fixed address

host ns1 {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

}

}

Win2003路由配置:

添加三块网卡分别命名vm1、vm2、vm3。

地址如上配置

然后单击开始-----程序-----管理工具------路由和远程访问。

开始配置路由:

右击本地服务器在单击配置并启动路由和远程访问

 

 

单击自定义配置

 

 

在LAN路由前打钩

 

 

然后下一步完成就会出现下面的画面,在下面画面里有一个常规右击在单击新增路由协议进行dhcp中继代理配置

 

 

选下面的dhcp中继代理程序确定

 

 

就会出现下面画面,然后右击dhcp中继代理单击新增接口

 

 

会出现下图:把vm2和vm3添加进去

 

 

添加后的结果

 

 

还要继续设置服务器地址:继续右击dhcp中继代理点属性如下图,添加服务器地址

 

 

到目前为止服务器和路由都已经设置好了,就可以进行测试了。

&&

上面是通过win2003做路由中继代理完成的,现在改用linux做中继代理

首先dhcp包要安装

在dhcp包中有一项是/etc/sysconfig/dhcrelay 这个就是中继代理要配置的文件

[root@localhost ~]# rpm -qc dhcp /可以通过此命令查看dhcp包中的配置文件

/etc/dhcpd.conf

/etc/rc.d/init.d/dhcpd

/etc/rc.d/init.d/dhcrelay

/etc/sysconfig/dhcpd

/etc/sysconfig/dhcrelay

/var/lib/dhcpd/dhcpd.leases

在配置中继代理之前应该先把ipv4的转化功能开启

[root@localhost ~]# vim /etc/sysctl.conf

7 net.ipv4.ip_forward = 1 ipv4转化功能

[root@localhost ~]# sysctl -p

net.ipv4.ip_forward = 1 /使ipv4转化功能生效,可以看出已经生效

然后配置中继代理

[root@localhost ~]# vim /etc/sysconfig/dhcrelay

INTERFACES="eth0 eth1 eth2" ///这个是中继接口

DHCPSERVERS="192.168.10.100" ///dhcp服务器地址

然后就可以启动dhcrelay进行测试

[root@localhost ~]# service dhcrelay start