dhclient 命令详解

1 概述

 

dhclient是一个DHCP协议客户端,它使用DHCP协议或者BOOTP协议或在这两个协议都不可用时使用静态地址来配置一个或多个网络接口。一般存在一个默认文件 dhclient.conf,但可以针对不同网卡创建对应网卡名称的配置文件,dhclient-eth0.conf,dhclient-eth1.conf,......。

 

 

 

 

 

 

2 DHCP操作流程

 

DHCP协议允许主机联系中央服务器,该中央服务器维护可以在一个或多个子网上分配的IP地址列表。

DHCP客户端可以从该池请求地址,然后临时使用它来进行网络通信。 DHCP协议还提供了一种机制,客户端可以通过该机制了解与其连接的网络的重要详细信息,例如默认路由器的位置,域名服务器的位置等。

 

DHCP协议DHCPv4和DHCPv6有两个版本。 在启动时,客户端可以通过-4或-6选项启动其中一个或另一个。

 

在启动时,dhclient会读取dhclient.conf以获取配置说明。 然后,它会获取当前系统中配置的所有网络接口的列表。 对于每个接口,它尝试使用DHCP协议配置接口。

 

为了在系统重新启动和服务器重新启动时跟踪租约,dhclient会保留已在dhclient.leases文件中分配的租约列表。

在启动时,在读取dhclient.conf文件后,dhclient将读取dhclient.leases文件以刷新其已分配的租约的内存。

 

获取新租约后,它将附加到dhclient.leases文件的末尾。 为了防止文件变得任意大,dhclient不时会从其内核租用数据库中创建一个新的dhclient.leases文件。 旧版本的dhclient.leases文件保留在名称dhclient.leases~下,直到dhclient下次重写数据库为止。

 

如果首次调用dhclient时DHCP服务器不可用(通常在初始系统引导过程中),则保留旧租约。 在那种情况下,测试dhclient.leases文件中尚未过期的旧租约,如果确定它们有效,则使用它们直到它们到期或DHCP服务器可用。

 

有时可能需要访问其上不存在DHCP服务器的网络的移动主机可以预先加载用于该网络上的固定地址的租用。

当所有联系DHCP服务器的尝试都失败时,dhclient将尝试验证静态租约,如果成功,将使用该租约直到重新启动。

 

移动主机也可能会前往一些DHCP不可用但BOOTP可用的网络。 在这种情况下,与网络管理员一起安排BOOTP数据库上的条目可能是有利的,这样主机可以在该网络上快速启动而不是循环通过旧租约列表。

 

 

 

 

 

3 命令详解

 

3.1 命令行概述

 

可以在命令行上指定dhclient应尝试配置的网络接口的名称。 如果在命令行上未指定接口名称,则dhclient通常会识别所有网络接口,如果可能,将消除非广播接口,并尝试配置每个接口。

 

也可以在dhclient.conf文件中按名称指定接口。 如果以这种方式指定接口,则客户端将仅配置在配置文件或命令行中指定的接口,并将忽略所有其他接口。

 

客户端通常在其启动序列期间不输出任何输出。 可以使它发出显示启动顺序事件的详细消息,直到通过提供-v命令行参数获取地址为止。 在任何一种情况下,客户端都使用syslog(3)工具记录消息。

 

 

 

 

3.2 语法

 

Usage: dhclient [-4|-6] [-SNTPI1dvrxi] [-nw] [-p ] [-D LL|LLT]

[-s server-addr] [-cf config-file] [-lf lease-file]

[-pf pid-file] [--no-pid] [-e VAR=val]

[-I ] [-B]

[-H | -F ] [-timeout ]

[-V ]

[-R ]

[-sf script-file] [interface]

 

 

 

 

3.3 选项说明

 

(1) 通用选项

 

选项

说明

-4

使用DHCPv4协议获取IPv4地址和配置参数。 这是默认值,不能与-6结合使用。

-6

使用DHCPv6协议获取可用的IPv6地址以及配置参数。 它不能与-4结合使用。 -S -T -P和-N参数提供对DHCPv6处理方面的更多控制。 注意:不建议将不同类型的查询混合在一起,甚至不要在它们之间共享租用文件。

-l

尝试获得一次租约。 在使用代码2退出故障时。在DHCPv6中,这将初始交换的最大持续时间设置为超时(来自dhclient.conf,默认值为60秒)。

-d

强制dhclient作为前台进程运行。 通常情况下,DHCP客户端将在前台运行,直到配置了一个接口,此时它将恢复为在后台运行。 在调试器下运行客户端或在System V系统上从inittab运行客户端时,此选项很有用。 这意味着-v。

-nw

立即成为守护进程(nowait),而不是等到获取IP地址。

-q

在启动时保持安静,这是默认设置。

-v

启用详细日志消息。

-w

即使没有找到广播接口,也继续运行。 通常,如果DHCP客户端无法识别要配置的任何网络接口,则它将退出。 在笔记本电脑和其他具有热插拔I / O总线的计算机上,可能会在系统启动后添加广播接口。 此标志可用于使客户端在找不到任何此类接口时不退出。 然后,可以使用omshell(1)程序在添加或删除网络接口时通知客户端,以便客户端可以尝试在该接口上配置IP地址。

-n

不要配置任何接口。 这最有可能与-w标志结合使用。

-e VAR=val

为dhclient-script(8)执行的环境定义其他环境变量。 您可以在命令行上指定多个-e选项。

-r

释放当前租约并停止正在运行的DHCP客户端,如先前在PID文件中记录的那样。 通过此方法关闭时,将执行dhclient-script(8),具体原因是调用脚本集。 客户端通常不会释放当前租约,因为这不是DHCP协议所要求的,但是一些有线ISP要求其客户端通知服务器是否希望释放分配的IP地址。

-x

停止正在运行的DHCP客户端而不释放当前租约。 杀死先前记录在PID文件中的现有dhclient进程。 通过此方法关闭时,将执行dhclient-script(8),具体原因是调用脚本集。

-p port

DHCP客户端应侦听和传输的UDP端口号。 如果未指定,则dhclient使用默认端口68.这对于调试目的非常有用。 如果指定了客户端应监听和传输的其他端口,则客户端还将使用不同的目标端口 - 比指定端口少一个。

-s server-addr

在dhclient获取IP地址之前,指定用作DHCP协议消息目标的服务器IP地址或完全限定域名。 通常,dhclient将这些消息发送到255.255.255.255(IP受限广播地址)。 覆盖它主要用于调试目的。 DHCPv6(-6)模式不支持此功能。

-g relay

将所有数据包的giaddr字段设置为模拟中继代理的中继IP地址。 这仅用于测试,不应该以任何一致或有用的方式工作。

--version

打印版本号并退出。

 

 

 

(2) 可用于DHCPv6模式的选项

 

选项

说明

-S

使用信息请求仅获取无状态配置参数(即,没有地址)。 这意味着-6。 它也不会重写租赁数据库。

-T

请求IPv6临时地址,每个-T标志一组。 这意味着-6并且还禁用正常地址查询。 请参见-N以恢复它。

-P

启用IPv6前缀委派。 这意味着-6并且还禁用正常地址查询。 请参见-N以恢复它。 请注意,只允许一个请求的接口。

-N

恢复IPv6的正常地址查询。 这意味着-6。 它用于在使用-T或-P后恢复正常操作。

 

 

(3) 修改默认文件位置

以下选项可用于修改客户端用于其文件的位置。 例如,如果在启动DHCP客户端时尚未安装DBDIR或RUNDIR,则它们特别有用。

 

 

选项

说明

-cf config-file

客户端配置文件的路径。 如果未指定,则使用默认的ETCDIR / dhclient.conf。 有关此文件的说明,请参阅dhclient.conf(5)。

-lf lease-file

租用数据库文件的路径。 如果未指定,则使用默认的DBDIR / dhclient.leases。 有关此文件的说明,请参阅dhclient.leases(5)。

-pf pid-file

进程标识文件的路径。 如果未指定,则使用默认的RUNDIR / dhclient.pid。

--no-pid

禁用写入pid文件的选项。 默认情况下,程序将写入一个pid文件。 如果使用此选项调用该程序,即使使用-r或-x调用,也不会尝试终止任何现有的客户端进程。

-sf script-file

dhclient获取租约时调用的网络配置脚本的路径。 如果未指定,则使用默认的CLIENTBINDIR / dhclient-script。有关此文件的说明,请参阅dhclient-script(8)。

 

 

 

 

 

 

4 实例

 

 

(1) 释放ip命令

sudo dhclient eth1 -r
[root@localhost /]# sudo dhclient eth1 -r -v

Internet Systems Consortium DHCP Client 4.2.5

Copyright 2004-2013 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/



Listening on LPF/eth1/00:0c:29:9b:52:dd

Sending on LPF/eth1/00:0c:29:9b:52:dd

Sending on Socket/fallback

DHCPRELEASE on eth1 to 192.168.233.254 port 67 (xid=0x5395c742)

 

 

 

 

(2) 获取ip命令

sudo dhclient eth1
[root@localhost /]# sudo dhclient eth1 -v

Internet Systems Consortium DHCP Client 4.2.5

Copyright 2004-2013 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/



Listening on LPF/eth1/00:0c:29:9b:52:dd

Sending on LPF/eth1/00:0c:29:9b:52:dd

Sending on Socket/fallback

DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4 (xid=0x16edbfa7)

DHCPREQUEST on eth1 to 255.255.255.255 port 67 (xid=0x16edbfa7)

DHCPOFFER from 192.168.233.254

DHCPACK from 192.168.233.254 (xid=0x16edbfa7)

bound to 192.168.233.137 -- renewal in 143 seconds.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文参考:

http://blog.chinaunix.net/uid-26497520-id-3874410.html

你可能感兴趣的:(网络基础原理)