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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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相当于其加强版,颜色显示不同参数,且支持鼠标操作,监控起来比较方便,但是需要手动安装。
这是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