1.必备基础:网络7层模型,arp,icmp,routing,ip,vlan等基础网络原理
数据包封装可看看这篇:https://blog.csdn.net/qq_37674086/article/details/107735726
辅助知识点
1.是否属于同网段计算
分别用本地址和目标地址与掩码按位与得到结果相比较,相等则同网段,不等则反之。
copy别人的举例:
IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?
先将这些转换成二进制
188.188.0.111 10111100.10111100.00000000.01101111
188.188.5.222 10111100.10111100.00000101.11011010
255.255.254.0 11111111.11111111.11111110.00000000
分别AND,得
10111100.10111100.00000000.00000000
10111100.10111100.00000100.00000000
网络标识不一样,即不在同一网段。
2.arp请求过程与arp表,arp报文
请求报文:
特点:广播,target mac address为全0,标志字段为request
回复报文:
特点:单播,标志字段reply
arp表:
3.路由表,动态路由协议
动态路由协议分很多种:rip,ospf,bgp,isis等,不同集群规模特点选用不同的协议
大致原理:路由进程之间相互通信并按协议规则组网,相互之间同步路由信息从而达到整个路由集群路由信息同步
4.静态路由,默认路由,动态路由
静态路由:手工配置的路由表项
动态路由:通过路由协议生成的路由表项
默认路由:是一种特殊的静态路由,当路由表中与数据包目的地址没有匹配的表项时,数据包将根据默认路由条目进行转发。默认路由在某些时候是非常有效的,例如在末梢网络中,默认路由可以大大简化路由器的配置,减轻网络管理员的工作负担。
5.网关的定义与作用
网关是一个局域网的出口,由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!
常规例子:
1.家里无线路由器组成的无线局域网的网关就是你手机能访问到路由器的地址,与局域网内部的ip在同一网段。
2.三层交换机的某个vlan的网关就是这个vlan上配置的三层接口地址,如vlanif ,interface 等配置的地址。
2.二三层转发流程:
2.1 二层转发:
pc1 ping pc2流程:
2.1.1 pc1根据pc2的ip与自己的掩码计算是否属于同一子网===》属于同一子网走二层,不属于走三层
2.1.2 属于:pc1查询本机arp表是否含有pc2对应的mac ==>无对应mac发送arp;有则直接发送icmp
2.1.3 无对应mac: 发送arp请求(目的mac为全F,请求ip为pc2)
2.1.4 pc2收到arp广播:回复arp应答给pc1
2.1.5: pc1收到应答则更新arp表,并发送icmp请求报文给pc2,pc2收到请求报文则回复给pc1 (ping 成功)
2.2 三层转发:
配置:pc1上配置网关为192.168.1.2/24;pc2上配置网关192.168.2.2/24
网关配置后会生成默认路由,不配置网关则需要配置静态路由
pc1 ping pc2流程:
2.2.1 pc1 ping pc2根据自己掩码与对方ip计算不属于同网段则走三层转发;
2.2.2 发送icmp请求给网关1 (假设arp表已经有自己网关,没有则同上面二层转发步骤获得),目的mac为网关1mac,询问ip为pc2;
2.2.3 网关1收到icmp请求后,查看路由表发现有匹配直连路由192.168.2.*网段,再查arp表没有相关信息;
2.2.4 网关1将icmp请求发送给网关2请求地址为pc2(目的mac为网关2mac);
2.2.5 网关2收到请求后发现是自己的mac且请求ip为同网段,则在局域网内vlan2广播ARP请求pc2mac
2.2.6 网关2请求到pc2Mac后发送icmp请求给pc2 ,pc2回复给网关2(网关2更新自己arp表)
2.2.7 网关2收到pc2回复的icmp后,回复icmp给网关1,网关1回复给pc1 (跨vlan请求完成)