计算机网络的定义
硬件方面:通过线缆将网络设备和计算机连接起来
软件方面:操作系统,应用软件,应用程序通过通信实现线路互连
实现资源共享、信息传递
标准化组织
* ISO(国际标准化组织)
ANSI(美国国家标准化局)
ITU-T(国际电信联盟-电信标准部)
* IEEE(电气和电子工程师学会)
TCP/IP 协议:
TCP/IP五层协议 | 作用 | 协议族 | PDU | |
应用层 | 各种服务 | HTTP,FTP | 上层数据 | |
传输层 | 基层传输数据协议 | TCP、UDP | 数据段 | 三次握手、四次断开 |
网络层 | 路由转发 | ICMP、IGMP、IP、ARP | 数据包 | IP路由转发、网段互通 |
数据链路层 | 交换机转换 | 交换机基层设备 | 数据帧 | 只有mac地址、没有IP |
物理层 | 底层的网络物理设备,比如网卡 | 基层协议 | 比特流 | 网线B类:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕(A类线把橙和绿对调即可),其中只有橙白、橙、绿白、绿用于传递数据 |
诸多应用协议,常用协议:
公有协议 | 作用 | Cisco私有 |
ICMP | 网络层 命令ping所使用的协议 | - |
ARP | 网络层 把IP地址转换为mac地址的协议 | - |
IEEE 802.1Q | 数据链路层 Trank中继链路的协议 | ISL |
OSPF | 实现动态路由,减少了管理任务 | - |
STP |
逻辑上断开环路,防止广播风暴的产生; 当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用 。 |
- |
MSTP | 实现生成树的负载均衡 | PVST+ |
VRRP | 热备份路由选择协议,实现虚拟网关的负载均衡 |
HSRP |
Cisco Packet Tracer软件
所有设备(交换机,路由器,三层交换机)通用
三个基本模式
用户模式:Switch>
特权模式:Switch#
全局配置模式:Switch(config)#
接口模式:Switch(config-if)#
VLAN模式:Switch(config-vlan)# (每个设备都有VLAN,但是每个设备的作用的不一样)
用户模式 ---> 特权模式 ---> 全局配置模式 |---> 接口模式
|---> VLAN模式
注:下面的命令中涉及到接口全部写的是f(astEthernet),交换机和三层交换机的接口都是这个,不过路由器的接口是g(igabitEthernet),因为命令大致相同,所以再写一次了,在应用的时候,注意一下
切换命令:
用户-->特权:Switch>en(able)
特权-->全局:Switch#conf(igure) t(erminal)
全局-->接口:Switch(config)#int(erface) f(astEthernet) [设备编号,自带的接口所在设备号是0]/[接口编号] ---> f(astEthernet)是交换机和三层交换机的接口,g是路由器接口
全局-->VLAN:Switch(config-vlan)#name [vlan编号] ---> (不过vlan需要自己创建,在进去前必须先创建,不然操作无效)
相反方向的切换:exit
所有模式--->特权模式:end
进入多个接口:Switch(config)# interface range f0/[编号1],f0/[编号2]……
Switch(config)# interface range f0/[编号起始]-[编号终止]
配置主机名:
Switch(config)# hostname [名字]
查看设备配置信息:
Switch# show running-config
查看端口的IP的信息:
Switch#show ip int(erface)
修改进入特权模式的密码:
Switch(config)#enable password [密码]
创建vlan: Switch(config)#vlan [编号] (创建后会自动进入vlan)
Switch(config-vlan)#vlan [编号] (可以在其他vlan设备下,创建其他vlan并切换)
删除vlan: Switch(config)#no vlan [编号]
所有设备再重新接点后配置会全部消失
保存配置的命令是:Switch# w
返回出厂默认情况是:Switch# er(ase) s(tartup-config)
控制台消息打断输入解决方案:
Switch(config)#line console 0
Switch(config-line)#logging synchronous
在特权模式输入错误命令,导致设备卡死的解决方案:
Switch(config)#no ip domain-lookup
交换机:
这是一个二层的设备,数路数据链路层,没有IP,数据传递是根据设备的mac地址
工作原理: 学习 --> 广播 --> 转发 --> 更新
初始状态 – mac地址学习 – 广播未知数据帧– 接收方回应 – mac地址学习 –交换机实现单播通信
查看mac地址表:Switch#show mac-address-table
交换机在收到一个数据后,先让mac地址表学习再广播,广播后收到回应后也是学习后转发
对于一个服务器,在收到广播后,判断是不是发给自己的数据帧,是就回应,不是就丢弃不回应
虚拟局域网 VLAN (Virtual LAN)
VLAN的作用是分割广播域,防止广播太多影响设备,也可以提高带宽利用,降低缓存。
把端口加入到vlan中,先进入多个端口,随后完成加入:
Switch(config-if)#switchport access vlan [编号]
查看vlan配置信息:
Switch# show vlan brief
Trunk
主要用于两个交换机,使得其传递数据的时候能把vlan的数据也传递走
Trank所用协议ISL和802.1Q 的异同
相同点
都是显式标记,即帧被显式标记了VLAN的信息。
不同点
ISL是Cisco私有的标记方式,IEEE 802.1Q是公有的标记方式;
ISL采用在数据两端标记的方法,IEEE 802.1Q采用在数据内部标记的方法;
ISL标记的长度为30字节,IEEE 802.1Q标记的长度为4字节。
配置trunk:
把某个端口设置为trunk接口,然后两个trunk接口连接就完成配置了:
Switch(config-if)#switchport mode trunk
查看接口模式:
Switch#show interface [接口号] switchport
vlan的access直联通信和trunk中继链路通信的区别
假设有 服务器s1 连接 交换机1 的A1端口, 服务器s2 连接交换机2 的B1 端口 ,交换机1 的A2 端口和 交换机2 的B2 相连。
如果两个交换机直接用普通的access连接,他们判断通信:
因为access不传递vlan信息,所以只需要判断A1和A2是否在一个vlan中,B1和B2在不在一个vlan里面,并不需要A1在的vlan编号和B1在的vlan编号相同,只需要自己的交换机的两个接口能通信即可
如果两个交换机用trunk连接,判断通信:
必须设置vlan编号相同,因为trunk传递vlan信息,所以A1所在vlan号和B1要一样,而A2和B2设了trunk就不属于任何的vlan
以太通道:
绑定两个接口,使得其更稳定,配置的时候直接在绑定的多个接口中配置
配置接口为以太通道模式,先进入准备连接的多个接口中,再将这些接口绑定:
Switch(config-if-range)#channel-group 1 mode on
路由器:
主要完成下列事情:
识别数据包的目标IP地址,识别数据包的源IP地址(主要用亍策略路由),
在路由表中发现可能的路径,
选择路由表中到达目标最好的路径,维护和检查路由信息。
获得路由表:静态于动态
查看路由表
Router#show ip route
其中:C 表示直连路由 、 S 表示静态路由 、 S* 表示默认路由
静态、缺省路由
由管理员在路由器上手工指定,适合分支机构、家居办公等小型网络
路由表的获取
1. 直连路由:配置IP地址,端口UP状态,形成直连路由。
配置路由器的IP:
Router(config)#interface g0/[序号] 进入要配IP的接口
Router(config-if)#ip address [IP] [子网掩码]
2. 非直连网段:需要静态路由或动态路由,将网段添加到路由表中。
不过路由器的接口默认关闭,在设置后,要启用:
Router(config-if)#no shutdown
配置静态路由
Router(config)#ip route [目标网络IP] [子网掩码] [下一跳]
缺省路由
缺省路由是一种特殊的静态路由,对亍末梢网络的主机来说,也被称为“默认网关”
缺省路由的目标网络为 0.0.0.0 0.0.0.0,可匹配任何目标地址
Router(config)#ip route 0.0.0.0 [子网掩码] [下一跳]
动态路由
根据网络拓扑或流量变化,由路由器通过路由协议自动设置,适合ISP服务商、广域网、园区网等大型网络
OSPF协议
Open Shortest Path First ( 开放式最短路径优先)
OSPF区域area,用来做隔离,两个区域号相同的接口才能相互学习,而一个路由器内可以有多个area,因为area不同,所以实现延迟不同area种路由的动态改变,可以实现保护网络的路由稳定性。
启动OSPF路由进程
Router(config)# router ospf [进程编号id]
指定OSPF协议运行的接口和所在的区域
Router(config-router)# network [网段] [反掩码] area [区域号]
动态路由原理:
两个相连的路由成为邻居,如果他们都开启了ospf动态路由,就会相互学习,把对方的路由表中的信息学来,从而使网络中的路由相互都能通信
路由工作的逻辑:
设备连接路由器后,发送请求给路由器,路由器查看自己的路由表,找到直连或者非直连(静态),发现有,就发送出去,如果没有,就根据设置的默认路由发出请求查找,如果没有查到且没有默认路由,就会反馈给设备,如果发送出去后没有数据回来,设备会报告超时
三层交换机:
三层交换 = 二层交换 + 三层转发
注意其接口默认是二层接口
三层交换机的配置
如果想启用其路由功能:
1、在三层交换机启用路由功能
Switch(config)#ip routing
2、配置虚拟接口的IP 地址
如果是配置默认有的vlan 1的IP ,配置后要启动:
Switch(config)#interface vlan 1
Switch(config-if)#ip address [本网络IP] [子网掩码]
Switch(config-if)#no shutdown
如果没有某个vlan要先完成创建,不过不要启动,因为创建的时候默认启动了:
Switch(config)#vlan [序号]
Switch(config)#interface vlan [序号]
Switch(config-if)#ip address [本网络IP] [子网掩码]
3、把指定的接口加入到vlan中
Switch(config)#interface f0/[接口号]
Switch(config-if)#switchport access vlan [虚拟接口号]
如果想节约三层交换机的接口,只需要再用一个二层交换机连接,用trunk技术连接
配好服务器的IP,完成服务器和二层交换机的连接,并设置好vlan,把一个将要连接上层交换机的接口设为trunk
在三层交换机开设相同的vlan虚拟接口,配好IP
在三层交换机上配置Trunk并指定接口封装为802.1q
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
如果想和其他路由器相连
进入一个接口:
Switch(config)#interface f0/[接口号]
Switch(config-if)#no switchport
使用这个命令后,把这个接口从二层变换成三层路由器的接口,可以直接配IP
三层交换机的逻辑路线
接口是数据二层数据链路层,数据传递进来后,根据管理员定的vlan规划,把数据传递给虚拟接口,进入三层网络层,然后进行路由转发。所以,可以通过trunk的方式,把数据传递进来,再根据传递的数据进行vlan分配。
因为只有vlan才有IP,所以需要把每个接口都划分到每个vlan里面,如果是trunk,因其其数据中有vlan信息,所以这接口不用配置到某个vlan中。
传输层:
TCP/UDP传输协议
TCP稳定连接:有三次握手,四次断开
三次握手:A发送SYN ---> B接收到后发送SYN和ACK ---> A再反馈ACK
四次断开:A发送FIN ---> B接收到后发送ACK,并且完成自己正在进行的数据传递 ---> B在传递结束后发送SYN ---> A再反馈ACK
UDP传输快,但是有可能丢包,丢包后只能是上层设备控制。
标准访问控制列表
配置:先创建控制列表再应用到接口上。
标准访问控制列表的创建
Router(config)# access-list [列表编号] deny [IP] [反子网掩码]
列表编号如果不存在就创建 ,存在就是修改其信息, deny 表示拒绝,permit 表示允许 ,反子网掩码中0表示严格匹配,255表示匹配通配,表明这一位不需要进行匹配操作
隐含拒绝语句,在所有匹配结束后,默认有下面这个判断在最后:
Router(config)#access-list 1 deny 0.0.0.0 255.255.255.255
注:access-list 1 deny 192.168.1.1 0.0.0.0 === access-list 1 deny host 192.168.1.1 ---> 表示192.168.1.1这个IP不能通过
access-list 1 deny 0.0.0.0 255.255.255.255 === access-list 1 deny any ---> 表示拒绝所有
将ACL应用于接口
Router(config-if)#ip access-group [列表号 in或out]
删除已建立的访问控制列表
Router(config)#no access-list [列表号]
接口上取消ACL
Router(config-if)#no ip access-group [列表号 in 或out]
查看访问控制列表
Router#show access-lists
删除ACL
Router(config)#no access-list 列表号
注:不能删除单条ACL语句,只能删除整个ACL。
NAT地址转换
nat技术主要应用在内网和外网交互中,一般内外网的IP地址有严格要求,互联网中私有IP的范围是私
A类 :10.0.0.0~10.255.255.255
B类 :172.16.0.0~172.31.255.255
C类 :192.168.0.0~192.168.255.255
静态转换
IP地址的对应关系是一对一,而且是不变的,借助静态转换,能实现外部网络对内部网络中某些特设定服务器的访问。
静态NAT配置:
配置接口IP及路由
Router(config)#ip nat inside source static [内网IP] [公网注册的IP]
在内外接口上启用NAT:
[出口/入口] 的配置Router(config-if)#iip nat [outside/inside]
端口映射:
在内网服务区上配置端口映射,将其的80端口映射为公网的一个IP的80端口,将其web服务发布到Internet。
注意只有外网的设备可以连接内网映射的这个公网的IP的web服务,而内网服务器并不能和外网相连。
配置:
Router(config)#ip nat inside source static [tcp或者udp] [内网的IP地址] [端口号] [注册的公网IP] [端口号]
端口多路复用(PAT)
PAT的配置:
Router(config)# access-list [列表编号] deny [IP] [反子网掩码]
Router(config)#ip nat inside source list [acl控制列表号] interface g0/[端口号] overload
NAT两种实现方式的区别:
静态转换的对应关系一对一且不变,并且没有节约公用IP,只隐藏了主机的真实地址。
端口多路复用可以使所有内部网络主机共享一个合法的外部IP地址,从而最大限度地节约IP地址资源。
NAT的原理:
静态是把内网的一个IP经过路由后,变成一个公网IP,可以实现,内外网互通,其存在的主要目的是,在需要的时候配置端口映射,而这个只能是外网连内网。
PAT是用过acl控制列表,按照列表要求,允许或拒绝某些IP转发,把其转换为路由器接往外网的端口号作为连接外网的IP,有数据发出的时候,路由器会随机生成一个端口号,并且记录下来,当数据返回的时候,再转发给内网IP地址,不过这只能是内网请求访问外网连接,外网不能主动连接内网。
STP - Spanning Tree Protocol(生成树协议)
逻辑上断开环路,解决广播风暴(当网络中存在物理环路,一个请求的目标地址并不存在,就导致请求在环路中一直广播,直到死机),当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用
查看交换机mac地址
Switch#show version
PVST+(增强的每vlan的STP生成树)
PVST+配置的意义 :配置网络中比较稳定的交换机为根网桥 ,利用PVST+实现网络的负载分担
启动命令
启用生成树命令 (此命令可以不用输入,默认交换机会开启)
Switch(config)#spanning-tree vlan [vlan编号]
配置根网桥,实现负载均衡(主根或次根)
改优先级
Switch(config)#spanning-tree vlan [vlan编号] priority [优先级的值]
注意:优先值是越小越优先,并且优先级的值是4096的倍数,;
或者(不推荐此方式)Switch(config)#spanning-tree vlan [vlan编号] root [primary|secondary]
查看某个vlan的生成树的配置
Switch# show spanning-tree vlan [vlan编号]
热备份路由选择协议(HSRP)
HSRP是Cisco的私有协议,其作用是:确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。
原理是:通过使用同一个虚拟IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。HSRP使组内的cisco路由器能互相监视对方的运行状态。
HSRP组成员
活跃路由器、备份路由器、虚拟路由器(即该vlan上的网关)、其他路由器
HSRP的配置:
配置为HSRP的成员:
进入路由器的网关接口(VLAN):
Switch(config-if)#standby [HSRP组号] ip [虚拟网关IP]
配置HSRP的优先级
Switch(config-if)#standby [HSRP组号] priority [优先级]
注意:优先级范围0-255,默认为100,优先级越大越优先
查看HSRP摘要信息
Switch#show standby brief
HSRP端口跟踪
Switch(config)#standby [HSRP组号] track f0/[端口]
HSRP占先权
也就是当我的优先级最高的时候,并且系统正常的时候就抢夺成活跃服务器
Switch(config)#standby [HSRP组号] preempt
逻辑分析:
HSRP是路由负载均衡的手段,并且提高冗余度,从而提高系统的稳定性,从三个方面考虑活跃网关或备份网关,
首先,我们要先创建HSRP,进入路由器作为网关的接口(三层交换机的vlan),在里面申请一个HSRP组号和一个虚拟IP,这个虚拟IP就是活跃着的网关,也就是说,原本给接口设置的IP并不会被使用,作为其他谁被网关的是这个虚拟IP
然后考虑多个服务器,哪个是活跃的,我们判断前,先要清楚占先权有没有打开,如果没有打开,那么设备一旦活跃了,就不会改变,也就是说优先级端口跟踪都没有实际意义,所以我们要先查看优先级,确定优先级都打开了,我们再看优先级的大小,优先级大的会抢夺活跃。
最后,在确定端口跟踪开启的时候,如果往外的服务线断了,其优先级会下降,从而实现转让活跃,使得线路最优化,要注意,即使没有开启端口跟踪转让活跃,也不会出现无法连接的情况,网络任然畅通,只是网络会走弯路浪费一些不必要的时间。
联合几个特殊的设备相互连接的的一些逻辑思考:
1. 交换机和三层交换机的vlan的区别:
主要从作用上分析,交换机的vlan主要是用来做广播隔离,而三层交换机是作为有个虚拟接口,从而实现配置IP进入网络层进行传递数据
2. 服务器等终端设备和路由器的区别
举个例子:如果有个网络连接逻辑是:服务器设备--路由器--服务器设备 , 这时候我们配置好所有IP,但是没有做任何非直接路由,两个服务器是可以网络通讯的, 相反如果有个网络连接逻辑是:三层交换器--路由器--服务器设备 , 这时候我们配置好所有IP,但是没有做任何非直接路由,服务器却不能合三层交换器通讯,这是为什么呢?
原因很简单,因为如果服务器想和其他IP链接,他会从自己的网卡中吧这个数据发布出去,到达路由器,路由器查看自己的直连路由,有目标网段,就开始了转发,这样两个服务器连着同一个路由器就能互通,但是路由器想和一个IP链接,他做的是查看自己的路由表,因为没有查到目标网段,所以信息并不会发出去。
3.交换机和路由器相连:因为路由器一个端口只能是一个IP,所以交换机连接路由器后,整个交换机连的所有设备都要在一个网段中,没什么要配置的
交换机和三层交换机相连:两个设备的接口都是一样的二层接口,可以直接连,不过要提现三层的作用,就要设置vlan,并且响应vlan号要相同,然后两个交换机的连接线要用trunk
路由器和三层交换机相连:一个这是两个设备,如果把三层当成交换机,直接连了用,如果把三层的路由也开启了,就要配置三层连接路由器的接口,可以设置vlan来实现,也可以直接把接口变成路由接口配置IP
4.一些功能的作用归类:
隔断,阻止通信:交换机的vlan,路由器的acl控制表,NAT和acl的结合
连接,进行通信:路由设备,动态路由,三层交换机的vlan,NAT用来和外网通信