DHCP服务器如何搭建、如何设置?

DHCP服务器如何搭建、如何设置?,第1张

在FreeBSD的Packages Collection中,有两个不同的DHCP客户机和服务器软件,一 个为ISC-DHCP,另一个为WIDE-DHCP,两个软件都包括了DHCP客户软件和服务器软件,其中ISC-DHCP 更为常用一些,这里就以ISC-DHCP为例介绍在FreeBSD上安装和设置DHCP。

为了支持DHCP,首先要确认系统内核支持伪设备bpfilter,如果没有,就需要重新编译内核。伪设备bpfilter 是一个允许应用程序接收网络的原始数据包的界面,这样应用程序就能接收目的地址非本机IP地址的数据包 了。DHCP使用bpfilter的原因是在DHCP设置好计算机的TCP/IP之前,由于计算机本身没有定义IP地 址,而TCP/IP堆栈本身不会接收不具备本机IP地址的数据包。要接收DHCP服务器发送回客户的数据包,就需要绕 过TCP/IP堆栈,而必须使用伪设备bpfilter。

1 pseudo-device bpfilter 4

定制内核之后,还要保证/dev/目录下具有对应bpfilter的设备文件。

1 # cd /dev

2 # sh MAKEDEV bpf0 bpf1 bpf2 bpf3 

从Packages Collecion中安装DHCP软件,这将DHCP软件中的dhcpd,dhclient和dhcprelay 安装到/usr/local/sbin目录下。

1 $ ls /usr/local/sbin/dhc

2 /usr/local/sbin/dhclient

3 /usr/local/sbin/dhcpd

4 /usr/local/sbin/dhcrelay

设置服务器

为了设置DHCP服务器dhcpd,首先就要设置其配置文件/etc/dhcpdconf。这个配置文件 语法简单,比较容易理解。

1 server-identifier 19216831;

2

3 subnet 19216830 netmask 2552552550 {

4 range 192168310 192168320;

5 default-lease-time 600;

6 max-lease-time 7200;

7 option subnet-mask 2552552550;

8 option broadcast-address 1921683255;

9 option routers 19216831;

10 option domain-name-servers 19216831;

11 option domain-name "exampleorgorgcn";

12 }

13

14 host a1 {

15 hardware ethernet 00:90:27:4e:92:09;

16 fixed-address 192168332;

17 option subnet-mask 2552552550;

18 option broadcast-address 1921683255;

19 option routers 19216831;

20 option domain-name-servers 19216831;

21 option domain-name "exampleorgorgcn";

22 } 

基本的dhcpdconf首先使用server-identifier定义了本服务器的IP地址,这对于有 多个IP地址的服务器系统十分重要,一般不必设置这个参数,dhcpd能自动侦测。然后定义要分配IP地址的客户机组 ,每组拥有一个可用的IP地址范围。有两种客户机组的划分方式,一种为指定子网段来区分,一种为指定主机来区分。

这个例子中的第一组定义了一个子网19216830/24,这个子网段内,可供DHCP服务器分配的I P地址范围为192168310到192168320,这个地址范围也可以不是连续的,不连续的地址可以 使用多个range设置参数来设置。此外,还设置了这一组内分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用缺省值,而不必改动。后面的option参数设置DHCP的附加功能 ,例如设置DHCP客户的网络掩码、广播地址、DNS服务器、域名等等。事实上这些option设置选项也可以被用作 全局选项设置,即放置在server-identifier之后,对所有的客户机组起作用。

例子的第二组是针对某个特定主机a1进行的设置,这个主机被限定为以太网地址为hardware ethernet 参数值的计算机,将给这个计算机分配一个固定地址。这种分配方式实际等价于固定地址分配方式,唯一的好处就是能够对IP地址进行集中管理,不必每个计算机分别设置了。这里同样也可以使用option参数,设置TCP/IP的参数 。

dhcpdconf中还能有更多的组,包括对非本网段的子网上的客户机指定的组。

当设置了dhcpdconf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。

1 # /usr/local/sbin/dhcpd fxp0 

在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rclocal启动脚本中,以便系统能够自动执行。

此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpdleases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分 配的情况。以下是一个日志文件的部分内容。

1 lease 192168311 {

2 starts 3 1998/11/26 05:46:28;

3 ends 4 1998/11/27 05:46:28;

4 hardware ethernet 0:80:c2:12:fd:d;

5 uid 1:0:80:c2:12:fd:d;

6 } 

 

touch命令的优点是在存在相关的文件时,不删除或更改文件内容,只更新其访问时间设置,只有在文 件不存在时才生成新文件。

然后就能设置网络中的客户计算机使用DHCP协议,获取合法的IP地址了。通常Windows计算机的TCP/IP设置 中能直接设置支持DHCP协议,如果为Unix(包括FreeBSD)设置DHCP客户软件,就需要dhclient的支持。

设置客户软件

ISC-DHCP中同样也提供了一个客户程序dhclient,用于FreeBSD系统从DHCP服务器上动态获取一个IP地 址。这个程序同样也要求内核支持bpfilter伪设备。

dhclient使用的配置文件为/etc/dhclientconf,然而最一般的情况下可以不使用它,软件本身的缺省配置就满足一般情况下请求IP地址的需要了。缺省设置下dhclient在获得了IP地址之后,会自动执行/etc/dhclient-script 这个脚本程序,以针对刚获取的动态IP地址进行必要的设置。很多依赖于IP地址的网络服务,就可以在这个脚 本中启动,或者针对重新分配的动态IP地址对已有的网络服务进行修正。虽然使用者也许不希望使用这个脚本 设置网络,但如果不存在这个脚本程序,或者这个程序不可执行,那么dhclient就不能正常执行。

因此对于最一般的客户机,一般只连接到一个网络上,仅具备一个网络界面,可以使用一个空的dhclientconf 和空的declient-script文件,就能完成设置IP地址和其他TCP/IP参数的任务了。

1 # touch /etc/dhclientconf

2 # touch /etc/dhclient-script

3 # chmod +x /etc/dhclient-script

4 # /usr/local/sbin/dhclient fxp0

5

6 Listening on BPF/fxp0/00:90:27:4e:92:09/unattached

7 Sending on BPF/fxp0/00:90:27:4e:92:09/unattached

8 Sending on Socket/fallback/fallback-net

9 DHCPDISCOVER on fxp0 to 255255255255 port 67 interval 22

10 DHCPOFFER from 19216831

11 DHCPREQUEST on fxp0 to 255255255255 port 67

12 DHCPACK from 19216831

13 bound to 192168332 -- renewal in 3600 seconds

在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获 得IP地址设置,就需要使用设置文件dhclientconf。一般除非有多个局域网网络界面,都应该使用空设置文件, 避免产生配置错误。以下为一个简单的dhclientconf的例子,可以用于多网络界面的情况:

1 # Defaults

2 timeout 60;

3 reboot 10;

4 retry 60;

5 select-timeout 5;

6 initial-interval 2;

7 script "/etc/dhclient-script";

8 interface "fxp0" {

9 request subnet-mask, broadcast-address, routers, domain-name-servers,

10 domain-name, host-name;

11 require domain-name-servers;

12 }

 

这个设置文件主要用于重新定义一些参数,比较容易理解,更改也比较容易。

成功的手工执行dhclient之后,就可以考虑将其和系统启动文件相结合了。因为很多网络服务是依赖于网络 配置的,应该在启动这些网络服务之前使用DHCP配置好TCP/IP。使用dhclient-script启动服务的想法虽然也能解决问题,然而这就不能使用系统的启动rc文件中的相关设置启动网络服务,而在这个dhclient-script 中重新启动,因此比较麻烦。更简便的做法是仅仅在dhclient-script中设置hostname, 而让系统启动文件完成其他网络服务的启动。这样就要求将dhclient与系统rc文件结合起来。

1 #hostname="mydomainname"

2 network_interfaces="fxp0 lo0"

3 # List of network interfaces (lo0 is loopback)

4 ifconfig_lo0="inet 127001"

5 # default loopback device configuration

6 #ifconfig_fxp0="inet 192168312 netmask 2552552550"

7 defaultrouter="NO"

8 # Set to default gateway (or NO)

这样就需要更改rcconf文件,更改一些设置语句。首先要注释hostname设置,而在dhclientscript中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证netwo

3 自动配置DNS服务器

在局域网中,每个设备都需要知道网关和子网掩码的信息才能进行通信。DHC协议可以自动配置网关和子网掩码,使得客户端可以自动获取这些信息。

总之,DHC协议的作用是自动分配IP地址、管理IP地址池、自动配置DNS服务器、自动配置网关和子网掩码等,使得局域网中的设备可以方便地进行网络通信。

2 管理IP地址池

总之,DHC协议的作用是自动分配IP地址、管理IP地址池、自动配置DNS服务器、自动配置网关和子网掩码等,使得局域网中的设备可以方便地进行网络通信。

用两台路由器进行桥接即可。

桥接路由器方法如下:

主路由器A的设置步骤:

1,在电脑浏览器输入19216811(通常路由器的设置地址),点击无线设置--无线网络基本设置,进入如下界面:

 

注意主路由器是不能勾选WDS的,否则会有故障。

2,再进入无线安全设置:如下图设置加密方式和密码:并记录下来一会儿设置第二台会用到。

 

副路由器B的设置步骤:

1,进入设置界面后,先修改路由器B的IP地址,修改路径:网络参数--LAN口设置,如下界面:

 

通常主路由器A的IP:19216811,那么路由器B就设为19216812;也有路由器默认是19216801,那么路由器B设置为:19216802 就是要保证路由器IP在同一个网段,要是你不了解网段也没关系,这么设置行了。

2,打开路由器B的无线基本设置,勾选WDS,然后扫描到第一台路由器。

 

3,找到路由器A,点击连接,并输入第一台路由器刚才设置的密码点击保存。

 

 如下图所示:

 

4,关闭DHCP服务。关闭的目的是不能和第一台IP地址冲突。

 

检查路由器B是否连接成功,连接成功就可以通过路由器B上网了。

地址:铜锣湾罗素街38号金朝阳中心12楼01-03室  近地铁E出口 ;

地址:香港铜锣湾记利佐治街1号地下G04号铺   近地铁A出口 营业时间:11:00am - 11:00pm;

地址:九龙旺角新世纪广场1楼1B铺  营业时间:12:00pm -11:00pm;

地址:九龙旺角登打士街41-43号地下4及5号铺  营业时间:11:00am -12:00pm;

地址:九龙观塘道418号创纪之城5期UC-5铺   与地铁相连,A出口 营业间:9:00am-11:00pm;

地址:机场翔天廊5楼5P064号铺。

要求:至少有一台路由器支持WDS功能,但两台路由器的牌子不一定要相同本例中两台以TP-LINK WR741路由器为例,其他型号的设置也是一样的(TP-LINK的路由器用习惯了,设置起来也比较简单,其他牌子的路由器估计设置也大抵差不到哪儿去)首先给两台路由器你个称号,被桥接的叫做主路由器,执行桥接的叫副路由器(或从路由器)。

如果你的两台路由器其中有一款型号比较老只有或没有Bridge功能,那么建议将老的路由器作为主路由器,另一台作为副路由器第一步:设置主路由器,保证任意一台设备连接主路由器能正常上网,然后进入主路由器的设置界面,然后在左侧选项条中点击「运行状态」,在WAN口状态栏可以找到DNS服务器,一共有两个,主DNS和备选DNS服务器,把它写在纸上待会儿用。

注意:主路由器不能开启WDS,否则会导致主路由器故障

点击「网络参数」->「LAN口设置」把路由器的LAN地址设置为19216811保存,此时会重启重启后回到设置界面点击「无线设置」->「基本设置」SSID(自己喜欢什么就填什么)

本例以TP_LINK-A为例信道从1到13随便选一个,但不能选自动,防止WDS功能不稳定,本例以信道11为例。其他的就不用管了。

点击「无线设置」->「无线安全设置」 加密方式选WPA-PSK,密码自己喜好,本例以12345678为例注意相比旧式的WE加密,WPA/WPA2加密更安全,且桥接起来更稳定,所以推荐使用WPA/WPA2加密点击「DHCP服务器」->「DHC服务器设置」 把「地址池起始地址」设置为1921681100把「地址池结束地址」设置为1921681149其他不管,保存,重启主路由器,这样主路由器就设置好了。

第二步:设置副路由器

进入副路由器的设置界面

点击「网络参数」->「LAN口设置」

把副路由器的LAN地址设置为19216812防止与主路由器冲突,同时也便于管理主和副路由器

点击「无线设置」->「基本设置」 SSID自己喜欢,但不要与主路由相同,本例以TP_LINK-B为例信道和主路由相同,选11勾选「开启WDS」,在弹出的界面点击扫瞄,得到AP列表以后找到主路由器的SSID,即TP_LINK-A,点击右边的「连接」按钮,会回到先前的界面,加密方式选WPA-PSK,密钥填主路由的密钥:12345678,(保持与主路由器一致即可),保存由于新的WDS功能于老式的Bridge有所不同,更为高级,所以仅需所有副路由器开启WDS并填入主路由的信息即可,如主路由开启WDS或Bridge功能,请关闭,否则WDS功能无法使用!

点击「无线设置」->「无线安全设置」

在这里设置副路由的密码,(不必和主路由器一样)懒得记就和主路由一样

注意:网上很多教程到这里都是一样的,但都缺少下面的关键步骤,所以即使桥接成功也无法上网!

原因在于这些教程都忽略了DHCP服务器设置的步骤,导致设备无法自动获取IP地址而无法上网!

所以副路由的DHCP服务器必须开启!

点击「DHCP服务器」->「DHCP服务器设置」

把「地址池起始地址」改为1921681150把「地址池起始地址」改为1921681199只要不和主路由器产生交集即可「网关」填写主路由器的IP地址,即19216811主和备选DNS服务器填之前写在纸上的地址保存并重启路由器

用你的iPad或Phone连接副路由器TP_LINK-B,是不是出现奇迹—能上网了!

如需配置更多的路由器,其余路由器的设置如同此,仅需改变LAN口地址即可再次声明一下,由于新的WDS功能于老式的Bridge有所不同,更为高级,所以仅需所有副路由开启WDS并填入主路由的信息既可如主路由开启WDS或Bridge功能,请关闭,否则WDS功能无法使用!

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3729242.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-03-17
下一篇2024-03-17

随机推荐

发表评论

登录后才能评论
保存