计算机网络之验证性实验(DHCP+netstat)

DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

1.用于内部网或网络服务供应商自动分配 IP 地址给用户
2.用于内部网管理员对所有电脑作中央管理

简单的说,DHCP 可以让计算机自动获取/释放网络配置。

DHCP的工作原理

必须先安装和配置 DHCP 服务器。在配置过程中,需要指定客户机在网络上运行时所需的有关网络的信息。具备该信息后,客户机便可请求并接收网络信息。
下图显示了 DHCP 服务事件的序列。圆圈中的数字与图表之后的说明中的编号相对应。
在这里插入图片描述

上图显示了以下步骤:

1.客户机通过将搜索消息广播到本地子网上的有限广播地址 (255.255.255.255) 来搜索 DHCP 服务器。如果存在路由器并已将其配置为充当 BOOTP 中继代理的角色,请求便会传送到不同子网上的其他 DHCP 服务器。客户机的广播包括其唯一的 ID,在 Oracle Solaris 中的 DHCP 实现中,此 ID 由客户机的介质访问控制 (Media Access Control, MAC) 地址派生而来。在以太网上,MAC 地址与以太网地址相同。

接收搜索消息的 DHCP 服务器可以通过查看以下信息来确定客户机的网络:

请求来自哪个网络接口?服务器会确定客户机是位于通过接口连接的网络上,还是正在使用连接到该网络的 BOOTP 中继代理。

请求中包含 BOOTP 中继代理的 IP 地址吗?当请求通过中继代理时,中继代理会将其地址插入到请求标头中。当服务器检测到中继代理地址时,服务器知道该地址的网络部分表示客户机的网络地址,这是因为中继代理必须连接到客户机的网络。

客户机的网络有子网吗?服务器会查看 netmasks 表,来查找由中继代理地址或接收请求的网络接口地址指定的网络使用的子网掩码。服务器一旦知道了所用的子网掩码,就可以确定网络地址的哪一部分表示主机地址,然后可以选择适用于客户机的 IP 地址。有关 netmasks 的信息,请参见 netmasks(4) 手册页。

2.在 DHCP 服务器确定客户机的网络之后,便会选择相应的 IP 地址并确认该地址尚未使用。然后,DHCP 服务器通过广播一条提供消息来响应客户机。该提供消息中包含选定的 IP 地址以及有关可为客户机配置的服务的信息。每台服务器都会暂时保留所提供的 IP 地址,直到客户机确定是否使用该 IP 地址为止。

3.客户机会根据所提供的服务的数量和类型来选择最佳内容。客户机会广播一条请求来指定提供最佳内容的服务器的 IP 地址。该广播确保所有发出响应的 DHCP 服务器都知道客户机已经选择了一台服务器。未被选中的服务器会取消对之前提供的 IP 地址的保留。

4.被选中的服务器会为客户机分配 IP 地址,并将信息存储到 DHCP 数据存储中。该服务器还会向客户机发送一条确认消息 (acknowledgement message, ACK)。确认消息包含客户机的网络配置参数。客户机使用 ping 实用程序测试此 IP 地址,以确保它没有被其他系统使用。然后,客户机会继续引导以加入网络。

5.客户机会监视租用时间。当设定的时间段过去时,客户机会向所选的服务器发送一条新消息来延长租用时间。

6.接收请求的 DHCP 服务器会延长租用时间,前提是租用仍然遵循由管理员设置的本地租用策略。如果服务器在 20 秒内没有响应,客户机便会广播一条请求,以便其他 DHCP 服务器之一可以延长租用期。

7.当客户机不再需要 IP 地址时,便会通知服务器已释放了 IP 地址。此通知可以在正常关机时发送,也可以手动发送。

DHCP也是一个没有考虑安全性的并且使用广泛的一个协议。比如,因为 DHCP 维护的地址池是有限的,那么我可以不停的发出 DHCP 请求,从而导致 DHCP 地址耗尽。然后我自己再运行一个 DHCP 服务器来提供虚假的网络信息,特别是伪造的网关和 DNS 信息。

netstat

无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

netstat命令用法详解

Netstat(network statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

命令选项

1.显示所有连接。
-a 选项会列出 tcp, udp 和 unix 协议下所有套接字的所有连接。

请添加图片描述

2.只列出 TCP 或 UDP 协议的连接

使用 -t 选项列出 TCP 协议的连接,可和 -a 选项配合使用

请添加图片描述

使用 -u 选项列出 UDP 协议的连接

3.禁用反向域名解析,加快查询速度

默认情况下 netstat 会通过反向域名解析查找每个 IP 地址对应的主机名,会降低查找速度。n 选项可以禁用此行为,并且用户 ID 和端口号也优先使用数字显示。

请添加图片描述

4.只列出监听中的连接

-l 选项可以只列出正在监听的连接(不能和 a 选项同时使用)

5.获取进程名、进程号以及用户 ID

-p 选项可以查看进程信息(此时 netstat 应尽量运行在 root 权限之下,否则不能得到运行在 root 权限下的进程名)

-pe 选项可以同时查看进程名(号)和进程所属的用户名

6.显示路由信息
使用 -r 选项打印内核路由信息,与 route 命令输出一样。

使用 -r 选项打印内核路由信息,与 route 命令输出一样。

请添加图片描述

7.网络接口信息

-i 选项可以输出网络接口设备的统计信息,结合上 -e 选项,等于 ifconfig 命令的输出。

8.获取网络协议的统计信息

-s 选项可以输出针对不同网络协议的统计信息,包括 Ip、Icmp、Tcp 和 Udp 等。

请添加图片描述

-a或–all:显示所有连线中的Socket;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:持续列出网络状态;
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定”-A unix”参数相同;
–ip或–inet:此参数的效果和指定”-A inet”参数相同。
例子

列出所有端口情况
[root@xiesshavip002 ~]# netstat -a # 列出所有端口
[root@xiesshavip002 ~]# netstat -at # 列出所有TCP端口
[root@xiesshavip002 ~]# netstat -au # 列出所有UDP端口

列出所有处于监听状态的 Sockets
[root@xiesshavip002 ~]# netstat -l # 只显示监听端口
[root@xiesshavip002 ~]# netstat -lt # 显示监听TCP端口
[root@xiesshavip002 ~]# netstat -lu # 显示监听UDP端口
[root@xiesshavip002 ~]# netstat -lx # 显示监听UNIX端口

显示每个协议的统计信息
[root@xiesshavip002 ~]# netstat -s # 显示所有端口的统计信息
[root@xiesshavip002 ~]# netstat -st # 显示所有TCP的统计信息
[root@xiesshavip002 ~]# netstat -su # 显示所有UDP的统计信息

显示 PID 和进程名称
[root@xiesshavip002 ~]# netstat -p

显示核心路由信息
[root@xiesshavip002 ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

[root@xiesshavip002 ~]# netstat -rn # 显示数字格式,不查询主机名称
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.130.1 0.0.0.0 UG 0 0 0 eth0
192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@xiesshavip002 ~]#

查看端口和服务
[root@xiesshavip002 ~]# netstat -antp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 ::😗 LISTEN 734/sshd
[root@xiesshavip002 ~]# netstat -antp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd
tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts
tcp6 0 0 :::22 ::😗 LISTEN 734/sshd
[root@xiesshavip002 ~]#
netstat –help

[root@xiesshavip002 ~]# netstat –help
usage: netstat [-vWeenNcCF] [] -r netstat {-V|–version|-h|–help}
netstat [-vWnNcaeol] [ …]
netstat { [-vWeenNac] -I[] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

-r, --route              display routing table
-I, --interfaces=<Iface> display interface table for <Iface>
-i, --interfaces         display interface table
-g, --groups             display multicast group memberships
-s, --statistics         display networking statistics (like SNMP)
-M, --masquerade         display masqueraded connections

-v, --verbose            be verbose
-W, --wide               don't truncate IP addresses
-n, --numeric            don't resolve names
--numeric-hosts          don't resolve host names
--numeric-ports          don't resolve port names
--numeric-users          don't resolve user names
-N, --symbolic           resolve hardware names
-e, --extend             display other/more information
-p, --programs           display PID/Program name for sockets
-o, --timers             display timers
-c, --continuous         continuous listing

-l, --listening          display listening server sockets
-a, --all                display all sockets (default: connected)
-F, --fib                display Forwarding Information Base (default)
-C, --cache              display routing cache instead of FIB
-Z, --context            display SELinux security context for sockets

={-t|–tcp} {-u|–udp} {-U|–udplite} {-w|–raw} {-x|–unix}
–ax25 –ipx –netrom
=Use ‘-6|-4’ or ‘-A ’ or ‘–’; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[root@xiesshavip002 ~]#
后面部分转载自xie仗剑天涯的博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值