网络相关知识详解

一、网络硬件层基础知识

1.网络通讯基本原理

1)主机之间需要有传输介质
2)主机上必须有网卡设备
	可以将二进制信息转换为高低电压,信号调制过程
	可以将高低电压转化为二进制信息,信号的解调过程
3)多台主机需要协商网络速率
	100Mbps ~ 100Mbit per second ~ 每秒钟传输100M bit的信息 0 1
	1M ~ 1000k  1000000b
	1k ~ 1000b
	
	常见问题:购买一个100M网路哦线路,但是用迅雷下载软件的时候远远到达不了100M
	100Mb 网络的数据单位 bit	1bit=1/8byte 100/8=12.5MB
	100MB 磁盘的数据单位 Byte	1byte=8bit

2.网络基础硬件介绍

交换机:再一个网络中实现多态主机之间通讯
	一台交换机所连接的所有主机构成的网络,成为局域网

实现通讯:
1)主机上要有相应的mac地址(物理地址)有12位16进制数组成 0-9 A B C D E F
2)利用交换机进行通讯,优势需要借助广播方能进行通讯
	广播的产生有时会影响主机性能
补充:通讯的过程一定是有去有回的

路由器:实现不同局域网主机之间的通讯
实现通讯:
1)主机上要有相应的IP地址(逻辑地址) 用十进制表示 192.168.10.1
	IP地址的组成:网络信息(局域网标识)+主机地址信息
	
2)需要借助路由器中的路由表实现通讯
	网络信息(局域网标识信息) 接口信息	R1
		01		eth0
		02		eth1
		04		eth2		手动配置
	网络信息(局域网标识信息) 接口信息	R2
		02		eth0
		03		eth1
		04		eth3	手动配置
		01		eth2	手动配置
	网络信息 (局域网标识信息) 接口信息	R3
		04		eth0
		03		eth1
		01		eth2		手动配置
	路由表的信息是如何生成的?
	1)利用直连网络环境自动生成的
	2)利用手动配置方式	(静态路由配置)
	3)利用路由协议动态生成(动态路由配置)

	网关:一个主机想访问其它网络主机的必经之路
	路由器的接口:网关地址	

3.静态路由配置方法

静态路由配置方法:
网络环境规划:
a.两台主机
主机01	
    192.168.1.1	== 01.01
    192.168.1.254
主机02
    192.168.4.1  == 04.01
    192.168.4.254
b.两台交换机
c.三台路由器

第一个历程:路由器配置(接口地址配置)
R1
Router> en 						命令提示符 用户模式提示符
Router#	conf t					特权模式提示符  可以进行系统配置查看
Router(config)#	interface g0/0	  配置模式提示符
Router(config)#					接口模式提示符
g0/0接口配置
	hostname R1
	ip addr 192.168.1.254 255.255.255.0
no shutdown # 激活网卡
g0/1接口配置
	ip addr 192.168.1.2 255.255.255.0
no shutdown # 激活网卡
检查确认:
ctrl+z 快速返回到特权模式
show ip interface brief  --只显示ip地址信息
Router# show ip int br
Interface              IP-Address      OK? Method Status                Protocol 
GigabitEthernet0/0     192.168.1.254   YES manual up                    up

R2
R2#show ip int br
Interface              IP-Address      OK? Method Status                Protocol 
GigabitEthernet0/0     192.168.2.2     YES manual up                    up 
GigabitEthernet0/1     192.168.3.1     YES manual up                    down 

R3
R3#show ip int br
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/0
L       192.168.3.2/32 is directly connected, GigabitEthernet0/0
     192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.4.0/24 is directly connected, GigabitEthernet0/1
L       192.168.4.254/32 is directly connected, GigabitEthernet0/1

路由配置(不懂的话,可以网上查询:思科静态路由配置)
ip route 去往网络地址信息  网络掩码  去往目标的下一跳接口地址 
ip route 192.168.4.0 255.255.255.0 192.168.2.2

R1#show ip route
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, GigabitEthernet0/0
L       192.168.1.254/32 is directly connected, GigabitEthernet0/0
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/1
L       192.168.2.1/32 is directly connected, GigabitEthernet0/1

S    192.168.4.0/24 [1/0] via 192.168.2.2


R2路由表信息
R2#show ip route
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/0
L       192.168.2.2/32 is directly connected, GigabitEthernet0/0
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/1
L       192.168.3.1/32 is directly connected, GigabitEthernet0/1

路由配置(不懂的话,可以网上查询:思科静态路由配置)
ip route 去往网络地址信息  网络掩码  去往目标的下一跳接口地址 
ip route 192.168.4.0 255.255.255.0 192.168.3.2

R2#show ip route
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/0
L       192.168.2.2/32 is directly connected, GigabitEthernet0/0
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/1
L       192.168.3.1/32 is directly connected, GigabitEthernet0/1
S    192.168.4.0/24 [1/0] via 192.168.3.2

R3
R3#show ip route
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/0
L       192.168.3.2/32 is directly connected, GigabitEthernet0/0
     192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.4.0/24 is directly connected, GigabitEthernet0/1
L       192.168.4.254/32 is directly connected, GigabitEthernet0/1

路由配置(不懂的话,可以网上查询:思科静态路由配置) # 从192.168.1.1-->192.168.4.1,现在能到达4.1主机了,但是还不能回去,继续配置R3
ip route 去往网络地址信息  网络掩码  去往目标的下一跳接口地址 
ip route 192.168.1.0 255.255.255.0 192.168.3.1

R3#show ip route
S    192.168.1.0/24 [1/0] via 192.168.3.1
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/0
L       192.168.3.2/32 is directly connected, GigabitEthernet0/0
     192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.4.0/24 is directly connected, GigabitEthernet0/1
L       192.168.4.254/32 is directly connected, GigabitEthernet0/1

R2 路由配置
ip route 去往网络地址信息  网络掩码  去往目标的下一跳接口地址 
ip route 192.168.1.0 255.255.255.0 192.168.2.1

R2#show ip route
S    192.168.1.0/24 [1/0] via 192.168.2.1
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/0
L       192.168.2.2/32 is directly connected, GigabitEthernet0/0
     192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.3.0/24 is directly connected, GigabitEthernet0/1
L       192.168.3.1/32 is directly connected, GigabitEthernet0/1
S    192.168.4.0/24 [1/0] via 192.168.3.2

R1 #show ip route  有去往1.0的网络
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, GigabitEthernet0/0
L       192.168.1.254/32 is directly connected, GigabitEthernet0/0
     192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.2.0/24 is directly connected, GigabitEthernet0/1
L       192.168.2.1/32 is directly connected, GigabitEthernet0/1
S    192.168.4.0/24 [1/0] via 192.168.2.2

使用思科模拟器模拟1.0网络到4.0网络:

配置好路由的结果:

删除静态路由方法

R1取消静态路由
no ip route 192.168.4.0 255.255.255.0 192.168.2.2
R2取消静态路由
no ip route 192.168.4.0 255.255.255.0 192.168.3.2
no ip route 192.168.1.0 255.255.255.0 192.168.2.1
R3取消静态路由
no ip route 192.168.1.0 255.255.255.0 192.168.3.1

4.动态路由配置方法

默认R1-R3路由表情况:
R1路由表: 张三  游戏 厨艺 销售
192.168.1.0  g0/0
192.168.2.0  g0/1  R1G0/1 -- R2G0/0

192.168.3.0  g0/1
192.168.4.0  g0/1

R2路由表:李四  厨艺  销售  游戏  
192.168.2.0  g0/0  R1G0/1 -- R2G0/0
192.168.3.0  g0/1  R3G0/0 -- R2G0/1

192.168.1.0  g0/0
192.168.4.0  g0/1

R3路由表:王五  销售  游戏  厨艺
192.168.3.0  g0/0  R3G0/0 -- R2G0/1
192.168.4.0  g0/1

192.168.2.0  g0/0 
192.168.1.0  g0/0

实现多个路由器路由表信息一致的过程:路由收敛过程
动态路由协议如何配置:
RIP 思科私有(EIGRP) OSPF IS-IS BGP
R1动态路由配置
router rip
network 192.168.1.0   --宣告过程
network 192.168.2.0

学习信息
R    192.168.3.0/24 [120/1] via 192.168.2.2, 00:00:17, GigabitEthernet0/1
R    192.168.4.0/24 [120/2] via 192.168.2.2, 00:00:17, GigabitEthernet0/1

R2动态路由配置
router rip
network 192.168.2.0   --宣告过程
network 192.168.3.0

学习信息
R    192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:09, GigabitEthernet0/0
R    192.168.4.0/24 [120/1] via 192.168.3.2, 00:00:19, GigabitEthernet0/1

R3动态路由配置
router rip
network 192.168.3.0   --宣告过程
network 192.168.4.0

学习信息
R    192.168.1.0/24 [120/2] via 192.168.3.1, 00:00:07, GigabitEthernet0/0
R    192.168.2.0/24 [120/1] via 192.168.3.1, 00:00:07, GigabitEthernet0/0

5.网络架构设计方法(网络拓扑)

三个层次规划网络拓扑
核心层:路由器(网关接口) 实现和外网通讯 冗余能力(主和备);核心层的功能主要是实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。

汇聚层:交换机(三层交换机) 冗余能力  策略控制能力;是楼群或小区的信息汇聚点,是连接接入层和核心层网络设备,为接入层提供数据的汇聚/传输/分发处理。汇聚层为接入层提供基于策略的连接,如地址合并,协议过滤,路由服务,认证管理等。通过网段划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层。汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。
 
接入层:交换机(二层交换机) 通常指网络中直接面向用户连接或访问的部分。接入层目的是允许终端用户连接到网络,因此接入层交换机具有低层本和高端密度特性。

二、TCP/IP协议层基础知识

1.TCP协议原理

1)TCP三次握手

# TCP三次握手过程:
1.第一次握手:
	发送syn请求建立连接控制字段,发送seq序列号信息(0),第一个数据包的序列号默认为0;
2.第二次握手:
	发送syn请求建立连接控制字段,同时还会发送ack确认控制字段
	发送seq序列号信息也为(0),还会发送ACK确认号(上一个seq序列号+1)信息(对上一个数据序列号信息进行确认)
3.第三次握手:
	发送ack确认控制字段,发送seq序列号信息(1),发送ack确认号(1)

2)TCP四次挥手

3)tcp/ip协议:tcp3次握手,为什么不是2次和4次?

# tcp四次握手的缺陷
1.1 A发送同步信号SYN + A's Initial sequence number
1.2 B确认收到A的同步信号,并记录A'sISN到本地,命名B's ACK sequencenumber
1.3 B发送同步信号 SYN + B's Initial sequence number
1.4 A确认收到B的同步信号,并记录B's ISN到本地,命名 A's ACK sequence number

很显然,1.2和1.3这两个不受可以合并成一个!
# tcp二次握手的缺陷
2.1 A 发送同步信号SYN + A's Initial sequence number
2.2 B发送同步信号SYN + B's Initial sequence number + B's ACK sequence number

在这里,A和B就A的初始序列号达成了一致,但是B无法知道A是否已经接收到自己的同步信号。
# tcp二次握手的缺陷
对于二次握手,服务器根本无法验证客户端真伪,对每个进来的连接都得分配连接资源。
(注:tcp二次握手下不会区分半连接队列和连接队列,此处统称连接资源)
伪造的海量的SYN报文,很容易欺骗服务器,导致服务器开辟出大量的连接资源,很快导致服务器端的连接资源耗尽。等到合法的连接申请到达的时候,服务器没有多余的资源,导致无法提供服务,这就是拒绝服务攻击(DDos)。

即便是在tcp的三次握手中都存在着极大的DDos攻击风险,可以预见到,如果采用tcp二次握手,这种封信啊会更大,而且根本无法解决这个问题。而三次握手,则可以通过第三次握手增加额外的验证机制来解决这个问题。

ssh连接远程主机抓包的三次握手和四次挥手:

三次握手:

四次挥手:

# TCP 四次挥手过程:
1)第一次挥手:
	发送fin请求断开连接控制字段
2)第二次挥手:
	发送ack确认控制字段
3)第三次挥手:
	发送fin请求断开连接字段,发送ack确认字段
4)第四次挥手:
	发送ack控制字段

2.网络状态转换(11种状态集)

# TCP 的十一种状态集
TCP三次握手:5种状态
00:最开始两台主机都处于关闭状态 closed
01:服务端将相应服务进行开启  closed---listen
02:客户端向服务端发出连接请求  closed---syn_sent
03:服务端接收到连接请求,并进行确认 listen---syn_rcvd
04:客户端再次进行确认  syn_sent---established
05:服务端接收到确认信息  syn_rcvd--established

为什么是三次握手?当客户端发送建立连接请求时,服务端已经处于listen状态,直接就发送ack给客户端,不用向会话层请示(就像我们在超市买东西的时候,售卖员会说你先等等,我要请示一下领导,要领导批准了你才能买?会这样吗?);

# TCP 四次挥手:
01:客户端发送请求断开连接信息  established---fin_wait1
02:服务端接收断开连接请求,并进行确认 established---close_wait
03:客户端接收到了确认信息  fin_wait1---fin_wait2
04:服务端发送fin字段  close_wait--last_ack
05:客户端接收到请求断开连接信息,发送确认 fin_wait2---time_wait
06:服务端接收到确认信息 lask_ack---closed
07:客户端等待一段时间  time_wait---closed

如下图的右半部分,有可能会出现三次挥手的过程,当客户端发送断开请求之后没有收到服务端发来的ack确认,而之后收到了服务端的fin请求,客户端再发送ack给服务端进行断开的过程,这时只有三次挥手,也能断开;

为什么是四次挥手?

客户端和服务端建立的会话是在OSI七层协议的会话层建立的,有一个向上层请示(请示会话层客户端要断开这个事)的过程。(在超市买到假货,你说你要退货退款,找到售货员申请,售货员能直接给你退钱吗?是不是也要找上级领导审批,确认,走退款流程,你才能退货退款?)

统计TCP连接状态的常见几种方式:

# 查看网络连接数:
netstat -an |grep xx |wc -l # 查看某个/特定ip的连接数
netstat -an |grep TIME_WAIT|wc -l    查看连接数等待time_wait状态连接数
netstat -an |grep ESTABLISHED |wc -l    查看建立稳定连接数量

# 查看不同状态的连接数数量
netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'

# 查看每个ip跟服务器建立的连接数
netstat -nat|grep "tcp"|awk ' {print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
(PS:正则解析:显示第5列,-F : 以:分割,显示列,sort 排序,uniq -c统计排序过程中的重复行,sort -rn 按纯数字进行逆序排序)

# 查看每个ip建立的ESTABLISHED/TIME_OUT状态的连接数
netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn

3.不同网段主机通信过程

4..从TCP/IP模型和OSI模型角度解释通信过程

# TCP/IP协议族传输数据方式:
TCP将HTTP报文划分为要发送目的客户端的较小片段,称之为数据段;IP负责从TCP获取格式化的数据段封装成数据包、分配相应的地址并选择通往目的主机的最佳路径。

# 通信过程:
a.从TCP/IP模型角度解释:
	1.在发送方源终端设备的应用层创建数据;
	2.数据在源终端设备中沿协议族向下传递时对数据分段封装;
	3.在协议族网络接口层的介质中生成数据;
	4.通过由介质和任意中间设备组成的网际网络传输数据;
	5.在目的终端的网络接口层接收数据;
	6.数据在目的终端设备中沿协议族向上传递时对数据解封和重组;
	7.将此数据传送到目的终端设备应用层的目的应用程序。
b.从OSI模型角度解释:
	信息从源主机的应用层开始,逐层向下传送,直到物理层,然后通过通信通道传送至目的主机。在目的主机,信息由自下而上传递到应用层。
	
# CISCO设备
交换机:二层交换机工作在OSI的数据链路层(二层)
		三层交换机同时工作在OSI的数据链路层和网路层
网关:从表面来看工作在三层,实际上网关是一个杂合物,属于所有层都有,七层。
网桥:数据链路层
路由器:网络层
交换机与路由器的区别:
	a.交换机工作在二层,路由器工作在三层。
	b.交换机使用MAC地址寻址(物理寻址),路由器使用IP地址寻址(逻辑寻址)。
	c.交换机的主要作用将PC连接在一起(决策二层、转发数据帧),而路由器主要作用是路由选择与分割广播域

三、网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

1.MAC地址表详解

说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。

2.交换机的工作原理

交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。
如下图:详细讲解交换机传输数据帧的过程

1.主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
2.交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。
3.然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。
4.这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。
5.当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。
如下图:当局域网存在多个交换机互联的时候,交换机的MAC地址表是怎么记录的呢?

1.如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。
2.当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
3.当主机B接受到此数据帧后,会校对IP地址是否是自己的,并将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,其中包括自己的MAC地址。
4.主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。

3.ARP 缓存表详解

上面我们讲解了交换机的工作原理,知道交换机是通过MAC地址通信的,但是我们是如何获得目标主机的MAC地址呢?这时我们就需要使用ARP协议了,在每台主机中都有一张ARP表,它记录着主机的IP地址和MAC地址的对应关系。

ARP协议(address resolution protocol 地址解析协议):ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址,在TCP/IP模型中,ARP协议属于IP层(网络层);在OSI模型中,ARP协议属于链路层。
如下图:详细讲解ARP的工作原理。

1.如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。
2.当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
3.当主机B接受到此数据帧后,会校对IP地址是否是自己的,并将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,其中包括自己的MAC地址。
4.主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。

4.路由表详解

由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。

直连路由:是直接连接在路由器接口的网段,由路由器自动生成。
非直连路由:就是不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由。
路由表中记录的条目有的需要手动添加(称为静态路由),有的测试动态获取的(称为动态路由)。直连路由属于静态路由。

路由器是工作在网络层的,在网络层可以识别逻辑地址。当路由器的某个接口收到一个包时,路由器会读取包中相应的目标的逻辑地址的网络部分,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。这就是数据路由的过程。
如下图:详细介绍路由器的工作原理

1.HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由A的转发。
2.HostA通过ARP请求获取网关路由A的E0口的MAC地址,并在链路层将路由器E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。
3.路由器A从E0可接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器2的E1接口的MAC地址。
4.路由B从E1口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E0口的直连网段,路由器B通过ARP广播,获知HostB的MAC地址,此时数据包在路由器B的E0接口再次封装,源MAC地址是路由器B的E0接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器的E0接口发送给HostB。
5.此时HostB才会收到来自HostA发送的数据。
总结:路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。

四、办公环境上网原理

路由器配置:
01.配置上网的用户名和密码信息 实现拨号访问外网 自动获取公网地址
	静态地址配置,在路由器外网接口配置运营商给你的公网地址
02.需要在路由器上配置DHCP服务信息
03.需要配置路由信息(静态默认路由)

五、虚拟主机上网原理图

NAT模式:

桥接方式:

仅主机模式:

六、系统路由设置

# 一、如何添加默认网关路由?
如何使用命令行方式给Linux机器添加一个默认网关,假设网关地址为 10.0.0.2?
缺省网关路由说明:
	默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们家里房子的门一样,如果外出就要经过房门,数据包也是一样。

# 二、如何添加静态网段路由?
192.168.1.0网段,192.168.1.1网关的某一服务器想连入172.16.1.0/24段,该如何添加路由?


网络路由说明:
	即去往某一网络或网段的路由;一般多网段之间互相通信,希望建立一条优先路由,而不是通过默认网关时就可以配置网络路由。还是拿房子比喻,你现在不是要出门,而是卧室,卫生间,去卧室就要经过卧室的门,去卫生间也要经过卫生间的门,这里的卧室和卫生间的门就可以认为是去往某一网段的路由,而不是默认路由(即房子的门)。
	实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是上面例子的情况。

	# 解答本题方法:
	route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
	# 解答本题实践步骤:
	route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
		SIOCADDET:网络不可达   <-当前连不通地址 192.168.1.1时,无法添加路由。
	ifconfig eth0:0 172.16.1.1/24 up
		<-添加一个IP别名用于临时测试,如果永久生效最好加双网卡或写入到配置文件。
	ifconfig eth0:0 <-查看添加的IP别名(网络里把这种多IP的方式称为接口)
		eth0:0 Link encap:Ethernet HWaddr 00:0C:29:65:A4:FD
			inet addr:172.16.1.1	Bcast:172.16.1.255 	Mask:255.255.255.0

# 三、如何添加静态主机路由?
如何添加一个主机路由?
主机路由说明:就是去往某个主机地址如何配置路由
解答本题方法:
/sbin/route add -host 192.168.2.13 dev eth2
/sbin/route add -host 202.81.11.91 dev lo

keepalived或heartbeat高可用服务器对之间的使用单独网卡接心跳线通信就会用到以上主机路由。
ip route show # 查看静态默认路由
ip route 0.0.0.0 0.0.0.0 192.168.1.1  # 静态默认路由


1.利用命令临时配置设置方法:
(1)静态默认路由:================================================================================
1) CentOS6: route # 和网络相关的命令  使用net-tools  rpm -qf `which route`
route add default gw 10.0.0.2(网关地址) # 网关地址在虚拟网络编辑器里有  如下图1
route del default gw 10.0.0.2  # 删除默认路由,不一定非要重启网络服务
作用:实现主机访问外网,用于测试新的网关地址。如果新的网关地址生效,可以将10.0.0.2网关放到网卡配置文件或者rc.local里,永久生效

2) CentOS7:  ip route # centos7 和网络相关的命令  使用iproute包 也可使用net-tools包的route  rpm -qf `which ip`
ip route add default via 10.0.0.2  # via:经由  经由哪一个网关
ip route del default via 10.0.0.2

(2)静态网卡路由 ======================================================================================
1) CentOS6: # 如下图4
route add -net 10.0.3.0 netmask 255.255.255.0 gw 10.0.1.2
route del -net 10.0.3.0 netmask 255.255.255.0 gw 10.0.1.2
	路由信息
	0.0.0.0		10.0.0.2	0.0.0.0			UG	0	0	0	eth0
	10.0.3.0	10.0.1.2	255.255.255.0	UG	0	0	0 eth1
2) CentOS7:
ip route add -net 10.0.3.0 netmask 255.255.255.0 via 10.0.1.2
ip route del -net 10.0.3.0 netmask 255.255.255.0 via 10.0.1.2

(3) 静态主机路由 =====================================================================================
1) CentOS6:
route add -host 10.0.3.201 dev eth1
route del -host 10.0.3.201 dev eth1
2) CentOS7
ip route add -host 10.0.3.201 via 10.0.0.2 dev eth1
ip route del -host 10.0.3.201 via 10.0.0.2 dev eth1

a.编写网卡配置文件

图1:

图2:

图3(静态网段路由):

图4:

公司网络架构经典案例:

在企业中,网络环境可能是比较复杂的,会需要多个网段地址,并且多个网段之间要实现网络的互通。这时就需要引入Linux网络路由器配置的概念,来解决网络之间的互通。本方案就是以一个简单的企业场景案例进行规划、分析、以及配置企业内部的不同网段之间的互通

linux路由部署项目拓扑:

IP地址划分

# IP地址分类
a 按照地址的范围进行划分
	A B C D E
b 按照地址用途进行划分
	公网地址:全球唯一 护照
	私网地址: 重复利用地址,避免地址枯竭,私网地址网段不能出现在互联网路由器路由表  身份证
c 按照通讯方式划分
	单播地址:
	网卡上配置的地址
	广播地址:
	主机位全为1的地址  192.168.1.11111111  -->192.168.1.255
	主机位全为0的地址: --- 网络地址  -->192.168.1.0 
	网络中主机数量=2的n次方-2  2^8-2=254-1(路由器上的网关地址)=253
	n 有多少个主机位
	-2 一个广播地址,一个网络地址  是不能配置在网卡上的
	C类地址,一个网络中可以有253个主机
	B类地址,一个网络中可以有 2^16=65533
	A类地址,一个网络中可以有 2^24-3=??
	
	组播地址:D类地址,只想给局域网中的部分主机通信,就是组播地址。。

# 子网划分概念:
将一个大的网络划分成几个小的网络

一个大的网络,不做子网划分的危害: # 比如172.16.0.0 B类地址
	造成地址浪费、广播风暴、路由压力
一个大的网络做子网划分:
	节省IP地址,减少广播影响,减轻路由器压力

posted on 2021-11-05 22:58  jueyuanfengsheng  阅读(151)  评论(0编辑  收藏  举报