欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

04_计算机网络笔记-ARP协议-ICMP协议-路由-三层交换-TTL

程序员文章站 2022-07-10 20:15:00
...


个人博客
https://blog.csdn.net/cPen_web

子网划分

  • ip地址由32位二进制组成

    区分网络段和主机段

    网络段用来标识是否在同一个网段,同一个网段对的主机ip,它们的网络段是一致的
    
  • 掩码就是用来区分网络段

    高位为网络段,低位为主机段
    网络段二进制掩码标识全为1,主机段二进制掩码标识全为0

  • A、B、C三类地址

    A类地址,网络位8位,主机位24位,掩码就是255.0.0.0
    A类私有:10.0.0.0/8
    B类地址,网络位16位,主机位16位,掩码就是255.255.0.0
    B类私有:172.16-31/16网段
    C类地址,网络为24位,主机位8位,掩码就是255.255.255.0
    C类私有:192.168.0~255/24

    A、B、C类地址称为 有类地址,其他的进行子网划分(192.168.1.128/25)称为无类地址。
    
  • 子网划分就是网络位向主机位借位,或者是主机位向网络位借位,已达到合理分配ip地址的目的

ARP协议

  • Address Resolution Protocol 地址解析协议
  • 地址解析协议 ip --> mac地址
  • 局域网内使用mac地址进行包的转发
  ip地址通信流程:
 	1、源ip与目的ip地址和当前主机掩码进行“与”运算
	2、“与”运算的结果判断是否在同一个网段,如果源地址和目的地址在不同网段,就去查找本地路由表,进行路由转发
	3、如果源地址与目的地址在同一网段,先查找本地arp表,存在相应ip地址的映射就进行转发。不存在相应地址映射关系,就进行arp广播。
  	4、收到广播的其他机器,如果是目标机器,就会单播回复他的mac地址,并且将源ip的mac地址保存在本地arp表。
arp二层  目的mac地址是 ff-ff-ff-ff-ff-ff
静态的arp条目比动态的优先级高。静态绑定的好处是 防范arp病毒

示例:arp静态绑定

[[email protected]_C ~]# arp -s 192.168.0.1 3c:f5:cc:49:16:04
[[email protected]_C ~]# arp -a								#注:查看arp缓存表

arp协议二层封装和3层封装

1.arp request
	二层:源mac是自己的mac  	目的mac是ff:ff:ff:ff:ff:ff
	三层:源ip是自己的ip  		目的ip是对方的ip
2.arp response

路由

跨越从源主机到目标主机的一个互联网络来转发数据包 的过程

路由表里的路由类型

	1.直连路由  --》优先级最高  --》接口配置上ip地址,**
	2.静态路由  --》优先级仅次于直连路由  --》需要人去配置、单向
	3.默认路由 --》属于特殊的静态路由--》优先级最低--》需要配置---》添加默认网关其实就是配置默认路由
	4.动态路由  --》优先级高于默认路由低于静态路由--》不需要手工配置,会自动获得。
		linux---》zebra--》osfp
		linux --> 安装zebra --> 打开osfp协议  这台Linux服务器会支持动态路由

直连路由
网口直接连接,直接连接的局域网
静态路由
手动配置,单向 缺乏灵活性
动态路由
路由之间相互学习,自动发现,无需手动配置
默认路由
优先级最低

[[email protected]_C ~]# ip r add 192.168.2.0/26 via 192.168.1.8	#注:配置静态路由

[[email protected]_C ~]# ip r										#注:查看路由表(服务器上)
default via 192.168.1.1 dev ens33 proto dhcp metric 100 	#注:默认路由
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.6 metric 100 	#注:直连路由
192.168.2.0/26 via 192.168.1.8 dev ens37  					#注:静态路由

永久添加静态路由

#注:把添加路由的命令写在启动脚本下
[[email protected]_A network-scripts]# pwd
/etc/sysconfig/network-scripts
[[email protected]_A network-scripts]# ls
…… ifdown-routes ……
[[email protected]_C ~]# ip route add default via 192.168.0.1 dev ens33	#注:添加默认路由
[[email protected]_C ~]# ip route										#注:查看路由表

3层、4层、7层 哪个负载均衡效果好?

	答:3层负载均衡效果好,因为解封装只要解封到第3层(少做事,效率高)
[[email protected]_A ~]# ip route				#注:ip路由表
default via 192.168.1.1 dev ens33 proto dhcp metric 100 		#注:via 192.168.1.1 下一跳
default via 192.168.31.2 dev ens37 proto dhcp metric 101 		#注:metric 度量值 越小优先级越高
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.5 metric 100 	#注:直连路由
192.168.31.0/24 dev ens37 proto kernel scope link src 192.168.31.158 metric 101 
#注:scope 范围,在整个Linux内核里面都是生效的

什么设备里有路由表?什么时候路由表会发生变化?

	答:路由器,三层交换机,电脑,手机;有系统的 能上网的设备。
	linux服务器
	路由器
		改ip地址成别的网段 --> 直连路由
		修改网关 --> 默认路由
		添加/删除静态路由
		重启网络相关的服务 --> 会刷新路由表
		重启路由器(或断电)

什么设备里mac地址表?什么时候mac地址表会发生变化?

	答:交换机
	带有vlan标志的只有交换机能识别
	答:增加和删除设备
		创建vlan,将接口加入到vlan
		其他交换机上增加新设备
		arp广播
		重新启动

示例:添加静态路由

[[email protected]_A network-scripts]# ip route add 192.168.100.0/24 via 192.168.0.23 dev ens33
#注:重新**网卡,静态路由会消失,路由表会刷新

路由

跨越从源主机到目标主机的一个互联网络来转发数据包的过程
路由表里  网段是目标网段,接口是自己的接口

示例:查看路由表

Windows里查看路由表
	C:\Users\15334>route print
Linux里查看路由表
	[[email protected]_A network-scripts]# ip route
动态路由自动学习,适用于网络规模比较大的场景
静态路由 适用于网络规模比较小的场景

ICMP协议

互联网控制消息协议(Internet Control Message Protocol,简称:ICMP)

ICMP协议  通过IP数据包封装的
作用:错误侦测与回馈机制
我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0)
ICMP它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息
ICMP它属于网络层协议,主要用于在主机与路由器之间传递控制信息
ping命令用了icmp协议,网络层协议;icmp协议又嵌入ip协议(icmp协议 借助ip协议)
icmp协议  别人问路 B机器必须有回复
icmp协议封装的头部信息占用8个字节,在网络层的上层协议对应的值是1
ip报文里:6 tcp,17 udp,icmp是1  (上层协议)

ICMP类型

TYPE CODE Description Query Error
8 0 Echo request——回显请求(Ping请求) x
0 0 Echo Reply——回显应答(Ping应答) x
3 0 Network Unreachable——网络不可达 x
3 1 Host Unreachable——主机不可达 x

ICMP百度百科
https://baike.baidu.com/item/ICMP/572452?fr=aladdin

ping命令

选项
-c 发包的数量 count [-c count]
-i 时间间隔,每个包之间的时间间隔 [-i interval]
-I 从哪个口出去 [-I interface]
-w 期限 [-w deadline]
-W 只等你这么久 [-W timeout]
-s 发送包的大小 [-s packetsize]
	发的包大,回复的包也很大	( ping之死 )

丢包率:ping过程中丢包率太高,说明网络不稳定

[[email protected]_C ~]# ping www.baidu.com -s 100
……
--- www.a.shifen.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9018ms
rtt min/avg/max/mdev = 7.605/8.322/9.926/0.613 ms
#注:ping命令可以判定网络质量

示例:启用防火墙,将ping命令请求包扔掉,让别人ping不通

[[email protected]_A ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP		#注:添加 -A
[[email protected]_A ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP		#注:插入 -I

hostA 192.168.0.163/24 PING hostB 192.168.10.1

1.hostA 会拿自己的ip地址和子网掩码进行与运算得到网段号192.168.0.0/24
2.hostA 会拿hostB的ip地址和自己的子网掩码进行与运算得到网段号192.168.10.0/24
3.hostA 会比较这2个网段号是否一样,如果一样,hostA 就认为hostB和它是一个网段的,就会查找路由表,因为路由表里直连路由的优先级最高,走直连路由。封装帧,需要hostB的mac地址,如果没有hostB的mac地址,会发arp广播包。交换机会转发,然后所有的局域网里的电脑都收到arp广播包。HOSTB会回复hostA,这样hostA就有hostB的mac地址了
4.hostA 会比较这2个网段号是否一样,如果不一样,hostA 就认为hostB和它不是一个网段的,就会查找路由表,没有找到,默认就会走默认路由。然后就会查找网关ip地址对应的mac地址,因为封装帧,需要网关的mac地址,如果没有网关的mac地址,会发arp广播包。交换机会转发,然后所有的局域网里的电脑都收到arp广播包。网关会回复hostA,这样hostA就有网关的mac地址了

计算网段号--》查找路由表--》查arp缓存--》发arp广播

Windows里想要一直发包 -t (ping命令)

C:\Users\15334>ping 192.168.1.3 -t

TTL

Time To Live 生命周期,生命时间

[[email protected]_A ~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=58 time=12.1 ms

示例:追踪,查看你的电脑到百度经过多少路由器(下一跳)

[[email protected]_A ~]# tracepath www.baidu.com
#注:巧妙用到ping命令(icmp协议)。trace 追踪
#注:tracepath6  ipv6

示例:追踪

[[email protected]_A ~]# yum install traceroute -y
[[email protected]_A ~]# traceroute 114.114.114.114
#注:traceroute6  ipv6
上层协议  TCP是6,UDP是17,icmp是1

三层交换

三层交换:具有路由功能的交换机

三层交换机 = 二层交换 + 三层转发
三层交换作用于:局域网内,不同vlan之间的通信
三层交换核心:一次路由,多次交换

为什么需要三层交换机?

好处和优势:
	路由器接口一般都比较少,交换机的口多,可以接很多网段 --> 性价比高
	路由转发的时候,速度快 --> 一次路由多次交换
	三层交换价格不高
无线路由器就是一个三层交换机
	有路由功能
	LAN口
路由器的接口,可以配置ip地址
交换机的接口不需要配置ip地址

什么时候需要配置默认路由?

	答:配置网关就是配置默认路由
核心汇聚层 路由器 可能会非常忙碌,所以此类核心交换 一般用三层交换机(减轻核心汇聚时 计算资源的消耗)

为什么不在外网用?

	答:因为只是稍微有点转发功能,其实还是交换机
		路由器会有各种计算,线路消耗,选择最优的路;三层交换机不具备这种功能

三层交换机与路由器
https://zhuanlan.zhihu.com/p/64455461

交换机的Access口与Trunk口
https://www.cnblogs.com/boshen-hzb/p/9900814.html

OSPF协议

Open Shortest Path First 开放式最短路径优先协议

	动态路由协议 - 不需要手动添加路由,由动态路由协议协商,自己发现。

配置OSPF

1、运行ospf (路由器上)
2、设置router-id
3、宣告网络
#注:邻接关系  信息交换
#注:同网段  同局域网  邻接关系

OSPF区域
04_计算机网络笔记-ARP协议-ICMP协议-路由-三层交换-TTL

区域基本上area0就可以了;特大型网络划分区域(中心核心区域 叫做骨干区域 area0;area1、area2非骨干区域)