04_计算机网络笔记-ARP协议-ICMP协议-路由-三层交换-TTL
个人博客
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/24A、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区域
区域基本上area0就可以了;特大型网络划分区域(中心核心区域 叫做骨干区域 area0;area1、area2非骨干区域)