Linux网络服务_dhcp服务和dhcp中继服务

简介:

Linux网络服务_dhcp服务和dhcp中继服务

一:Linux的dhcp服务

二:Linux的dhcp中继服务

三:扩展

1,查看dhcp租约信息

2,dhcp服务器无法启动的排错方式


一:Linux的dhcp服务

实验环境:

vmware虚拟机、Redhat Enterprise 5.9版本Linux服务器、Linux客户机、windows客户机。


具体步骤:

第一步:安装dhcp服务的软件包

[root@localhost ~]# rpm -q dhcp  //首先确定一下dhcp的软件包是否安装,这里为没有安装

package dhcp is not installed

[root@localhost ~]# cd /misc/cd/Server/   //挂载光盘,进入/misc/cd/Server/目录下安装

[root@localhost Server]# rpm -ivh dhcp    //双tab查看有哪些以dhcp开头的数据包

dhcp-3.0.5-31.el5_8.1.x86_64.rpm        dhcpv6-1.0.10-20.el5.x86_64.rpm

dhcp-devel-3.0.5-31.el5_8.1.i386.rpm    dhcpv6-client-1.0.10-20.el5.x86_64.rpm

dhcp-devel-3.0.5-31.el5_8.1.x86_64.rpm  

[root@localhost Server]# rpm -ivh dhcp-3.0.5-31.el5_8.1.x86_64.rpm    //安装dhcp包

warning: dhcp-3.0.5-31.el5_8.1.x86_64.rpm: Header V3 DSAsignature: NOKEY, key ID 37017186

Preparing...               ########################################### [100%]

 1:dhcp                  ########################################### [100%]

[root@localhost Server]#


第二步:为主机设置固定ip地址

[root@localhost Server]# cd

[root@localhost ~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]# cat/etc/sysconfig/network-scripts/ifcfg-eth0

# Intel Corporation 82545EM GigabitEthernet Controller (Copper)

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:0C:29:82:09:E9

ONBOOT=yes

IPADDR=192.168.1.1

NETMASK=255.255.255.0

[root@localhost ~]# service network restart

正在关闭接口 eth0:                                        [确定]

关闭环回接口:                                             [确定]

弹出环回接口:                                             [确定]

弹出界面 eth0:                                            [确定]

[root@localhost ~]# ifconfig eth0

eth0     Link encap:Ethernet  HWaddr00:0C:29:82:09:E9  

        inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

        inet6 addr: fe80::20c:29ff:fe82:9e9/64 Scope:Link

        UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1

        RX packets:34 errors:0 dropped:0 overruns:0 frame:0

        TX packets:59 errors:0 dropped:0 overruns:0 carrier:0

        collisions:0 txqueuelen:1000

        RX bytes:4023 (3.9 KiB)  TXbytes:11211 (10.9 KiB)


[root@localhost ~]#


注:主机没有固定ip地址,是无法启动dhcp服务器的。


第三步:修改dhcp服务的配置文件:/etc/dhcpd.conf


注:默认dhcp的配置文件里面是没有内容的,只有四行注释:

#

# DHCP Server Configuration file.

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

#

意思为,模板文件为/usr/share/doc/dhcp*/dhcpd.conf.sample,那么,可以将这个文件的内容写到/etc/dhcpd.conf文件里面,方式为:shift+分号进入末行模式:

r /usr/share/doc/dhcp*/dhcpd.conf.sample即可。

wKioL1MR_GvRh2cHAADcRg9ptso323.jpg

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

[root@localhost ~]# cat /etc/dhcpd.conf        //修改之后的配置文件

ddns-update-style interim;

subnet 192.168.1.0 netmask 255.255.255.0 {

      option routers                 192.168.1.254;

      option subnet-mask             255.255.255.0;

      option domain-name             "zhangsp.com";

      option domain-name-servers     202.106.0.20,8.8.8.8;

      option time-offset             -18000; # Eastern Standard Time

      range dynamic-bootp 192.168.1.60 192.168.1.70;

      default-lease-time 21600;

      max-lease-time 43200;

      host server08 {

               hardware ethernet00:0C:29:1C:DA:DC;

               fixed-address 192.168.1.88;

      }

}

[root@localhost ~]# service dhcpd configtest

Syntax: OK

[root@localhost ~]# service dhcpd start

启动 dhcpd:                                               [确定]

[root@localhost ~]# service dhcpd restart

关闭 dhcpd:                                              [确定]

启动 dhcpd:                                              [确定]

[root@localhost ~]#


第四步:在windows客户机和Linux客户机上测试是否能成功获取ip地址

linux客户机上使用:dhclient    ifconfig 等查询。

dhclient    //临时配置/测试网络

dhclient -d eth0    -d指定网络接口

dhclient -r eth0    -r选项为释放地址

注:

1,在指定服务器和客户机网卡的时候需要注意,vm1和vm8这两个虚拟网卡在安装vmware虚拟机的时候是默认安装在物理机上的,所以在选择网卡的时候,需要将虚拟机上的dhcp服务器给关闭。

关闭方法:虚拟机的“编辑”→“虚拟网络编辑器(N)”,不要勾选“使用本地DHCP...”

wKiom1MR_PnQguD0AAI5ftzPcz0826.jpg

2,默认客户机在接收ip地址的时候,那个dhcp服务器先为它分配ip地址,它就会默认一直使用那个dhcp服务器。



二:Linux的dhcp中继服务

实验环境:

linux服务器server1、linux中继服务器server2,linux客户机、windows客户机

server1连接的网卡为vm1,eth0的ip地址为192.168.1.1;

server2的网卡有vm1(eth0的ip地址为192.168.1.254),vm2(eth1的ip地址为192.168.2.254),vm3(eth2的ip地址为192.168.3.254)


具体步骤:分两部分

第一部分:dhcp服务器server1上的配置:


第一步:在server1上安装dhcp服务器的软件包

rpm -ivh dhcp-3.0.5-31.el5_8.1.x86_64.rpm


第二步:规划ip地址:server1上只有一个网卡vm1,所以eth0的ip地址为192.168.1.1


第三步:指定其网关ip地址为server2上vm1网卡的地址192.168.1.254

[root@server1 ~]# vim /etc/sysconfig/network

[root@server1 ~]# cat /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=server1.tarena.com

GATEWAY=192.168.1.254       //添加网关,也能和ip地址写在一起

[root@server1 ~]# service network restart

正在关闭接口 eth0:                                        [确定]

关闭环回接口:                                             [确定]

弹出环回接口:                                             [确定]

弹出界面 eth0:                                            [确定]

[root@server1 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U    0      0        0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG   0      0        0 eth0

[root@server1 ~]#


第四步:配置dhcp服务器并启动,/etc/dhcpd.conf配置文件内容如下

[root@server1 ~]# cat /etc/dhcpd.conf

ddns-update-style interim;

option domain-name              "zhangsp.com";

option domain-name-servers      202.106.0.20,8.8.8.8;

option time-offset              -18000; # Eastern Standard Time

default-lease-time 21600;

max-lease-time 43200;

subnet 192.168.1.0 netmask 255.255.255.0 {

      option routers                 192.168.1.254;

      range dynamic-bootp 192.168.1.60 192.168.1.70;

      host server08 {

               hardware ethernet00:0C:29:1C:DA:DC;

               fixed-address 192.168.1.88;

      }

}

subnet 192.168.2.0 netmask 255.255.255.0 {

      option routers                 192.168.2.254;

      range dynamic-bootp 192.168.2.20 192.168.2.30;

}

subnet 192.168.3.0 netmask 255.255.255.0 {

      option routers                 192.168.3.254;

      range dynamic-bootp 192.168.3.80 192.168.3.90;

}


解析:

1,每个subnet定义一个网段,如果每个网段都有特殊主机需要定义指定的ip地址的话,需要添加host段,注意,不同subnet段中的host指定的主机名不能一样,否则,dhcpd服务无法启动。

2,配置dhcp中继服务的时候,服务器的dhcp配置文件里面的内容,有相同的,可以定义为全局,也就是在subnet外部的那部分,如果需要定义局部的参数,比如说分配的地址池,特殊主机的ip地址指定,不同网段之间的网关,则需要局部定义。


第二部分:dhcp中继上的配置及客户端的测试:

注:dhcp中继上需要开启dhcrelay这个服务,而这个服务是由dhcp服务器的那个软件包所产生的一个服务,所以,还需要安装dhcp服务器的那个软件包;


第一步:安装dhcp服务的软件包

rpm -ivh dhcp-3.0.5-31.el5_8.1.x86_64.rpm


第二步:分别为eth0,eth1,eth2设置静态ip地址

[root@server2 ~]# cd/etc/sysconfig/network-scripts/

[root@server2 network-scripts]# catifcfg-eth0 ifcfg-eth1 ifcfg-eth2

# Intel Corporation 82545EM GigabitEthernet Controller (Copper)

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:0C:29:CD:14:F3

ONBOOT=yes

IPADDR=192.168.1.254         //eth0的ip地址

NETMASK=255.255.255.0

# Intel Corporation 82545EM GigabitEthernet Controller (Copper)

DEVICE=eth1

BOOTPROTO=static

ONBOOT=yes

HWADDR=00:0c:29:cd:14:fd

IPADDR=192.168.2.254         //eth1的ip地址

NETMASK=255.255.255.0

# Intel Corporation 82545EM GigabitEthernet Controller (Copper)

DEVICE=eth2

BOOTPROTO=static

ONBOOT=yes

HWADDR=00:0c:29:cd:14:07

IPADDR=192.168.3.254         //eth2的ip地址

NETMASK=255.255.255.0

[root@server2 network-scripts]#

注:

由于server1需要指定网关为server2上vm1网卡也就是server2上的eth0的ip地址,所以,最好为eth0的ip地址最好设置成静态的,如果不设置静态的,那么则需要在server1上用hosts字段为server2的eth0指定ip地址。


第三步:开启server2主机的路由转发功能

修改/etc/sysctl.conf的net.ipv4.ip_forward的值为1

并执行sysctl -p使配置文件生效。


第四步:修改/etc/sysconfig/dhcrelay配置文件,并启动dhcrelay服务

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

[root@server2 ~]# cat/etc/sysconfig/dhcrelay

INTERFACES="eth0 eth1 eth2"      //这里三个网卡都需要写出来

DHCPSERVERS="192.168.1.1"        //指定dhcp服务器的的ip地址,也就是server1的ip地址

[root@server2 ~]# servicedhcrelay start

启动 dhcrelay:                                            [确定]

[root@server2 ~]# servicedhcrelay restart

关闭 dhcrelay:                                            [确定]

启动 dhcrelay:                                            [确定]

[root@server2 ~]#


第五步:在客户机上测试

分别让客户机连接虚拟机的vm2和vm3测试,将客户机上的ip地址获取方式设置为dhcp(Linux客户机上)或自动获取ip地址(windows主机上)。

如果不出意外情况,能够获取到指定dhcp服务器指定地址池的ip地址。


三:扩展

1,查看dhcp的一些信息


在服务器端查看地址分配情况:查看/var/lib/dhcpd/dhcpd.leases文件

[root@server1 ~]# tail/var/lib/dhcpd/dhcpd.leases

}

lease 192.168.3.90 {

starts 6 2014/03/01 12:40:15;

ends 6 2014/03/01 18:40:15;

binding state active;

next binding state free;

hardware ethernet 00:0c:29:1c:da:dc;

uid "\001\000\014)\034\332\334";

client-hostname "server2";

}

[root@server1 ~]#


在客户端查看以获取的IP租约

[root@client1 ~]# tail -n 15/var/lib/dhclient/dhclient.leases

lease {

interface "eth0";

fixed-address 192.168.2.29;

option subnet-mask 255.255.255.0;

option time-offset -18000;

option routers 192.168.2.254;

option dhcp-lease-time 21600;

option dhcp-message-type 5;

option domain-name-servers 202.106.0.20,8.8.8.8;

option dhcp-server-identifier 192.168.1.1;

option domain-name "zhangsp.com";

renew 6 2014/3/1 16:06:58;

 rebind 6 2014/3/1 18:57:46;

expire 6 2014/3/1 19:42:46;

}

[root@client1 ~]#


2,dhcp服务器无法启动的排错方式

配置dhcp服务器常见的错误大致分为两种:

第一种:配置文件错误

这一种:排错方式最好的是使用service dhcpd configtest命令,如果有哪一行错误,将会有提示。

如果使用service dhcpd configtest命令检测不出来错误,那配置文件错误的可能性很小,我只发现了一个,就是subnet字段里面的网络地址跟dhcp服务器的主机不再一个网段,那么使用service dhcpd configtest是检测不出来错误的,就是无法启动dhcpd。


第二种:网络地址错误

dhcpd无法启动的另外一个原因是,Linux服务器没有设置固定的ip地址。

必须设置了固定的ip地址才能够成功启动dhcpd服务!!!


总结:配了好几次,终于成功了,最致命的两个错误:

1,没有将server1的网关指定为server2的ip地址。

2,没有将dhcp中继的/etc/sysconfig/dhcrelay配置文件里面的网卡指定网段指定全,需要指定所有的网卡,即eth0,eth1,eth2...(有几个网卡,写几个!!!)




本文转自 murongqingqqq  51CTO博客,原文链接:http://blog.51cto.com/murongqingqqq/1365700



相关文章
|
7月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
425 146
|
8月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
601 11
|
8月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
224 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
9月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
621 18
|
11月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
521 61
|
9月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
449 5
|
10月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
1142 5
|
11月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
517 14
|
12月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
352 18
|
10月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
226 0