第六周作业

第六周作业

1、子网划分
  • 100.0.0.16/28 对应网段的网络地址、广播地址、可分配IP地址范围
100.0.0.16/28-->100.0.0.16/255.255.255.240
可用地址:2^4=16或256-240=16
即可用地址段:100.0.0.16-100.0.0.31
网络地址:100.0.0.16
广播地址:100.0.0.31
可分配IP地址范围:100.0.0.17-100.0.0.30

2、tcpdump

tcpdump [options] [ expression ]

options
  • -A:以ASCII格式打印每个数据包(减去其链路级头部)。方便抓取网页。
  • -a:将网络地址和广播地址转换成名称
  • -b:已ASDOT符号打印BGP包中的AS号
  • -B buffer_size:设置缓冲区大小,单位为KiB
  • -c count:抓取的数据包个数
  • -C file_size:判断-w指定的文件大小是否超过指定大小值,超过则新建文件(文件名后缀为1、2、3依次增加)
  • d: 汇编格式输出
  • -dd:c格式输出
  • -ddd:十进制格式输出
  • -D:列出当前主机的所有网卡编号和名称,可用于选项-i
  • -e:打印出数据链路层的头部信息,包括源mac和目的mac,以及网络层的协议
  • -E spi@ipaddr algo:secret,...:抓取IPsec ESP报文
  • -f:以数字形式显示internet地址
  • -F file:从指定文件中读取表达式,忽略其他的表达式
  • -G rotate_seconds:每隔指定时间旋转一次-w指定的文件
  • -h:获取tcpdump帮助信息
  • -H:检测802.11s协议的报文
  • -i interface:指定要抓包的接口,如-i ens33
  • -I:将接口设置为监控模式,仅在IEEE 802.11 wifi接口和某些操作系统支持
  • -l:输出结果至标准输出,使用缓冲区
  • -m module:加载模块
  • -n:显示ip地址而不是主机名
  • -nn:显示协议端口而不是协议名称
  • -N:显示短格式主机名称
  • -O:不将数据包编码最佳化
  • -p:网络接口不进入混杂模式
  • -P:指定流量方向,可选in、out、inout
  • -q:简略输出
  • -r:从指定文件读取包(由-w file生成)
  • -S:打印绝对而非相对的TCP序列号
  • -s snaplen:显示一行的宽度,-s 0 表示显示完整的包,常与-A一起用,默认截取60个字节
  • -T:指定包的类型,常见的类型有rpc、snmp、tftp、vxlan等
  • -t:不打印时间戳
  • -tt:显示未经格式化的时间戳
  • -u:打印未编码的NFS句柄
  • -v:输出稍微详细的信息
  • -vv:输出详细的信息
  • -vvv:输出更详细的信息
  • -w file:将输出保存至文件中
  • -x/-xx/-X/-XX:以十六进制的方式输出信息
expression

表达式用于筛选输出哪些类型的数据包,如果没有给定表达式,所有的数据包都将输出,否则只输出表达式为true的包。在表达式中出现的shell元字符建议使用单引号包围。

tcpdump的表达式由一个或多个"单元"组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)。有三种修饰符:

(1)type:指定ID的类型。

  • 可以给定的值有host/net/port/portrange。例如"host foo","net 128.3","port 20","portrange 6000-6008"。默认的type为host。

(2)dir:指定ID的方向。

  • 可以给定的值包括src/dst/src or dst/src and dst,默认为src or dst。例如,"src foo"表示源主机为foo的数据包,"dst net 128.3"表示目标网络为128.3的数据包,"src or dst port 22"表示源或目的端口为22的数据包。

(3)proto:通过给定协议限定匹配的数据包类型。

  • 常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。例如"tcp port 21","udp portrange 7000-7009"。

所以,一个基本的表达式单元格式为"proto dir type ID"

除了使用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。

表达式单元之间可以使用操作符" and、&&、or、||、not、! "进行连接,从而组成复杂的条件表达式。

e.g.
  • 抓取lo口的http的报文,显示ip地址和端口
[root@node01 ~]# tcpdump  -i lo -nn tcp port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
15:20:25.771911 IP 172.16.0.6.50942 > 172.16.0.6.80: Flags [S], seq 1124948803, win 43690, options [mss 65495,sackOK,TS val 16485111 ecr 0,nop,wscale 7], length 0
15:20:25.771929 IP 172.16.0.6.80 > 172.16.0.6.50942: Flags [S.], seq 1370294178, ack 1124948804, win 43690, options [mss 65495,sackOK,TS val 16485111 ecr 16485111,nop,wsc
ale 7], length 015:20:25.771937 IP 172.16.0.6.50942 > 172.16.0.6.80: Flags [.], ack 1, win 342, options [nop,nop,TS val 16485111 ecr 16485111], length 0
15:20:25.771984 IP 172.16.0.6.50942 > 172.16.0.6.80: Flags [P.], seq 1:75, ack 1, win 342, options [nop,nop,TS val 16485111 ecr 16485111], length 74
...
  • 抓取ens33口的icmp报文,显示ip地址
[root@node01 ~]# tcpdump -i ens33 -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes
15:22:02.597870 IP 172.16.0.1 > 172.16.0.6: ICMP echo request, id 1, seq 82, length 40
15:22:02.597889 IP 172.16.0.6 > 172.16.0.1: ICMP echo reply, id 1, seq 82, length 40
15:22:03.600208 IP 172.16.0.1 > 172.16.0.6: ICMP echo request, id 1, seq 83, length 40
15:22:03.600223 IP 172.16.0.6 > 172.16.0.1: ICMP echo reply, id 1, seq 83, length 40
...
  • 抓取ens33口的tcp协议,目的端口为22的报文,显示ip地址和端口
[root@node01 ~]# tcpdump -i ens33 -nn tcp dst port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes
15:26:02.262733 IP 172.16.0.1.54113 > 172.16.0.6.22: Flags [.], ack 734756394, win 4104, length 0
15:26:02.304820 IP 172.16.0.1.54113 > 172.16.0.6.22: Flags [.], ack 149, win 4104, length 0
...

3、僵尸进程

一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,他的作用是使进程退出,但是也仅仅限于一个正常的进程变成了一个僵尸进程,并不能完全将其销毁)。在linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有的内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态信息供其他进程收集,除此之外,僵尸进程不再占有任何存储空间。

产生原因:

  • 在子进程终止后到父进程调用wait()前的时间里,子进程被称为zombie;

危害:

  • 僵尸进程会占用系统资源,如果很多,将因为没有可用的进程号而导致系统不能产生新的进程,严重影响服务器的性能;

如何防止僵尸进程

  • (1) 让僵尸进程成为孤儿进程,由init进程回收;(手动杀死父进程)
  • (2) 调用fork()两次;
  • (3) 捕捉SIGCHLD信号,并在信号处理函数中调用wait函数;
  • (4) 用waitpid等待子进程返回。

4、vmstat

vmstat [options] [delay [count]]

[root@node01 ~]# 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 1583256   3140 174896    0    0     4     0   14   19  0  0 100  0  0
字段含义:

procs:

  • r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;
  • b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

memory:

  • swpd:交换内存使用总量;
  • free:空闲的物理内存总量;
  • buffer:用于buffer的内存总量;
  • cache:用于cache的内存总量;

swap

  • si:数据进入swap中的数据速率(kb/s)
  • so:数据离开swap的速率(kb/s)
  • io
  • bi:从块设备读入数据到系统的速度(kb/s)
  • bo:保存数据至块设备的速率(kb/s)

system

  • in:interrupts,中断速率;
  • cs:context switch, 上下文 切换的速率;

cpu

  • us: user space
  • sy:system
  • id:idle
  • wa:wait
  • st: stolen

转载于:https://blog.51cto.com/zengshao/2389356

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值