1、100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围
十进制28位子网掩码对应二进制子网掩码 255.255.255.240
广播地址:100.0.0.31/28
可分配ip地址范围:100.0.0.16 -- 100.0.0.31
可分配16个子网
网关地址:在学路由交换的时候一般都会将有效ip地址范围最后一个地址设置为网关地址,即100.0.0.30
100.0.0.16为主机地址,100.0.0.31为广播地址,所以有效的ip地址范围为 100.0.0.17-100.0.0.30
2、使用man手册学习tcpdump的使用
(1)概述
tcpdump是用来抓取网络包内容描述信息的工具,根据使用者的定义对网络上的数据包进行截获的包分析工具,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
(2)实用命令实例
默认启动
# tcpdump
普通情况下,直接启动tcpdump将监视第一个网络接口上所流过的数据包。
监视指定网络接口的数据包
# tcpdump -i eth1
如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0
监视指定主机的数据包
打印所有进入或离开HOSTNAME的数据包
# tcpdump host HOSTNAME
也可以指定ip,例如截获所有172.16.10.10的主机收到的和发出的所有的数据包
# tcpdump host 172.16.10.10
截获主机172.16.10.10和主机172.16.10.6或172.16.10.100的通信
# tcpdump host 172.16.10.10 and \( 172.16.10.6 or 172.16.100 \)
打印centos与xingxinchao或者redhat之间通信的数据包
# tcpdump host centos and \( xingxinchao or redhat \)
打印ace与任何其它主机之间通信的ip数据包,但不包括helios之间的数据包
# tcpdump ip host ace and not helios
监视所有送到主机hostname的数据包
# tcpdump -i eth0 dst host hostname
监视指定主机和端口的数据包
如果想要获取主机210.27.48.1接受或发出的telnet包,使用如下命令
# tcpdump tcp port 23 and host 210.27.48.1
对本机的udp 123端口进行监视 123位ntp的服务端口
# tcpdump udp port 23
常用选项:
(1)tcp:ip、icmp、arp、rarp、tcp、udp这些选项等都要放到第一个参数的位置,用来过滤数据的类型
(2)-i eth0:只抓指定的接口eth0的数据包
(3)-t:不显示时间戳
(4)-s 0:抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
(5)-c 100:只抓取指定的100个数据包
(6)dst port ! 22:不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24:数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap:保存成cap文件,方便用wireshark分析
3、详细叙述僵尸进程产生的原因以及危害
(1)什么是僵尸进程
当子进程(child process)先于父进程(parent process)退出,但是父进程没有调用wait/waitpid回收子进程的资源,则子进程变成僵尸进程。但是如果该进程的父进程已经结束,那该进程就不会变成僵尸进程,因为每个进程结束的时候,系统会扫描所有运行中的进程,看看有没有哪个进程是刚刚结束的子进程,如果有就由init来接管它,成为它的父进程。
(2)危害
如果父进程不调用wait/waitpid,则子进程的保留信息不回被释放,造成内核资源的无法回收,同时进程号会一直被占用,系统所能使用的进程号是有限的,大量的产生僵尸进程将会导致系统不能产生新的进程。
(3)怎么避免僵尸进程
防止的办法是当父进程fork一个子进程后,必须通过wait/waitpid等函数等待子进程结束,但这会导致父进程挂起,所以通常的做法使用signal函数为SIGCHLD安装handler,在handler函数中调用wait/waitpid函数进行回收
4、详细说明vmstat输出结果的含义
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 3533764 2084 172880 0 0 3 0 18 16 0 0 100 0 0
(1)procs:(进程相关信息)
r:运行和等待运行的进程个数,cpu上等待运行的任务的队列长度
b:处于不可中断睡眠状态的进程个数;被阻塞的任务队列长度
(2)memory:(内存相关信息)
swad:虚拟内存使用量
free:物理内存使用量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
(3)swap:(交换分区信息)
si:数据进入swap中的数据速率(KB/s)
so:数据离开swap的速率(KB/s)
(4)io:io相关信息
bi:从块设备读入数据到系统的速率(KB/s)
bo:保存数据至块设备的速率(KB/s)
(5)system:(内核相关信息)
in:每秒产生的中断数量
cs:context switch,每秒上下文切换速率(数量)
(6)cpu:cpu时间相关信息
us:user space,用户空间占用CPU的时间百分比
sy:system,内核空间占用cpu的时间百分比
id:空闲时间百分比*(2.5.41之前,还包含等待io的时间)
wa:等待io的时间百分比(2.5.41之前,被包含在id时间里)
st:被虚拟机偷走的时间(2.6.11之后才有)
网友评论