目录
为什么icmp协议封装好数据后,还要加一个ip包头,再使用ip协议再次进行封装,也就是在网络层封装了2次?
[1、echo request 请求包(类型 为 8)](#1、echo request 请求包(类型 为 8))
[2、echo reply 响应包(类型 为 0)](#2、echo reply 响应包(类型 为 0))
[2.修改配置文件 ifcfg-ens33](#2.修改配置文件 ifcfg-ens33)
[dhcp动态获得的ip地址 (动态IP地址)](#dhcp动态获得的ip地址 (动态IP地址))
arp协议
将ip解析到对应的mac地址
arp病毒\欺骗
离间计 和 三人成虎的故事
arp病毒的运行原理
欺骗目标:ARP病毒利用ARP协议的缺陷(arp缓存表) ,伪造或篡改ARP响应包,将自己的MAC地址误导为目标设备的MAC地址,从而欺骗其他设备。 就是让你的arp缓存表里的网关的mac地址发生变化,使用它告诉你的新的mac地址
向局域网中的其他设备发送虚假的ARP响应包,将合法的IP地址与错误的MAC地址关联起来。这样一来,通信数据将被发送到错误的设备,导致通信中断或被攻击者截获。
arp病毒产生的后果:
arp病毒会导致整个局域网上不了网
让局域网里的机器找不到正确的网关对应的mac地址
解决方法:
安装防火墙(火绒防火墙、电脑管家)
静态绑定正确的网关的mac地址:arp -s命令
ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。(探路)
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。
ICMP协议属于网络层协议
控制消息:网络通不通、主机是否可达、路由是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
报文:某种格式的数据 --》 报告某些信息的文字
ICMP用在哪里?
icmp协议就是一个探路的协议,用来在主机和路由器之间 ,主机和主机之间 ,探测网络是否畅通,数据传输前需要测试时使用(ping 命令使用的就是ICMP协议)
ICMP协议数据的封装过程
(icmp头部占8个字节)
为什么icmp协议封装好数据后,还要加一个ip包头,再使用ip协议再次进行封装,也就是在网络层封装了2次?
答案: 因为icmp协议里没有写明从哪里来,到哪里去,但是ip协议的包头有源ip和目的ip
icmp协议寄生在ip协议里--》寄人篱下
2种类型的ICMP数据包
1、echo request 请求包(类型 为 8)
2、echo reply 响应包(类型 为 0)
ping命令
用于测试网络的速度和稳定性
ping命令的选项
0% packet loss --》 丢包率
time=26.5 ms --》响应的时间
-s --》 数据包大小
(
ping之死
icmp协议携带的数据比较多 ---》别人送多少数据过来,你要回复多少数据。很多人同时发送数据过来,导致你的服务器忙不过来,消耗了你的服务器的cpu,内存,网络带宽资源
)
-c --》 发送数据包的数量
-i --》 时间间隔 (默认1秒,可以设置为0.1秒,很快就完成了)
-w --》 期限 总共只有1秒
-W --》超时时间(ping不通的时候,最多等待多久)(如:每个ping包有1秒的时间,如果有5个ping包,就有5秒的时间)
防火墙:禁止icmp的请求报文 --》 可以禁止ping
[root@node1 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables 是linux里的防火墙-A INPUT 在INPUT位置追加一条规则 append
-p icmp 指定协议是icmp
--icmp-type 8 指定icmp协议的类型 8 表示请求报文
-j DROP 采取的动作是丢弃
[root@node1 ~]# iptables -L 查看防火墙
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- anywhere anywhere icmp echo-request
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@node1 ~]#
[root@node1 ~]# iptables -F 清除防火墙规则 flush
[root@node1 ~]# iptables -L 查看防火墙规则 list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@node1 ~]#
如果ping一台服务器ping不通,可能有哪些原因?
1、服务器挂了
2、开启了防火墙( iptables -A INPUT -p icmp --icmp-type 8 -j DROP)
3、运营商(中间线路段了、宽带被剪了、被老鼠咬断了)
4、家里的路由器的问题
解决方法:
1、一路ping过去
2、先检查网络是否联通
3、检查ip地址
4、dns
5、网关
路由追踪(tracepath)
追踪命令:(知道数据传输的路径)
tracepath www.baidu.com #linux里面使用
C:\Users\Administrator>tracert 114.114.114.114 #Windows里面使用
初始的ttl为1
利用了路由器对ip包进行检查,如果ttl值为0不进行转发,同时给一个回复,这样我们的电脑就知道了路由器的ip地址
[root@master ~]# tracepath www.baidu.com
1?: [LOCALHOST] pmtu 1500
1: gateway 2.887ms
1: gateway 5.486ms
2: gateway 2.139ms pmtu 1492
2: 100.74.32.1 82.594ms
3: no reply
4: 61.137.16.205 31.550ms
5: no reply
6: 113.96.5.66 28.942ms
7: 121.14.14.162 90.946ms
8: 14.29.117.130 471.459ms
9: no reply
10: no reply
11: no reply
12: no reply
Linux手工配置ip地址
步骤:
1.进入网卡配置文件的目录
[root@fengdeyong ~]# cd /etc/sysconfig/network-scripts/ 目录的路径
[root@fengdeyong network-scripts]# ls 查看内容
ifcfg-ens33
[root@fengdeyong network-scripts]#
2.修改配置文件 ifcfg-ens33
interface 接口
config 配置
ens33 是具体的接口的名字ifcfg-lo 环回接口的配置 loopback
dhcp动态获得的ip地址 (动态IP地址)
[root@fengdeyong network-scripts]# vim ifcfg-ens33
BOOTPROTO="dhcp" none或者static 表示静态配置ip 。dhcp表示动态获得ip地址,通过dhcp服务器的分配。
NAME="ens33" 网络连接的名字
UUID="3731ce87-93c1-4a78-8b53-250305312616" 网络连接的唯一标识,一个硬件会对应一个编号,这个编号自动生成,不需要修改
DEVICE="ens33" 设备名字
ONBOOT="yes" yes表示开机的时候激活这个网络连接 no 禁用这个网络连接
centos8里
当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,也会生效
centos7里
当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,不会生效
静态(桥接模式)获得的ip地址(静态IP地址)
[root@fengdeyong network-scripts]# vim ifcfg-ens33
BOOTPROTO="none" none或者static 表示静态配置ip 。dhcp表示动态获得ip地址,通过dhcp服务器的分配。
NAME="ens33" 网络连接的名字
UUID="12b5a8c4-d319-4d70-ae1f-9d1fff3b2660" 网络连接的唯一标识,一个硬件会对应一个编号,这个编号自动生成,不需要修改
DEVICE="ens33" 设备名字
ONBOOT="yes" yes表示开机的时候激活这个网络连接 no 禁用这个网络连接
IPADDR=192.168.0.203 ip地址 ip address
PREFIX=24 子网掩码的长度为24 相当于 255.255.255.0
#NETMASK=255.255.255.0 子网掩码为255.255.255.0
GATEWAY=192.168.0.1 默认网关 gate way
DNS1=114.114.114.114 首选dns服务器
DNS2=192.168.0.1 备用dns服务器
linux的服务器里ip基本上都是固定的,静态指定的
3.重新启动服务,让新的配置生效
centos8里
ifup ens33
centos7里
service network restart 刷新网络服务
[root@node1 network-scripts]# service network restart
Restarting network (via systemctl): [ 确定 ]
[root@node1 network-scripts]#
[root@fengdeyong network-scripts]# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
[root@fengdeyong network-scripts]#
centos8里
当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,也会生效
centos7里
当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,不会生效
4,使用命令查看效果
ip add 查看IP地址和MAC地址
ip route 查看网关地址(路由器LAN口地址)
cat /etc/resolv.conf 查看dns服务器地址
[root@node1 network-scripts]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:11:3c:28 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.125/24 brd 192.168.2.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe11:3c28/64 scope link
valid_lft forever preferred_lft forever
[root@node1 network-scripts]# ip route
default via 192.168.2.1 dev ens33 proto static metric 100
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.125 metric 100
[root@node1 network-scripts]# cat /etc/resolv.conf 查看dns服务器地址
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 192.168.0.1
[root@node1 network-scripts]#
resolve 解析 --》域名解析 --》dns服务器 帮助我们去解析一个域名对应的ip地址
config 配置
ifcfg-ens33 和/etc/resolv.conf 之间关系
ifcfg-ens33 文件里的DNS1和DNS2会决定resolv.conf里的nameserver的值
/etc/resolv.conf 是我们在域名查询的时候,去访问的dns服务器的文件 --》真正有用的文件是resolv.conf
模拟出错:
1.ip地址有问题
2.网关出错
[root@node1 network-scripts]# ping 14.119.104.189
connect: 网络不可达
[root@node1 network-scripts]#
3.dns服务器出错
[root@node1 network-scripts]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
[root@node1 network-scripts]#
[root@node1 network-scripts]# ping 14.119.104.189
PING 14.119.104.189 (14.119.104.189) 56(84) bytes of data.
64 bytes from 14.119.104.189: icmp_seq=1 ttl=54 time=32.2 ms
64 bytes from 14.119.104.189: icmp_seq=2 ttl=54 time=26.3 ms
64 bytes from 14.119.104.189: icmp_seq=3 ttl=54 time=26.1 ms
^C
--- 14.119.104.189 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 26.119/28.221/32.202/2.822 ms
[root@node1 network-scripts]#