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