2018-11-22

1、简述osi七层模型和TCP/IP五层模型

OSI模型:

开放系统互联标准,该模型是由国际标准化组织(ISO)定义的,分成7个层级,他们分别是:

所有网络设备:

1.物理层:

指定连接器、数据速率和如何在某些介质上进行位编码。本层也描述低层的差错检测和纠正、频率分配。例子包括V.92、以太网1000BASE-T、SONET/SDH。

2.数据链路层:

指定经过单一链路通信的方法,包括多个系统共享同一介质时的“介质访问”控制协议。本层通常包括差错检测和链路层地址格式。例如:

以太网、WI-FI、ISO-13239/HDLC

3.网络层:

指定经过潜在不同类型链路层网络的多跳通信方法。对于分组网络,它描述了抽象的分组格式和标准的编址结构。例子:IP数据报、X25PLP、ISO CLNP

所有主机:

4.传输层:

指定运行在相同计算机系统中多个程序之间的连接或关联的方法。如果在其他地方没有实现,本层可能实现可靠的传递。例如:TCP、ISO TP4

5.会话层:

指定由多个连接组成一个通信绘画的方法。它可能包括关闭连接、重启连接和检查点进程。

6.表示层:

指定针对应用的数据表示格式和转换规则的方法。典型的例子如字符从EBCDIC转换为ASCⅡ码,加密有时也与本层有关,但也可能在其他层中

7.应用层:

指定完成某些用户初始化任务的方法。应用协议通常由应用开发者设计和实现。


ARPANET参考模型:

链路层(辅助):用于网络层到基于多接入链路层网络的链路层的地址映射的非正式的“层”。例如ARP。

网络层:定义抽象的数据报和提供路由。IP、IPv6

网络层(辅助):协助完成网络层设置、管理和安全的非正式的“层”。ICMP、IGMP、IPsec

传输层:提供在抽象的、由应用管理的“端口”直接的数据交换。可能包括差错和流量控制。TCP、UDP、SCTP、DCCP

应用层:实质上是Internet 兼容的任何应用。包括HTTP、DNS、DHCP


2、简述iproute家族命令

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具

语法ip [ OPTIONS ] OBJECT { COMMAND | help }

选项

-s:输出更详细的信息;

-f:强制使用指定的协议族;

-4:指定使用的网络层协议是IPv4协议;

-6:指定使用的网络层协议是IPv6协议;

-0:输出信息每条记录输出一行,即使内容较多也不换行显示;

-r:显示主机时,不使用IP地址,而使用主机的域名。

link:网络设备配置

ip link show

ip link help

ip link set { DEVICE | dev DEVICE | group DEVGROUP }

[ { up | down } ]              启用关闭

[ multicast { on | off } ]      启用或禁用多播功能

[ name NEWNAME ]                重命名接口

[ mtu MTU ]                    设置MTU(默认1500)

[ netns { PID | NAME } ]        用于将接口移动到指定的网络名称空间

ddress:IP地址配置

ip address help

ip address [ show [ dev IFNAME ]    显示接口IP信息

ip address del IFADDR dev IFNAME    删除IP地址

ip address flush dev IFNAME        清空所有的IP地址

ip address add IFADDR dev IFNAME

[label NAME]                    为额外添加的地址指明接口别名

[broadcast ADDRESS]            广播地址;会根据IP和NETMASK自动计算得到

[scope SCOPE_VALUE]

global                      全局可用

link                        接口可用

host                        仅本机可用 

route:路由表配置

ip route help

ip route show

ip routeadd TYPE PREFIX via GW [dev IFNAME] [src SOURCE_IP] 添加路由

netns:网络名称空间

ip netns list

ip netns add NAME                  创建虚拟网络

ip netns del NAME                  删除虚拟网络

ip netns exec NAME COMMAND          在指定的netns中运行命令

实例

显示网卡网络设备运行状态详细信息

root@ubuntu:/home/wanglei# ip -s link

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    RX: bytes  packets  errors  dropped overrun mcast 

    83160      518      0      0      0      0     

    TX: bytes  packets  errors  dropped carrier collsns

    83160      518      0      0      0      0     

2: ens33: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

    link/ether 00:0c:29:94:65:d9 brd ff:ff:ff:ff:ff:ff

    RX: bytes  packets  errors  dropped overrun mcast 

    1779494    24220    0      0      0      0     

    TX: bytes  packets  errors  dropped carrier collsns

    20102      177      0      0      0      0 

查看模块网卡状态

root@ubuntu:/home/wanglei# ip link show ens33

2: ens33: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

    link/ether 00:0c:29:94:65:d9 brd ff:ff:ff:ff:ff:ff

关闭/开启网卡

root@ubuntu:/home/wanglei# ip link set ens33 down

root@ubuntu:/home/wanglei# ip link set ens33 up


修改网卡名称

root@ubuntu:/home/wanglei# ip link set ens33 down  关闭网卡

root@ubuntu:/home/wanglei# ip link set ens33 name ens100  更改网卡名称

root@ubuntu:/home/wanglei# ip link show ens100   查看网卡状态

2: ens100: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000

    link/ether 00:0c:29:94:65:d9 brd ff:ff:ff:ff:ff:ff


address

显示网卡IP地址和网卡详细信息

root@ubuntu:/home/wanglei# ip -s address

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

      valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

    RX: bytes  packets  errors  dropped overrun mcast 

    286516    1205    0      0      0      0     

    TX: bytes  packets  errors  dropped carrier collsns

    286516    1205    0      0      0      0     

2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:94:65:d9 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.124/24 brd 192.168.1.255 scope global dynamic ens33

      valid_lft 3599sec preferred_lft 3599sec

    inet6 fe80::58c7:639e:b120:2246/64 scope link

      valid_lft forever preferred_lft forever

    RX: bytes  packets  errors  dropped overrun mcast 

    14279373  201395  0      0      0      0     

    TX: bytes  packets  errors  dropped carrier collsns

    59575      557      0      0      0      0 


route

显示路由信息

root@ubuntu:/home/wanglei# ip route list

default via 192.168.1.1 dev ens33  proto static  metric 100

169.254.0.0/16 dev ens33  scope link  metric 1000

192.168.1.0/24 dev ens33  proto kernel  scope link  src 192.168.1.124  metric 100


ss

ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容

语法

ss [ OPTIONS ]

ss [ OPTIONS ] [ FILTER ]

OPTIONS

-t:TCP协议的相关连接

-u:UDP相关的连接

-w:raw socket相关的连接

-l:监听状态的连接

-a:所有状态的连接

-n:数字格式

-p:相关的程序及其PID

-e:扩展格式信息

-m:内存用量

-o:计时器信息

-s:统计信息

显示所有tcp socket

root@ubuntu:/home/wanglei# ss -ta

State      Recv-Q Send-Q Local Address:Port                Peer Address:Port               

LISTEN    0      5      127.0.1.1:domain                  *:*                   

LISTEN    0      128        *:ssh                      *:*                   

LISTEN    0      5      127.0.0.1:ipp                      *:*                   

LISTEN    0      128    127.0.0.1:postgresql              *:*                   

LISTEN    0      32        :::ftp                    :::*                   

LISTEN    0      128      :::ssh                    :::*                   

LISTEN    0      5        ::1:ipp                    :::*                   

LISTEN    0      128      :::90                      :::*                   


显示所有的udp socket

root@ubuntu:/home/wanglei# ss -ua

State      Recv-Q Send-Q Local Address:Port                Peer Address:Port               

ESTAB      0      0      127.0.0.1:41536                127.0.0.1:41536               

UNCONN    0      0          *:ipp                      *:*                   

UNCONN    0      0          *:mdns                    *:*                   

UNCONN    0      0          *:47730                    *:*                   

UNCONN    0      0      *%ens33:53076                    *:*                   

UNCONN    0      0      127.0.1.1:domain                  *:*                   

UNCONN    0      0          *:bootpc                  *:*                   

UNCONN    0      0        :::58537                  :::*                   

UNCONN    0      0        :::mdns                    :::*           

显示网络接口状态

root@ubuntu:/home/wanglei# ss -s

Total: 1031 (kernel 1122)

TCP:  9 (estab 0, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total    IP        IPv6

*   1122      -        -       

RAW   1        0        1       

UDP   9        7        2       

TCP   8        4        4       

INET   18        11        7       

FRAG   0        0        0       

3、详细说明进行管理工具htop、vmstat等相关命令,并举例

top是linux下常用的监控程序,htop相当于其加强版,颜色显示不同参数,且支持鼠标操作,监控起来比较方便,但是需要手动安装。


2018-11-22_第1张图片

这是htop的界面,其中第1-4行分别表示:

1.1、2行为目前设备CPU使用情况

2.第3行为目前内存使用情况

3.第4行为目前交换分区使用情况

下层进程项为

PID:进程标志号,是非零正整数

USER:进程所有者的用户名

PR:进程的优先级别

NI:进程的优先级别数值

VIRT:进程占用的虚拟内存值

RES:进程占用的物理内存值

SHR:进程使用的共享内存值

S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数

%CPU:该进程占用的CPU使用率

%MEM:该进程占用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间

COMMAND:进程启动的启动命令名称


htop 交互参数

-d[刷新时间]-u[指定用户]

Space:标记进程,可以一起kill掉

U:去掉所有进程上的标记          

s:追踪进程

l:显示进程打开的文件


vmstat命令

vmstat可以用来监控系统资源使用情况,并且可以动态显示

[root@zabbix-server ncurses-5.9]# 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 1907192  2472 776500    0    0  220    80  233  256  2  2 93  3  0

语法格式: vmstat [-V] [-n] [-S unit] [delay [count]]

-V:显示vmstat版本信息

-n:只在开始时显示一次各字段名称

-a:显示活跃和非活跃内存

-d:显示各个磁盘相关统计信息

-D:显示磁盘总体信息

-p:显示指定磁盘分区统计信息

-s:显示内存相关统计信息及多种系统活动数量

-m:显示slabinfo

-t:在输出信息的时候也将时间一并输出出来

-S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)


4、使用until和while分别实现192.168.0.0/24

网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

while

1 #!/bin/bash

  2

  3 i=1             定义变量i

  4 while [ $i -le 254 ];do   判断是否变量值小于254 如果是执行ping

  5      ping -c 1 192.168.1.$i 2>&1 >/dev/null

  6      if [ $? = 0 ];then          根据执行结果输出相应结果

  7              echo "host 192.168.1.$i is alive"

  8      else

  9              echo "host 192.168.1.$i is down"

10      fi

11      let i++

12 done

13

until

1 #!/bin/bash

  2

  3 i=1

  4 while [ $i -le 254 ];do  判断i是否小于等于254

  5      ping -c 1 192.168.1.$i 2>&1 >/dev/null

  6      if [ $? = 0 ];then

  7              echo "host 192.168.1.$i is alive"

  8      else

  9              echo "host 192.168.1.$i is down"

10      fi

11      let i++

12 done

你可能感兴趣的:(2018-11-22)