1.1 网络拓扑结构
1、星型拓扑结构
星型拓扑结构的网络中心有节点,且网络的其他节点都与中心节点直接相连,还有一种比较复杂的星型拓扑结构,有很多书籍或文档也称为树形拓扑,目前在园区网,公司网等局域网中一般都采用这个中结构,如下图所示:
优点:
- 易于实现。组网简单快捷
- 易于网络扩展
- 易于故障排查
缺点:
- 中心节点压力大
- 组网成本较高
2网型拓扑结构
网络拓扑结构中的各个节点至少与其他两个节点相连,这种拓扑最大的优点是可靠性高,网络中的任意两个节点都同时存在一条主链路和一条备份链路,但是这些冗余的线路本身又造成网络的建设成本成倍增长。
网络拓扑结构分为两种类型:“全网型”和“部分网型”
1.2 数制介绍
网络中传输的各式各样的信息都是依靠一种基本的计数方法-----二进制表示的,计算机通常采用二进制方法计数,二进制只有两个数字0和1,十进制用0--9表示
1.2.1 数制的基本概念
先明确一下基本概念
- 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法,如在计数过程中采用进位的方法成为进位计数制。进位计数制有数位、基数、位权三个要素
- 数位:指数字符号在一个数中所处的位置
- 基数:指在某种进位计数制中数位上所能使用的数字符号的个数。例如,十进制数的基数是10,二进制的基数是2
- 位权:指在某种进位计数制中数位所代表的大小,既处在某一位上的“1”所表示的数值的大小。对于一个N进制数(既基数为N),若数位记做k,则位权可记做Nk,整数部分第i位的位权为Ni=Ni-1。例如:十进制的第2位的位权为101=10,第3位的位权为102=100
既然有不同的进制,那么在给出一个数时,就需要指明它是什么数制里的数。对不同的数制,可以给数字加上括号,使用下标来表示该数字的进制
除了用下标表示外,还可以用后缀字母来表示数制
- 十进制数用后缀D表示或没有后缀
- 二进制数用后缀B表示
- 十六进制数用后缀H表示
在数制中,还有一个规则,就是N进制必须是逢N进一
- 十进制数是逢十进一
(1010)10=1*103+0*102+1*101+0*100
- 二进制数数时逢二进一
(1010)2=1*23+0*22+1*21+0*20
1.2.2 计算机中常用的数制
1、十进制
基数是10,数制部分用十个不同的数字符号0、1、2、3、4、5、6、7、8、9来表示
逢十进一
例如:123=1*102+2*101+3*100
2、二进制
计算机中的数是用二进制表示的,它的特点是逢二进一,因此在二进制中,只有0和1两个数字符号
特点
- 基数为2,数值部分用两个不同的数字符号0、1来表示
- 逢二进一
二进制转换为十进制
1101=1*23+1*22+0*21+1*20=8+4+0+1=13
3、十六进制
特点
- 基数是16,有16个数字符号 0 1 2 3 4 5 6 7 8 9 A B C D E F,其中A--F表示10---15
- 逢十六进一
1.2.3 数制转换
1、二进制与十进制之间的转换
将一个十进制整数转换为二进制数可使用除2取余数法,即:将要转换的十进制整数除以2,取余数,在用商除以2,在取余数,直到商等于0为止,将每次得到的余数按倒序的方法排列起来即为结果
125的二进制为:1111101
1.3 IP地址
1.3.1 IP地址格式
互联网上连接的网络设备和计算机都有唯一的地址,称为IP地址,IP地址是由32位二进制数组成的,11010010.01001001.10001100.00000110,很显然这段数字不好记,因此人们就将组成计算机I地址的32位二进制数分成四段,每段八位,然后将每八位二进制数转成十进制,就是210.73.140.6
1.3.2 IP地址分类
IP地址由两部分组成:网络部分和主机部分。网络部分用于标识不同的网络,主机部分用于标识一个网络中特定的主机。IP地址分为A、B、C、D、E五类,目前用的最多的是A、B、C三类
- A类地址,规定第1个八位组为网络部分,其余三个八位组为主机部分
A类地址=网络部分+主机部分+主机部分+主机部分
它的第1个八位组的第1个比特位是0。因此它的第1个八位组的范围就是00000000---01111111,换成十进制就是0----127,其中127是一个比较特殊的地址,通常用于本机测试的地址是127.0.0.1,主机部分不能全为0或者全为1,主机全为0表示网络ID,全为1表示本网络的广播地址
- B类地址,规定前两组为网络部分
B类地址=网络部分+网络部分+主机部分+主机部分
B类地址中作为引导位的前两个比特位必须是10,因此它的网络部分的范围就是10000000.00000000---10111111.11111111,其中第一个八位组换成十进制就是128--191
- C类地址
前三个八位组为网络位,最后一个八位组为主机位
C类地址=网络部分+网络部分+网络部分+主机部分
前三个比特位为引导位110,网络部分范围是11000000.00000000.00000000--11011111.11111111.11111111,十进制192--223
私有IP地址范围
10.0.0.0---10.255.255.255
172.16.0.0---172.31.255.255
192.168.0.0---192.168.255.255
1.3.3 子网掩码
用来确定IP的网络地址,具有相同网络地址地IP地址称为同一个网段的IP地址
同一网段中两台主机之间相互通信
不同网段中两台主机不能直接互相通信,需要借助路由器
子网掩码也是有32个二进制位组成的,对应IP地址的网络部分全为1,对应主机部分全为0
- A类默认子网掩码 255.0.0.0
- B类默认子网掩码 255.255.0.0
- C类默认子网掩码 255.255.255.0
有了子网掩码后,只要把IP地址和子网掩码进行逻辑“与”运算,所得出的结果就是网络地址
192.168.1.189 255.255.255.0
11000000.10101000.00000001.10111101 IP地址
11111111.11111111.11111111.00000000 子网掩码
11000000.10101000.00000001.00000000
192 168 1 0
2.1 分层模型
我们所认识的世界旺旺只是冰山一角,大部分的真相都掩藏在海平面以下,那网络世界更是如此。平时在家里访问各种网页或者聊QQ时,我们的操作无外乎点击图标,打几个字而已,但对于计算机和网络中转设备来说,却是一个相当复杂的过程。就好像邮寄一份礼物给远方的朋友,我们需要做的只是将这份礼物交给邮局并写明正确的地址,如果不出意外,这位朋友将会顺利收到,但是这份礼物在中间经历了哪些复杂的过程,传递礼物的双方就不得而知了。对于网络的最终用户,了解到这个层次已经足够了。
2.1.1 分层的思想
分层思想本质上就是把节点间通信这个复杂问题分成若干相对简单的问题逐一解决每个问题对应一层,每一层实现一定的功能,相互协作即可实现数据通信这个复杂任务
我们举个例子:早上时间比较紧张的时候,冲一杯牛奶是一种不错的早餐方案。作为最终用户,我们并没有感受到喝一杯牛奶有多大困难,因为我们只是把奶粉从超市买回家,用水冲开而已。但奶粉的生产者面临一些列复杂的问题,如何选择物美价廉的奶源,如何将牛奶运送到奶粉厂且保证牛奶不变质,如何安排奶粉的整个生产工艺,如何与各大超市洽谈,如何与物流公司流通,作为一个奶粉厂的管理者,应该如何应对这么复杂的事情呢?最好的方法就是用分层的思想,将整个生产销售流程分成几个不同的管理模块,每个模块由专门的负责人管理协调。于是奶粉厂就会出现各个部门:原理采购部、奶源加工车间、奶粉生产车间、奶粉包装车间、销售部门等。
这样奶粉加工生产的整个过程就变得清晰了,如果出现各种问题,如奶粉质量问题,管理者很快就确定问题出在哪个部门中。
在网络节点中也体现了这种思想。赋予每一层一定的功能,相邻层之间通过接口来通信,下层为上层提供服务。一旦网络发生故障,很容易确定问是由哪一层的功能没有实现而导致的。将故障产生的原因聚集于一点,有助于更加清晰明了的分析问题,解决问题。
2.1.2 OSI参考模型与TCP/IP协议簇
1、OSI参考模型
由于各个计算机的厂商都采用自己的网络模型,导致不能互相通信,所以国际标准化组织--ISO颁发了一个开放式系统互联参考模型(OSI),它是一个开放式的体系结构,将网络分为七层。
从上往下依次是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
2、TCP/IP参考模型
TCP/IP是传输控制协议/网络互联协议的一个简称。早起的TCP/IP模型是一个四层结构,从上往下依次是网络接口层、互联网层、传输层和应用层。后来借鉴七层,又将网络接口层分为“物理层和数据链路层”,从而形成了一个五层结构,现在的网络依旧在沿用TCP/IP五层
每一层所对应的协议
- 物理层和数据链路层
没有定义任何特定的协议,它支持所有标准的和专用的协议,TCP/IP实际上只有三个层次
- 网络层
TCP/IP定义了网络互联协议IP,而IP又由四个支撑协议组成:ARP地址解析协议,RARP逆地址解析协议,ICMP网际控制报文协议,IGMP网际组管理协议
- 传输层
TCP传输控制协议、UDP用户数据报协议。TCP协议传输更加稳定可靠,UDP协议传输效率更高
- 应用层
HTTP超文本传输协议,FTP文件传输协议,SMTP简单邮件传输协议,DNS域名系统
2.2 数据封装与解封装
以写信为例,给朋友写信时一定会遵照一个约定俗成的信件格式去写信,例如在开头写对收信人的称呼,接下来是问候语,最后落款自己的姓名,日期等,写完信,要将信装在信封中,在信封上,要书写收信人的地址和姓名等,在将信交给邮局。
邮局根据收信人的地址,因为到一个地方不只一封信,可能有很多信,这时会把这些信件再次封装成大的包裹,通过运输部门发往目的地。
运输部门将大包裹送往目的地邮局,邮局会将信件送给收信人,所以下一层是为上一层服务的
1、数据封 过程
一、应用层传输过程:数据被翻译成网络语言-----二进制编码
二、传输层传输过程:上层数据被分成小的数据段,并为每个分段后的数据封装TCP报文头部
三、网络层传输过程:上层数据被封装上新的报文头部---IP头部
四、数据链路层传输过程:上层数据被封装一个MAC头部,其中关键字段信息----MAC地址
五、物理层传输过程:把这些二进制编码转换成电信号传输
2、数据解封装过程
数据解封装是由下往上一层层解封的
- 在物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层
- 数据链路层,将查看目标MAC地址,判断出是否和自己的MAC地址一样,如果报文中的MAC地址就是自己的MAC地址,MAC头部将被拆掉,然后将数据送至上一次,如果报文中的MAC地址和自己的MAC地址不一样,它将会丢弃该数据
- 网络层,目标IP地址将被核实是否与自己的IP地址相同。
- 传输层,首先要根据TCP头部判断数据段送往哪个应用层协议,然后将之前分组的数据段重组,在送往应用层
3、数据传输基本概念
PDU(协议数据单元),对应OSI模型来说,每一层都是通过协议数据单元来进行通信的,在TCP/IP五层中,上层数据被封装了TCP头部后,这个单元称为段,数据段向下传到网络层,被封装了IP头部,这个单元称为包,数据传到了数据链路层,被封装了MAC头部后,这个单元称为帧,最后帧传到物理层,变成比特流通过介质传输。
每一层所对应的物理设备
应用层 | 传输层 | 网络层 | 数据链路层 | 物理层 |
计算机 | 防火墙 | 路由器 | 交换机 | 网卡 |
2.3 传输介质网线
2.3.1 网线概念
1、网线又称双绞线总共是八根线,按逆时针方向两两相绞在一起,用来抵御一部分电磁干扰,双绞线分为:屏蔽双绞线(STP)和非屏蔽双绞线(UTP)
2、双绞线分类
- 5类线(cat5)主要用于100M网络,常见的标准有10Base-T和100Base-T,目前市场上常用的产品
- 超5类线(Cat 5e)衰减少,用于千兆网
- 6类线(Cat 6)传输速率是1000Mb/s
2.3.2 网线制作规范
网线一般分为三类:标准网线、交叉网线
网线的线序遵循的是EIA/TIA标准
T568A线序1--8:白绿、绿 白橙、蓝 白蓝、橙 白棕、棕
T568B线序1-8: 白橙、橙 白绿、蓝 白蓝、绿 白棕、棕
标准网线又称为直通线、平行线:制作网线时,两端的线序是一样的,T568A或者T568B
交叉网线:一端是T568A,另一端是T568B
3.1 以太网帧格式
1、MAC地址
在计算机联网的时候,需要一个联网的硬件就是网卡,在网卡上烧录了一个物理地址就是MAC地址,而且每块网卡的MAC地址在全球都是唯一的一个编号。
MAC地址是由48位二进制组成的,分为六段,用十六进制表示,比如:00-D0-09-A1-D7-B7,其中前24位是生产厂商向IEEE申请的厂商编号,每个生产厂商的编号都是唯一的,后24是生产厂商自己来定义的
在上图中MAC地址的第8位为0时,表示该MAC地址是一个单播地址,单播地址是一对的方式传输,例如:张三和李四聊微信,张三给李四发送一条信息,只有李四能收到,其他人不会收到,这就是单播地址,所以网卡的MAC地址一定是一个单播地址。
第8位为1时表示该MAC地址是组播地址,一对多方式发送数据
2、以太网帧格式
目的地址DA:目的MAC地址(接收方地址) 源地址SA:源MAC地址(发送方地址)
3.2 交换机工作原理和双工模式
3.2.1 交换机工作原理
交换机并不会把收到的每个数据信息都以广播的方式发送给客户端,由于交换机可以根据MAC地址来转发数据。交换机存储的MAC地址表将MAC地址和交换机的接口编号对应在一起,每次交换机收到计算机发送的数据时,就会从MAC地址表中判断如何转发该数据帧
1、MAC地址的学习
假设主机A发送数据帧(源MAC地址为00-00-00-11-11-11,目标MAC地址是00-00-00-22-22-22)到交换机的1号接口,交换机首先查询MAC地址表中1号接口对应的源MAC地址条目。如果条目中没有数据帧的源MAC地址,交换机就会将这个帧的源地址和收到该数据帧的接口编号1号口对应起来,然后添加到MAC地址表中
2、广播未知数据帧
如果交换机没有在MAC地址表中找到数据帧目的地址所对应的条目,就无法确定该从哪个接口将数据帧转发出去,于是被迫选用广播的方式,除了1号口之外的所有接口都将转发这个数据帧。主机B和主机C都会收到广播
3、接收方回应信息
主机B会响应这个广播,并回应一个数据帧(源MAC地址00-00-00-22-22-22,目标MAC地址00-00-00-11-11-11),交换机也会将此帧的源MAC地址和接口编号2口对应起来,添加到MAC地址表中
4、交换机实现单薄通信
现在主机A和主机B在进行通信,就不用在广播了,直接从MAC地址表中寻找目的MAC地址
交换机学习到的条目并不会永远保存在MAC地址表中,默认的老化时间是300秒,300秒没有通信条目就会删除,双方在进行通信时就要从第一步开始学习
3.2.2 交换机双工模式
1、单工
单工是沿单一方向进行传输,比如扬声器、麦克风
2、半双工
两个数据之间可以双向传输,但是不能同时传输,比如 对讲机,发时不收,收时不发
3、全双工
两个数据之间可双向可同时进行数据传输的模式,比如打电话,聊微信,在交换网络中,通信双方大多采用全双工模式。
一般来说各厂商设备接口默认模式都是自动适应,但是设备接口是全双工,另一台设备接口为半双工时,这两台设备就不能互相通信
3.2.3 交换机的命令行模式
1、用户模式
进入交换机的后台后首先进入的就是用户模式,只能查看一些统计信息。
switch>
2、特权模式
在用户模式模式下输入“enable”(可简写en)命令就可以进入特权模式,用户在该模式下可以查看并修改设备的配置
switch>enable
switch#
3、全局模式
在特权模式下输入“config terminal”(可简写“conf t”)命令就可以进入全局模式,用户在该模式下可修改交换机的全局配置,例如 全局模式下修改设备名
switch#config terminal
switch(config)#
4、接口模式
在全局模式下输入“interface fastethernet0/1”(可简写“int f0/1”)命令,在该模式下所有配置都是针对0/1这个接口设置的,例如给0/1接口设置IP,这个地址只属于接口0/1
switch(config)#interface fastethernet 0/1
switch(config-if)#
含义如下:
interface 进入接口模式所必须的关键字
fastethernet:接口类型,fastethernet 表示快速以太网,百兆以太网
ethernet(简写e)表示以太网,十兆以太网
gigabitethernet(简写gi)千兆以太网
tengigabitethernet(简写te)万兆以太网
0/1:0表示模块号,就是第0号模块,1表示端口号,一个交换机上可以拥有多个模块
如何退出模式呢,从特权模式回到用户模式输入“disable”无论在哪个模式下输入“exit”就返回到上一个模式,在“全局模式”或者“接口模式”输入“end”就会返回到特权模式下
补齐命令的建用“Tab”
hostname用于配置设备名的,可简写“host”
switch(config)#host sw1
sw1(config)#
show命令,显示信息,简写“sh”
switch#show int f0/1 查看0/1接口的具体信息
3.3 ARP协议
3.3.1 ARP概述
在局域网中,交换机是通过MAC地址进行通信的,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(地址解析协议)的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。
- PC1想发送数据给PC2,首先先检查自己的ARP缓存表,ARP缓存表是电脑存储在内存中的一个IP地址和MAC地址对应表。如果要查找的MAC地址不在表中,ARP会发送一个广播,从而找到目的MAC地址。使用“arp -a”查看ARP缓存表
经查看PC1的缓存表里没有PC2的MAC地址,这时PC1就会发送一个ARP广播请求。用于找到目的MAC地址
- 主机PC1发送ARP请求信息,ARP请求目的地址为MAC广播地址(FF-FF-FF-FF-FF-FF)的广播帧,这时所有的设备都能收到该请求。在ARP请求中包含了PC1的IP地址和MAC地址
- 交换机收到广播地址后,发现是MAC地址广播,这时候交换机会把这个广播发送给所有主机除了PC1,主机接收到数据帧后,进行IP地址比较,如果PC1中发送的目标IP与自己的IP不同,就会丢弃该数据包,而只有PC2主机会在自己ARP中缓存PC1的IP地址和MAC地址对应的关系,同时PC2也会发送一个ARP应答信息,来告诉PC1自己的MAC地址(这个数据帧是单播)
- PC1接收到这个回应的数据帧后,在自己的缓存表中添加PC2的IP地址和MAC地址,之后PC1和PC2就使用单播方式通信了
4.1 路由原理
路由器工作在网络层,它的重要作用是为数据包选择最佳路径,最终送达目的地。
在一个网段中,数据包可以很容易的从源主机到达目标主机,如果一台计算机要和不同网段主机通信,数据包就需要经过路由器了。
如下图,主机A和主机B所在的网段被多个路由器隔开了,这是A和B通信就要经过这些中间路由器,这就要面临一个很重要的问题----如何到达目的地。
数据包从A到B有很多条路径可以选择,但是要在这些路径中选择一条快速而且稳定的路径来转发数据包,为了尽可能的提高网络访问速度,就需要有一种方法来判断从源主机到达目标主机所经过的最佳路径,这就是路由
4.1.1 路由器工作原理
如果局域网中的计算机要和外面的计算机通信,只要把请求提交给和路由器相连的接口即可,接下来的工作就由路由器来完成。所以路由器也可以理解成是网络中的中转站。
那么路由器是如何进行数据包的转发呢,就像一个人要去某个地方,在他的脑海里要有一张地图一样,在路由器里也有一张地图,这个地图就是路由表
在路由表中,包含该路由器掌握掌握的所有目的的网络地址,以及通过此路由器到达这些网络的最佳路径。这个最佳路径就是路由器的某个接口或下一跳路由器IP地址。这是由于路由表的存在,路由器才可以高效地进行数据包的转发。
将192.168.1.0/24简写为1.0
- 主机1.1发送一个数据包给主机4.1,因为IP地址不在同一网段,所以主机会将数据包发送给本网段的网关路由器A
- 路由器A接收到数据包,先看看数据包中的目标IP地址,在查找自己的路由表。数据包的目标IP地址是4.1,属于4.0网段,路由器A在路由表中查到4.0网段是从S0口转发出去的,于是路由器A将数据包从S0接口转发出去
- 网络中的每个路由器都是按这样步骤转发数据的,直到到达路由器B,再用同样的转发方法从S0口转发出去,最后主机4.1收到数据包
在转发过程中,如果路由表中没有找到数据包的目的地址,会根据路由器的配置转发到默认接口或者给用户返回信息“目标地址不可达”。
4..2 路由表形成
路由表是在路由器中维护的路由条目的一个集合,路由器根据路由表做路径选择。路由表是怎样形成的呢,这需要从直连网段和非直连网段两个方面来理解了
- 直连网段:当在路由器上配置了接口的IP地址,并且接口状态为up时,路由表中出现直连网段。
- 非直连网段:对于两个或者两个以上的路由器就需要配置静态或者动态路由条目了
4.2.1 静态路由
静态路由是由管理员在路由器中手动配置的固定路由,缺乏灵活性
如果路由器A需要将数据转发到非直连网段192.168.1.0,就需要在路由器A上添加静态路由条目。
在路由器A上添加静态路由必须要指明下吗的内容
- 要到达的目的网络是192.168.1.0/24
- 与路由器A直连的下一个路由器B的接口IP地址或者路由器A的本地接口(本地接口指的是路由器A要从哪个接口转发数据包)
- 静态路由是手工配置的,一般用于网络规模不大、拓扑结构相对固定的网络中
- 静态路由是单向的,要想实现双方都能通信,必须配置双向的静态路由
4.2.2 默认路由
默认路由是一种特殊的静态路由,当路由表中与数据包的目的地址之间不匹配,如果没有默认路由,那么目的地址在路由表中没有匹配的数据包就会丢弃该包
默认路由在有些时候是非常有效的,当有末梢网络的时候,(末梢网络可以比喻成边缘网络,校园网、企业网就是)
那么什么是末梢网络呢?就是只有一个唯一的路径能够到达其他网络。如上图192.168.1.0就是一个末梢网络,192.168.1.0这个网络中的电脑要访问其他的网络时候就必须要通过路由器B和路由器A,没有第二个路径,所以我们要在路由器B上配置一条默认路由
4.3 配置静态路由和默认路由
4.3.1 静态路由
router(config)#ip route network mask {address|interface}
- network 目的地网络段
- mask 子网掩码
- address 到达目的网络经过的下一跳路由器接口地址
- interface 到达目的网络的本地接口地址
4.3.2 默认路由
router(config)#ip route 0.0.0.0 0.0.0.0 address
0.0.0.0 0.0.0.0 代表任何网络
address 到达目的网络经过的下一跳路由器接口地址
配置图例
1、
R1路由器的接口配置ip地址
R1>en 进特权模式
R1#conf t 进全局模式
R1(config)#interface fastEthernet 0/0 进f0/0接口模式
R1(config-if)#ip address 192.168.2.1 255.255.255.0 给f0/0接口配置ip地址
R1(config-if)#no shutdown 将路由器接口启用
R1(config-if)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
查看路由器的接口ip配置信息
R1#show ip interface fastEthernet 0/0
R1#show ip interface fastEthernet 0/1
补充:删除接口的ip配置
R1(config-if)#no ip address
R2路由器的接口配置ip地址(略)
R1配置静态路由和默认路由
静态路由
默认路由
查看路由表
show ip route 查看R1的路由表
C代表直连网段路由条目
S表示配置的是静态路由
S*表示默认路由
扩展:删除路由条目
R1(config)#no ip route 192.168.3.0 255.255.255.0 192.168.1.2
R2配置静态路由和默认路由
ping 192.168.2.2 可以ping通
2、
R1路由器的接口配置ip地址
R1>en 进特权模式
R1#conf t 进全局模式
R1(config)#interface fastEthernet 0/0 进f0/0接口模式
R1(config-if)#ip address 192.168.2.2 255.255.255.0 给f0/0接口配置ip地址
R1(config-if)#no shutdown 将路由器接口启用
R1(config-if)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip address 192.168.3.1 255.255.255.0
R1(config-if)#no shutdown
192.168.1.0网段是公司内部网段,R1是公司的网关路由器,R2是互联网中的路由器,连接互联网后,应该如何配置才能使公司内部访问互联网
路由器接口配置IP地址省略,给R1和R2配置路由表
R1
R2
互联网中的路由条目有成千上百万条,在上图中无论内网数据包是什么,都可以从R1路由器转发出去,所以用默认路由进行配置,而R2路由器的目标网络很明确就是192.168.1.0网段,因此配置静态路由就可以了
5.1 VLAN概念和优势
在传统的以太网中,所有的用户都在同一个广播域中,当网络规模较大的时候,广播包的数量会急剧增加,当广播包的数量占到总量的30%时,网络的传输效率将会明显下降。特别是当某个网络设备出现故障后,就会不停的向网络发送广播,这样就会形成广播风暴,是网络瘫痪。那应该怎么解决这个问题呢
我们可以使用分隔广播域的方法来解决,分隔广播域有两种方法
- 物理分隔 把网络划分为若干个小网络,然后使用能隔离广播的路由器将不同的网络连接起来通信
- 逻辑分隔 把网络从逻辑上分为若干个虚拟网络,即VLAN(虚拟局域网)。VLAN工作在OSI参考模型的数据数据链路层,一个VLAN就是一个交换网络,其中的所有用户都在同一个广播域中,各VLAN通过路由设备的连接实现互相通信
物理分隔一般不用,只用逻辑分隔
VLAN的优势
- 控制广播 每个vlan都是一个独立的广播域,这样就减少了广播对网络带宽的占用,提高了网络的传输效率,并且一个VLAN出现广播风暴不会影响其他的VLAN
- 增强网络安全性 由于只能在同一个VLAN内的端口之间交换数据,不同VLAN的端口之间不能直接访问,因此通过划分VLAN可以限制个别主机访问服务器等资源,提高网络的安全性
5.1.1 静态VLAN
静态VLAN也是基于端口的VLAN,是目前比较常见的VLAN划分方式。
静态VLAN即明确指定交换机的端口属于哪个VLAN,这需要网络管理员手动配置。当用户主机连接到交换机端口上时,就被分配到了对应的VLAN中
这种端口和VLAN的映射只在本交换机有效,而交换机之间不能共享这一信息
5.1.2 静态VLAN的配置
1、VLAN的范围
思科交换机最多能支持4096个VLAN
VLAN的ID范围 | 范围 | 仅限系统使用,用户不能查看和使用这些VLAN |
1 | 保留 | Cisco默认的VLAN,用户能够使用该VLAN,但不能删除它 |
2--1001 | 正常 | 用户以太网的VLAN,用户可以创建、使用和删除这些VLAN |
1002--1005 | 正常 | 用于FDDI的令牌环的cisco默认VLAN,用户不能删除这些vlan |
1006--1024 | 保留 | 仅限系统使用,用户不能查看和使用这些VLAN |
1025--4094 | 扩展 | 仅用于以太网VLAN |
根据不同型号的交换机所支持的VLAN数目不同。例如思科2960最多能够支持255个VLAN
2、VLAN的基本配置
在交换机上配置基于端口的VLAN时,步骤如下
- 创建VLAN
- 把交换机的端口加到相应的VLAN中
- 验证VLAN的配置
创建VLAN有两种方法:
- VLAN数据库模式,此模式只支持VLAN正常范围(1--1005),命令如下
第一步 vlan database 进入VLAN配置状态
第二步 vlan id 创建VLAN号及VLAN名,vlan名可选
第三步 exit 退出数据库
- 全局配置模式,对于思科交换机来说
第一步 conf t
第二步 vlan id 输入一个vlan号,进入vlan配置状态
第三步 exit或者end 退出
3、全局模式下创建一个ID为20的VLAN
Switch#configure terminal
Switch(config)#vlan 20
Switch(config-vlan)#exit
4、删除vlan20,命令“no vlan id号”
Switch(config)#no vlan 20
5、数据库模式下创建VLAN,以后用到GNS3模拟器,此模拟器只支持在数据库模式下创建VLAN
Switch#vlan database 特权模式下进入vlan数据库
Switch(vlan)#vlan 20
Switch(vlan)#no vlan 20 删除vlan20
5.1.3 端口分配到VLAN中
第1步 | interface fastEthernet 端口ID | 进入要分配的端口 |
第2步 | Switchport access vlan ID | 把端口配到某个VLAN中 |
第3步 | exit或者end | 退出 |
- 例如将端口0/1加入到VLAN2中
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport access vlan 2
把端口还原默认到VLAN
switch(config)#default interface fastEthernet 0/1把0/1还原到默认的VLAN中
- 查看VLAN的配置命令
switch#sh vlan-switch
- VLAN配置实例
在交换机上配置VLAN10、VLAN20,将交换机的端口5--10添加到VLAN10中,将交换机的端口11-15添加到VLAN20中
switch#vlan database
switch(vlan)#vlan 10
switch(vlan)#vlan 20
switch(config)#interface range fastEthernet 0/5 - 10 同时进入到5--10端口
Switch(config-if-range)#switchport access vlan 10
switch(config-if-range)#exit
switch(config)#interface range fastEthernet 0/11 - 15 同时进入11--15端口
switch(config-if-range)#switchport access vlan 20
查看VLAN配置信息
switch#show vlan-switch
5.2 VLAN Trunk
当网络中有多台交换机时,位于不同交换机上的相同VLAN的主机之间是如何通信的呢,这时候就需要Trunk了
5.2.1 Trunk作用
在两台交换机SW1和SW2上分别创建了VLAN10、VLAN20,如何才能让连接在不同交换机上的相同VLAN的主机通信呢
如果为每个VLAN都连接一条物理链路,那么两台交换机之间有几个VLAN通信,就需要在两台交换机之间连接几条物理链路。
这种连接方式的扩展性有很大的问题,随着VLAN数量增加,就需要在两台交换机之间连接多条物理链路,这样会占用很多个交换机端口,所以不可取
例如生活中运送货物,为了使货物到达目的地能被正确的分开,通常做法是在货物上贴上不同标签。那么在VLAN中,由于不同VLAN的VLAN号不同,实际上可以只使用一条中继链路,将属于不同VLAN的数据帧打上不同的标识即可
在交换网络中,有两种类型链路:接入链路和中继链路
- 接入链路:通常属于一个VLAN。主机与交换机之间连接的链路就是接入链路
- 中继链路:可以承载多个VLAN。R1和R2之间的链路就是中继链路。中继链路常用来将一台交换机连接到其他交换机上
Trunk(干道、 中继)的作用就是使同一个VLAN能够跨交换机通信
在VLAN跨交换机通信的过程中,数据帧会有哪些哪些变化呢
A B
- 当VLAN10中的主机A发送数据帧给主机B时,主机A发送的数据帧是普通的数据帧
- 交换机SW1接收数据帧,知道这个数据帧来自VLAN10,而且是要转发给交换机SW2,于是就会在数据帧中打上VLAN10标识,然后发送给交换机SW2
- 交换机SW2接收到带有VLAN10标识的数据帧后,根据目标MAC地址,得知数据帧是发送给主机B的,就删除VLAN标识还原为普通数据帧,然后转发给主机B
VLAN标识协议分为两种:ISL、802.1q
ISL:思科私有协议,只能用在思科交换机之间
802.1q:思科交换机与其他厂商交换机通信就要使用标准的802.1q协议
5.2.2 Trunk命令
- 进入端口选择封装类型
R1(config-if)#switchport trunk encapsulation dot1q 这一步骤不需要设置,接口默认封装类型是“802.1q(dot1q)”
- 将交换机之间相连的接口设置为trunk
R1(config-if)#switchport mode trunk
实验图
路由器充当PC
R4创建VLAN10和VLAN20,0/15端口开启Trunk,把0/1加到VLAN10,0/2加到VLAN20
R5创建VLAN10和VLAN20,0/15端口开启Trunk,把0/1加到VLAN10,0/2加到VLAN20
R4配置
switch#vlan database
switch(vlan)#vlan 10
switch(vlan)#vlan 20
switch(config)#int f0/1
switch(config-if)#switchport access vlan 10
switch(config-if)#no sh
switch(config)#int f0/2
switch(config-if)#switchport access vlan 20
switch(config-if)#no sh
switch(config)#int f0/15
switch(config-if)#switchport mode trunk
R5配置
switch#vlan database
switch(vlan)#vlan 10
switch(vlan)#vlan 20
switch(config)#int f0/1
switch(config-if)#switchport access vlan 10
switch(config-if)#no sh
switch(config)#int f0/2
switch(config-if)#switchport access vlan 20
switch(config-if)#no sh
switch(config)#int f0/15
switch(config-if)#switchport mode trunk
5.3 三层交换机
5.3.1、二层交换机的虚接口
我们知道,路由器的物理接口上可以配置IP地址,那么,二层交换机是否可以?答案是肯定的,配置如下
交换机的物理端口是不能配置IP的,所以要在虚接口来配置IP,二层交换机配置IP地址后,就可以进行远程管理了。无论从哪个物理接口连接,只要该接口可以正常通信且属于VLAN1,都可以远程管理交换机
这里的interface vlan 1就是一个虚接口,只要在交换机上开启虚接口,并配置IP地址,外部主机就可以通过属于该vlan的物理接口访问
5.3.2、三层交换机虚接口
三层交换机通过硬件来交换和路由选择数据包,三层交换机就等于是二层交换加上三层转发,所以它具备路由功能,那么两个VLAN之间可以互相访问,每一个VLAN虚接口就是该网段的网关。如下图
交换机其中四个接口属于VLAN10,另外四个接口属于VLAN20,如果交换机已经配置了两个VLAN的虚接口,就好像在交换机的内部虚拟出这两个VLAN的网关。当数据从属于VLAN10的接口进入后,会映射到VLAN10的虚接口,从而找到自己的网关
5.4 三层交换机配置
1、三层交换机在默认情况下就是一个普通的二层交换机,并没有路由功能,如果要在三层交换机上配置路由,需要在交换机上启动路由功能
sw1(config)# ip routing
2、配置虚接口的IP地址
sw1(config)# interface vlan ID号
sw1(config-if)# ip address ip地址 子网掩码
sw1(config-if)# no shutdown
3、三层交换机端口默认是二层端口,如果配置IP地址,需要开启路由端口
sw1(config-if)#no switchport 开启路由端口 sw1(config-if)#switchport 开启交换端口
例子
配置步骤:
SW1创建VLAN10、VLAN20,配置虚接口IP地址,开启Trunk和路由功能,添加路由表
SW2 创建VLAN10、VLAN20,把接口添加到各自VLAN,开启Trunk
R3 设置IP和路由表
- SW1配置:
- 开启路由功能
sw1(config)#ip routing
- 创建vlan10、20
sw1#vlan database
sw1(vlan)# #vlan 10
sw1(vlan)# #vlan 20
- 0/0端口开Trunk
sw1(config)#int f0/0
sw1(config-if)#switchport mode trunk
sw1(config-if)#no shutdown
- 给vlan10、20配IP
sw1(config)#interface vlan 10
sw1(config-if)#ip add 192.168.10.1 255.255.255.0
sw1(config-if)#no shutdown
sw1(config)#interface vlan 20
sw1(config-if)#ip add 192.168.20.1 255.255.255.0
sw1(config-if)#no shutdown
- 给0/1口配IP
sw1(config)#int f0/1
sw1(config-if)#no switchport
sw1(config-if)#ip add 192.168.1.1 255.255.255.0
sw1(config-if)#no shutdown
- 添加路由表
sw1(config)#ip route 192.168.2.0 255.255.255.0 192.168.2.1
- R3配置
- 给0/0口配IP
R3(config)#int f0/0
R3(config-if)#ip add 192.168.1.2 255.255.255.0
R3(config-if)#no shutdown
- 给1/0口配IP
R3(config)#int f1/0
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#no shutdown
- 添加路由条目
R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1
- PC3配置
- 1/0口配置IP、添加网关
R6(config)#no ip routing 关闭路由功能,模拟PC机
R6(config)#int f1/0
R6(config-if)#ip add 192.168.2.2 255.255.255.0
R6(config-if)#no shutdown
R6(config)#ip default-gateway 192.168.2.1 添加默认网关
- SW2配置
- 0/0口开Trunk
sw2(config)# int f0/0
sw2(config-if)#switchport mode trunk
sw2(config-if)#no shutdown
- 创建vlan10、20
sw2#vlan database
sw2(vlan)#vlan 10
sw2(vlan)#vlan 20
- 0/1和0/2加入到vlan10、20
sw2(config)#int f0/1
sw2(config-if)#switchport access vlan 10
sw2(config-if)#no shutdown
sw2(config)#int f0/2
sw2(config-if)#switchport access vlan 20
sw2(config-if)#no shutdown
- PC1配置
pc1(config)#int f0/0
pc1(config-if)#ip add 192.168.10.2 255.255.255.0
pc1(config-if)#no shutdown
pc1(config)#ip default-gaway 192.168.10.1
PC2配置
pc2(config)#int f0/0
pc1(config-if)#ip add 192.168.20.2 255.255.255.0
pc1(config-if)#no shutdown
pc1(config)#ip default-gaway 192.168.20.1
pc1可以ping通192.168.2.2
6.1 NAT概念
随着网络发展,公网IP地址的数量越来越少,为了起到缓解并且保护公司内部服务器,就用到了网络地址转换(NAT)
NAT(网络地址转换)通过将内部网络的私网IP地址转换成全球能公认的IP地址,使得内部网络可以连接到互联网中,比如:家里用的网络就是通过NAT转换上网的
6.1.1 NAT的实现方式
- 静态转换
- 动态转换
- 端口地址转换
- 静态转换:就是将内部网络的私有IP地址转换为公用合法的IP地址,IP地址的对应关系是一对一的,而且是不变得,某个私有IP地址只转换为某个固定的合法的外部IP地址。例如:有5个私网地址需要上网,公网IP就必须有5个
- 动态转换:指将内部网络的私有地址转换为公网地址时,IP地址的对应关系是不确定的、随机的,不过动态转换也是一对一的,当私网地址的数量少于公网IP时,才能使用动态转换
- 端口地址转换:是改变外出数据包的源IP地址和源端口号,并进行端口转换。内部网络的所有主机均可共享一个合法的公网IP地址来实现互联网的访问,同时也是目前使用最多的联网方式
NAT到底是怎么实现的呢,如下图
内部网络中的PC使用私有地址192.168.1.2访问internet上的服务器203.51.23.55。PC向服务器发送数据包时,数据包经过一台运行NAT的路由器。NAT将数据包中的私有地址(192.168.1.2)转换成一个公网地址(125.25.65.3),然后将数据包转发出去。服务器收到PC发送的数据包后,服务器给PC发送应答时,数据包中的目的地址是(125.25.65.3)----NAT转换后的公网地址,数据包再次经过路由器时,NAT将目的地址转换成PC使用的私有地址(192.168.1.2)
NAT对于地址转换中的终端设备是透明的,pc只知道自己的IP地址是192.168.1.2,并不知道125.25.65.3,服务器只知道PC的IP地址是125.25.65.3,不知道192.168.1.2
- 内部局部地址:在内部网络中分配给主机的私有IP地址
- 内部全局地址:该地址通常是互联网通用的公网IP地址,由ISP提供
- 外部全局地址:外部网络上的主机分配的IP地址,该地址通常也是互联网公认的IP
- 外部局部地址:也是一个私有IP地址,只不过是在另一个局域网中
6.1.2 静态转换和动态转换
- 内部主机10.1.1.1和外部主机B建立了一条连接,边界路由器从主机10.1.1.1接收到第一个数据包,将检查NAT转换表。
- 如果已经为该地址配置了静态地址转换,或者该地址的动态地址转换已经建立,那么边界路由器使用所选的内部全局地址(202.168.2.2)来替换内部局部地址(10.1.1.1)并转发该数据包,否则路由器会决定对地址10.1.1.1进行转换。路由器将从动态地址池中集中分配一个合法地址,并建立从内部局部地址到内部全局地址的映射
- 主机B收到该数据包后,回应给内部全局地址202.168.2.2,然后对内部局部地址10.1.1.1进行应答
- 当边界路由器接收到目的地址为内部全局地址的数据包时,路由器将用该内部全局地址通过NAT转换表查找出内部局部地址,然后,路由器将数据包中的目的地址转换成10.1.1.1,并将数据包发送给10.1.1.1。
配置静态NAT例子
外部主机: 155.34.2.3
外部路由器:f1/0 155.34.2.2
f0/0 61.159.62.129
NAT路由器:f0/0 61.159.62.130
f1/0 192.168.1.1
pc1 192.168.1.1
pc2 192.168.1.3
公司从运营商处获得的公网IP地址的范围是61.159.62.130---61.159.62.132,NAT路由器在广域网的地址是61.159.62.130,可用于地址转换的地址是61.159.62.131、61.159.62.132。
(路由器配置IP地址省略)
NAT转换语法如下:
router(config)#ip nat inside source static local-ip global-ip [extendable]
- local-ip:内部局部地址
- global-ip:内部全局地址
- extendable:(可选)表示允许同一个内部局部地址映射到多个内部全局地址。
- inside:表示从inside口进入的流量对源地址(source)进行静态转换
- 外部路由器和NAT路由器配置路由表
外部路由器:R2(config)#ip route 192.168.1.0 255.255.255.0 61.159.62.130
NAT路由器:R1(config)#ip route 0.0.0.0 0.0.0.0 61.159.62.129
- 在NAT路由器上配置静态NAT
R1(config)#ip nat inside source static 192.168.1.2 61.159.62.131
将内部局部地址192.168.1.2转换为内部全局地址61.159.62.131
R1(config)#ip nat inside source static 192.168.1.3 61.159.62.132
将内部局部地址192.168.1.3转换为内部全局地址61.159.62.132
3) 在NAT路由器的内部和外部端口启用NAT
有NAT功能的路由器需要有一个内部端口(inside)和一个外部端口(outside),内部端口连接的网络用户使用的是内部IP地址,外部端口连接的是外部网络,NAT路由器必须在两个端口上启用NAT
R1(config)#int f1/0
R1(config-if)#ip nat inside 内部端口启用NAT
R1(config)#int f0/0
R1(config-if)#ip nat outside 外部端口启用NAT
R1#show ip nat translations :查看地址转换信息
内部全局地址 内部局部地址 外部局部地址 外部全局地址
pc1 ping 外部主机地址转换情况
内部局部地址转换成内部全局地址
6.2 PAT端口地址转换
6.2.1 使用外部全局地址
将内网192.168.1.0网段转换成NAT路由器对应公网的IP地址 61.159.62.3
路由器配置IP省略
- NAT路由器定义内部访问的ACL列表
NAT(config)#access-list 1 permit 192.168.1.0 0.0.0.255
- 定义合法的IP地址池
NAT(config)#ip nat pool onlyone 61.159.62.3 61.159.62.3 netmask 255.255.255.0
地址池中起始地址和结束地址用的同一个地址
- 复用动态IP地址转换
NAT(config)#ip nat inside source list 1 pool onlyone overload
以端口复用方式,将ACL1中的局部地址转换为onlyone地址池中的内部全局地址
- NAT路由器的内部和外部端口启用NAT
NAT(config)#int f1/0
NAT(config-if)#ip nat outside
NAT(config)#int f0/0
NAT(config-if)#ip nat inside
pc1转换地址
pc2转换地址
6.2.2 复用路由器外部接口IP
有时候,只有一个外部IP,并且这个地址已经被路由器的外部接口使用,在这种情况下,在地址转换过程中,也可以直接使用外部接口的IP地址作为转换后的地址
由于直接使用外部接口地址,所以不在定义地址池了
- 定义内部访问列表
NAT(config)#access-list 1 permit 192.168.1.0 0.0.0.255
- 以端口复用的方式,将ACL1中的私有地址转换为路由器外部接口IP地址
NAT(config)#ip nat inside source list 1 interface fastEthernet 1/0 overload
- 在内部和外部端口启用NAT
NAT(config)#int f1/0
NAT(config-if)#ip nat outside
NAT(config)#int f0/0
NAT(config-if)#ip nat inside
pc1访问外部主机
pc2访问外部主机
默认情况下,如果在一定时间内没有使用动态NAT条目,就会因超时而被取消
有时因为NAT条目过多会导致设备性能下降,可以删除动态条目,静态是删除不了的
NAT#clear ip nat translation *