CCNA笔记

Internetworking Basics

把1个大的网络分成几个小点的网络称之为网络分段(network segment),这些工作由routers,switches和bridges来完成

引起LAN拥塞的可能的原因是:
1.太多的主机存在于1个广播域(broadcast domain)
2.广播风暴
3.多播
4.带宽过低

在网络中使用routers的优点:
1.它们默认是不会转发广播的
2.它们可以基于layer-3(Network layer)的信息来对网络进行过滤

switches的主要目的:提高LAN的性能,提供给用户更多的带宽

冲突域(collision domain):Ethernet术语之1,处于冲突域里的某个设备在某个网段发送数据包,强迫该网段的其他所有设备注意到这个包.而在某1个相同时间里,不同设备尝试同时发送包,那么将在这个网段导致冲突的发生,降低网络性能

bridges在某种意义上等同与switches,不同的地方是bridges只包括2到4个端口(port),而switches可以包括多达上百端口.但是相同的地方是它们都可以分割大的冲突域为数个小冲突域,因为1个端口即为1个冲突域,但是它们仍然处在1个大的广播域中.分割广播域的任务,可以由routers来完成

Internetworking Models

早期各个网络厂商拥有私有网络,不便于同其他厂商的网络进行通讯.于是,在20世纪70年代末期,ISO组织创建了OSI(Open System Interconnection)参考模型.

OSI参考模型,用于帮助不同厂家创建可与对方进行协同工作的网络设备和软件等等,最大的特点是分层.但是它仍然只是个参考模型而非物理模型

Advantages of Refernce Models

OSI参考模型分层化的优点:
1.允许多厂家共同发展网络标准化组件
2.允许不同类型的网络硬件和软件相互通信
3.防止其中某层的变化影响到其他层,避免牵制到整个模型

The OSI Reference Model

OSI参考模型分为7层2组;最高3层定义了端用户如何进行互相通信;底部4层定义了数据是如何端到端的传输.最高3层,也称之为上层(upper layer),它们不关心网络的具体情况,这些工作是又下4层来完成

整个参考模型由高到低分为:
1.Application
2.Presentation
3.Session
4.Transport
5.Network
6.Data link
7.Physical

在整个OSI参考模型上运行的网络设备有:
1.网络管理工作站(NMS)
2.网页和应用程序服务器
3.网关(gateways)
4.网络上的主机(hosts)

OSI参考模型每层的任务:
1.Application层:提供用户接口
2.Presentation层:表述数据;对数据的操作诸如加密,压缩等等
3.Session层:建立会话,分隔不同应用程序的数据
4.Transport层:提供可靠和不可靠的数据投递;在错误数据重新传输前对其进行更正
5.Network层:提供逻辑地址,用于routers的路径选择
6.Data Link层:把字节性质的包组成帧;根据MAC地址提供对传输介质的访问;实行错误检测,但是不实行错误更正
7.Physical层:在设备之间传输比特(bit);定义电压,线速,针脚等物理规范

OSI参考模型每层的功能:
1.Application层:提供文件,打印,数据库,和其他应用程序等服务
2.Presentation层:数据加密,压缩和翻译等等
3.Session层:会话控制
4.Transport层:提供端到端的连接
5.Network层:路由(routing)
6.Data Link层:组成帧
7.Physical层:定义物理拓扑结构

The Session Layer

The Session layer负责建立,管理,终止会话.也设备设备和节点(nodes)之间的会话控制.3种模式:simplex half duplex和full duplex

一些Session layer协议和接口的例子:
1.Network File System(NFS)
2.Structured Query Language(SQL)
3.Remote Procedure Call(RPC)
4.X Window
5.AppleTalk Session Protocol
6.Digital Network Architecture Session Control Protocol(DNA SCP)

The Transport Layer

The Transport layer把数据分段重新组合成数据流(data stream)

Flow Control

流控制(flow control)保证了数据的完整性,防止接受方的缓冲区溢出, 缓冲区溢出将导致数据的不完整.如果数据发送方传输数据过快,接受方将数据报(datagrams)暂时存储在缓冲区(buffer)里

可靠的数据传输采用了面向连接(connection-oriented)通信方式,保证:
1.接受方接受到被传输的段(segment)以后将发回确认(acknowledge)给发送方
2.任何没有经过确认的段将被重新传输
3.段在达到接受方之前应按照适当的顺序
4.可以进行管理的流控制技术用于避免拥塞,超载(overloading)和数据的丢失

Connection-Oriented Communication

面向连接式通信:发送方先建立会话(call setup)或者叫做3度握手(three-way handshake);然后数据开始传输;数据栓书完毕以后,终止虚电路连接(virtual circuit)

3度握手(面向连接回话)过程:
1.第一个请求连接许可的段用于要求同步,由发送方发送给接受方
2.发送方和接受方协商连接
3.接受方与发送方同步
4.发送方进行确认
5.连接建立,开始传输数据

如果发送方发送数据报过快,而接受方缓冲区已经满了,它会反馈1条not ready的信息给发送方,等待缓冲区里的数据处理完毕后会反馈条go的信息给发送方;于是发送方继续发送数据.这就是流控制的用途

如果任何数据段在传输的过程中丢失了,被复制了,或者损坏了,这将导致传输失败.这个问题的解决方法就得靠接受方反馈确认信息给发送方

Windowing

窗口(window)是指允许发送方不用等待接受方反馈确认的数据段,大小以字节(bytes)衡量,比如:如果1个TCP会话是以2字节的窗口建立的,传输时假如窗口从2字节增加为3字节,那么发送方将不用等待之前2字节的量的确认信息,直接以3字节的量传输

The Network Layer

the Network layer用于管理设备地址,跟踪网络上的设备位置,决定传输数据最好的路线.该层上有2种包(packets):
1.数据(data)
2.路由更新信息(route updates)

routers必须对每种路由协议保持1张单独的路由表,因为不同的路由协议根据不同的地址机制跟踪网络信息

路由表包含的一些信息:
1.interface:出口
2.度(metric)

routers的一些要点信息:
1.默认不转发广播和多播(multicast)包
2.根据逻辑地址决定下1跳(hop)
3.可以提供层2的桥接功能,可以同时路由同1个接口
4.提供VLANs的连接
5.可以提供Quality of Service(QoS)

The Data Link Layer

the Data Link layer负责数据的物理传输,错误检测,网络拓扑和流控制.这个意味着在数据LAN上将根据硬件地址来进行投递,还要把Network layer的包翻译成比特用于在Physical layer上传输

IEEE以太网(Ehernet)的Data Link layer有2个子层:
1.Media Access Control(MAC)802.3:这层定义了物理地址和拓扑结构,错误检测,流控制等.共享带宽,先到先服务原则(first come/first served)
2.Logical Link Control(LLC)802.2:负责识别Network layer协议然后封装(encapsulate)数据.LLC头部信息告诉Data Link layer如何处理接受到的帧,LLC也提供流控制和控制比特的编号

Switches and Bridges at the Data Link Layer

第二层的设备switches被认为是基于硬件的bridges,因为采用的是1种叫做application-specific integrated circuit(ASIC)的特殊硬件.ASICs可以在很低的延时(latency)里达到gigabit的速度;而bridges是基于软件性质的

延时:1个帧从进去的端口到达出去的端口所耗费的时间

透明桥接(transparent bridging):如果目标设备和帧是在同1个网段,那么层2设备将堵塞端口防止该帧被传送到其他网段;如果是和目标设备处于不同网段,则该帧将只会被传送到那个目标设备所在的网段

每个和switches相连的网段必须是相同类型的设备,比如你不能把令牌环(Token Ring)上的主机和以太网上的主机用switches混合相连,这种方式叫做media translation,不过你可以用routers来连接这样不同类型的网络

在LAN内使用switches比使用hubs的好处:
1.插入switches的设备可以同时传输数据,而hubs不可以
2.在switches中,每个端口处于1个单独的冲突域里,而hubs的所有端口处于1个大的冲突域里,可想而知,前者在LAN内可以有效的增加带宽.但是这2种设备的所有端口仍然处于1个大的广播域里

The Physical Layer

the Physical layer负责发送和接受比特.比特由1或者0组成.这层也用于识别数据终端装备(data terminal equipment,DTE)和数据通信装备(data communication equipment,DCE)的接口

DCE一般位于服务商(sevice provider)而DTE一般是附属设备.可用的DTE服务通常是经由modem或者channel service unit/data sevice unit(CSU/DSU)来访问

hubs:其实是多端口的repeaters,重新放大信号用,解决线路过长,信号衰减等问题.

1个物理星形(star)拓扑结构,实际在逻辑上是逻辑总线(bus)拓扑结构

Ethernet Networking

以太网采用1种争夺(contention) 介质访问方法,这个机制使得在1个网络上所有主机共享带宽.采用了Physical layer和Data Link layer的规范.它采用1种带冲突检测的载波监听多路访问的(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)机制

CSMA/CD:帮助共享带宽的设备避免同时发送数据,产生冲突的协议.补偿算法(Backoff algorithms)用于决定产生冲突的2台设备何时重新传输数据

CSMA/CD网络带来的问题:
1.延迟(delay)
2.低吞吐量(throughput)
3.拥塞

Half- and Full-Duplex Ethernet

half-duplex(半双工)以太网:它只采用1对线缆.如果hubs与switches相连,那么必须以半双工的模式操作,因为端工作站必须能够检测冲突.半双工以太网带宽的利用率只为上限的30%-40%

full-duplex(全双工)以太网:采用2对线缆,点对点(point-to-point)的连接,没有冲突,双倍带宽利用率

全双工以太网可以使用在以下的3种形势里:
1.switch和host相连
2.switch和switch相连
3.用交叉线缆(crossover cable)相连的host和host

自动检测机制(auto-detection mechanism):当全双工以太网端口电源启动时,它先与远端相连,并且与之进行协商.看是以10Mbps的速度还是以100Mbps的速度运行;再检查是否可以采用全双工模式,如果不行,则切换到半双工模式

Ethernet at the Data Link Layer

4种类型的以太网帧:
1.Ethernet II
2.IEEE 802.2
3.IEEE 802.3
4.SNAP

Ethernet Addressing

MAC地址是烧录在Network Interface Card(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-24位是由厂家自己分配.25-47位,叫做组织唯一标志符(organizationally unique identifier,OUI).

OUI是由IEEE分配给每个组织.组织按高到低的顺序分配1个唯一的全局地址给每个网卡以保证不会有重复的编号.第47位为Individual/Group(I/G)位,当I/G位为0的时候,我们可以设想这个地址是MAC地址的实际地址可以出现在MAC头部信息;当I/G位为1的时候,我们可以设想它为广播或多播.第46位叫做G/L位,也叫U/L位.当这个位为0的时候代表它是由IEEE分配的全局地址;当这个位为1的时候,代表本地管理地址(例如在DECnet当中)

Ethernet Frames

第二层用于把第一层的比特连接成字节,再组成帧(frames)

3种介质访问方法的类型:
1.争夺(contention),用于在以太网中
2.令牌传递(token passing),用于在FDDI和Token Ring里
3.投票(polling),用于在IBM Mainframes和100VG-AnyLAN中

循环冗余校验(cyclic redundancy check,CRC):用于错误检测,而非错误更正

隧道(tunneling):把不同类型的帧封装在1个帧里

Ethernet II帧:
1.前导(preamble)字段:交替的1和0组成.5Mhz的时钟频率,8字节,包含7字节的起始帧分界符(start frame delimiter,SFD),SFD是10101011,最后1个字节同步(sync)
2.目标地址(destination address,DA):6字节
3.源地址(source address,SA):6字节
4.类型(type)字段:用于辨别上层协议,2字节
5.数据(data):64到1500字节
6.帧校验序列(frame check sequence,FCS):4字节,存储CRC值

802.3 Ethernet帧:
1.前导(preamble)字段:交替的1和0组成.5Mhz的时钟频率,8字节,包含7字节的起始帧分界符(start frame delimiter,SFD),SFD是10101011,最后1个字节同步(sync)
2.目标地址(destination address,DA):6字节
3.源地址(source address,SA):6字节
4.长度(length)字段:不能辨别上层协议,2字节
5.数据(data):64到1500字节
6.帧校验序列(frame check sequence,FCS):4字节,存储CRC值

802.2 and SNAP

因为802.3 Ethernet帧没有鉴别上层协议的能力(使用的是length字段),所以,它需要IEEE定义的802.2 LLC标准来帮它实现这个功能

802.2帧(SAP):
1.目标服务访问点(dest SAP)字段: 1个字节
2.源服务访问点(source SAP)字段: 1个字节
3.控制字段:1或2个字节
4.数据:大小可变

1个802.2帧是由802.3Ethernet帧加上LLC信息组成,这样它就可以辨别上层协议

802.2帧(SNAP):它有自己的协议来辨别上层协议
1.目标服务访问点(dest SAP)字段: 1个字节,总为AA
2.源服务访问点(source SAP)字段: 1个字节,总为AA
3.控制字段:1或2个字节,值总为3
4.OUI ID:3字节
5.类型(type)字段:2字节,辨别上层协议
6.数据:大小可变

Ethernet at the Physical Layer

一些原始的和扩展的IEEE 802.3的标准:
1.10Base2:Base是指基带传输技术,2指最大距离接近200米,实际为185米,10指10Mbps的速度,采用的是物理和逻辑总线拓扑结构,AUI连接器
2.10Base5:5指最大距离500米,10指10Mbps的速度,采用的是物理和逻辑总线拓扑结构,AUI连接器
3.10BaseT:10指10Mbps的速度,采用的是物理星形和逻辑总线拓扑结构, 3类UTP双绞线,RJ-45连接器,每个设备必须与hub或者switch相连,所以1个网段只能有1台主机
4.100BaseT:100指100Mbps的速度,采用的是物理星形和逻辑总线拓扑结构, 5,6或者7类UTP2对双绞线,RJ-45连接器, 1个网段1台主机
5.100BaseFX:100指100Mbps的速度,光纤技术,点对点拓扑结构,最大距离412米, ST或者SC连接器
6.1000BaseT:1000指1000Mbps的速度,光纤技术,点对点拓扑结构,最大距离412米, 5类UTP4对双绞线,最大距离100米

Ethernet Cabling

以太网线缆接法:
1.直通线(straight-through)
2.交叉线(crossover)
3.反转线(rolled)

Straight-Through Cable

直通线用于连接:
1.主机和switch/hub
2.router和switch/hub

直通线只使用1,2,3,6针脚,2端的连法是一一对应

Crossover Cable

交叉线用于连接:
1switch和switch
2.主机和主机
3.hub和hub
4.hub和switch
5.主机与router直连

交叉线只使用1,2,3,6针脚,2端的连法是1连3,2连6,3连1,6连2

Rolled Cable

反转线不是用来连接以太网连接的,它是用来连接主机与router的com口(console serial port)的,它采用1到8跟针脚,2端全部相反对应

当主机与router的console口用反转线连好后,启动Window系统里的HyperTerminal程序即可对router进行连接,其配置如下:
1.Bps:9600
2.Data bits:8
3.Parity:None
4.Stop bits:1
5.Flow control:none

Data Encapsulation

封装(encapsulation):把OSI参考模型每层自己的协议信息加进数据信息的过程,反之叫做解封装

协议数据单元(protocol data units,PDU):数据包括封装进去的信息在OSI参考模型每层的叫法:
1.Transport layer:segment
2.Network layeracket或者datagram
3.Data Link layer:frame
4.Physical layer:bits


Chapter2 Internet Protocols


TCP/IP and the DoD Model

DoD模型被认为是OSI参考模型的浓缩品,分为4层,从上到下是:
1.Process/Application layer
2.Host-to-Host layer
3.Internet layer
4.Network Access layer
其中,如果在功能上和OSI参考模型互相对应的话,那么:
1.DoD模型的Process/Application层对应OSI参考模型的最高3层
2.DoD模型的Host-to-Host层对应OSI参考模型的Transport层
3.DoD模型的Internet层对应OSI参考模型的Network层
4.DoD模型的Network Access层对应OSI参考模型的最底2层

The Process/Application Layer Protocols

Process/Application层包含的协议和应用程序有:
Telnet,FTP,X Windows,TFTP,SMTP,SNMP,NFS和LPD等等

Dynamic Host Configuration Protocol(DHCP)/BootP(Bootstrap Protocol)

动态主机配置协议(DHCP)服务器可以提供的信息有:
1.IP地址
2.子网掩码(subnet mask)
3.域名(domain name)
4.默认网关(default gateway)
5.DNS
6.WINS信息

The Host-to-Host Layer Protocols

Host-to-Host层描述了2种协议:
1.传输控制协议(Transmission Control Protocol,TCP)
2.用户数据报协议(User Datagram Protocol,UDP)

Transmission Control Protocol(TCP)

当1个主机开始发送数据段(segment)的时候,发送方的TCP协议要与接受方的TCP协议进行协商并连接,连接后即所谓的虚电路(virtual circuit),这样的通信方式就叫做面向连接(connection-oriented).面向连接的最大优点是可靠,但是它却增加了额外的网络负担(overhead)

User Datagram Protocol(UDP)

UDP协议的最他特点是无连接(connectionless),即不可靠,因为它不与对方进行协商并连接,它也不会给数据段标号,也不关心数据段是否到达接受方

Key Concepts of Host-to-Host Protocols

现在把TCP协议和UDP协议的一些特性做个比较:
1.TCP.协议在传送数据段的时候要给段标号;UDP协议不
2.TCP协议可靠;UDP协议不可靠
3.TCP协议是面向连接;UDP协议采用无连接
4.TCP协议负载较高;UDP协议低负载
5.TCP协议的发送方要确认接受方是否收到数据段;UDP反之
6.TCP协议采用窗口技术和流控制;UDP协议反之

Port Numbers

TCP和UDP协议必须使用端口号(port number)来与上层进行通信,因为不同的端口号代表了不同的服务或应用程序.1到1023号端口叫做知名端口号(well-known port numbers).源端口一般是1024号以上随机分配

The Internet Layer Protocols

在DoD模型中,Internet层负责:路由,以及给上层提供单独的网络接口

Internet Protocol(IP)

IP协议查找每个数据包(packets)的地址,然后,根据路由表决定该数据包下1段路径该如何走,寻找最佳路径

Internet Control Message Protocol(ICMP)

ICMP协议一样是工作在DoD模型的Internet层,IP协议使用ICMP协议来提供某些不同的服务,ICMP协议是一种管理协议

一些ICMP协议相关信息和事件:
1.目标不可达(destination unreachable):假如1个routers不能把IP协议数据报发送到更远的地方去,于是router将发送ICMP协议信息给数据报的发送方,告诉它说目标网络不可达
2.缓冲区已满(buffer full):假如router的缓冲区已经存满发送方发来的IP协议数据报了,它将发送ICMP协议信息给发送方并告诉它缓冲区已满,如果再继续接受的话将导致缓冲区溢出,造成数据丢失
3.跳(hops):IP协议数据报经过1个router,称为经过1跳
4.Ping(Packet Internet Groper):采用ICMP协议信息来检查网络的物理连接和逻辑连接是否完好
5.Traceroute:根据ICMP协议信息来跟踪数据在网络上的路径,经过哪些跳

Address Resolution Protocol(ARP)

地址解析协议(ARP)用于根据1个已知的IP地址查找硬件地址.它把IP地址翻译成硬件地址

Reverse Address Resolution Protocol(RARP)

RARP协议用于把MAC地址翻译成IP地址

IP Addressing

IP地址是软件地址,MAC地址是硬件地址,MAC地址是烧录在NIC里的,MAC地址用于在本地网络查找主机地址.IP地址是唯一的,也叫做网络地址(network address);硬件地址也叫节点地址(node address)

Network Address

网络地址分为5类:
1.A类地址:4个8位位组(octets).第一个octet代表网络号,剩下的3个代表主机位.范围是0xxxxxxx,即0到127
2.B类地址: 前2个octets代表网络号,剩下的2个代表主机位. 范围是10xxxxxx,即128到191
3.C类地址: 前3个octets代表网络号,剩下的1个代表主机位. 范围是110xxxxx,即192到223
4.D类地址:多播地址,范围是224到239
5.E类地址:保留,实验用,范围是240到255

Network Address:Special Purpose

一些特殊的IP地址:
1.IP地址127.0.0.1:本地回环(loopback)测试地址
2.广播地址:255.255.255.255
3.IP地址0.0.0.0:代表任何网络
4.网络号全为0:代表本网络或本网段
5.网络号全为1:代表所有的网络
6.节点号全为0:代表某个网段的任何主机地址
7.节点号全为1:代表该网段的所有主机
广播地址TCP/IP协议规定,主机号部分各位全为1的IP地址用于广播.所谓广播地址指同时向网上所有的主机发送报文,也就是说,不管物理网络特性如何,Internet网支持广播传输.如136.78.255.255就是B类地址中的一个广播地址,你将信息送到此地址,就是将信息送给网络号为136.78的所有主机.有时需要在本网内广播,但又不知道本网的网络号时,TCP/IP协议规定32比特全为1的IP地址用于本网广播,即255.255.255.255

Private IP Address

私有IP地址(private IP address):节约了IP地址是空间,增加了安全性.处于私有IP地址的网络称为内网,与外部进行通信就必须靠网络地址翻(network address translation,NAT)

一些私有地址的范围:
1.A类地址中:10.0.0.0到10.255.255.255.255
2.B类地址中:172.16.0.0到172.31.255.255
3.C类地址中:192.168.0.0到192.168.255.255

Broadcast Address

广播地址:
1.层2广播:FF.FF.FF.FF.FF.FF,发送给LAN内所有节点
2.层3广播:发送给网络上所有节点
3.单播(unicast):发送给单独某个目标主机
4.多播:由1台主机发出,发送给不同网络的许多节点

Introduction to Network Address Translation(NAT)

NAT一般都操作在Cisco router上,用于连接2个网络,同时把私有地址翻译公有地址

一些NAT的种类以及特点:
1.静态NAT(static NAT):本地地址和全局地址一一对应.这样的方式需要你拥有真正的Internet上的IP地址
2.动态NAT(dynamic NAT):把未注册的IP地址对应到已注册IP地址池中的某个IP地址上.你不必需要静态配置你的router使内外地址对应
3.超载(overloading):采用的最广泛的NAT配置类型.类似动态NAT,但是它是把1组未注册的IP地址根据不同的端口(ports)对应到1个已注册的IP地址上.因此,它又叫做端口地址翻译(port address translation,PAT)


Chapter3 IP Subnetting and Variable Length Subnet Masks(VLSM)
Subnetting Basics

子网划分(subnetting)的优点:
1.减少网络流量
2.提高网络性能
3.简化管理
4.易于扩大地理范围

How to Creat Subnets

如何划分子网?首先要熟记2的幂:2的0次方到9次方的值分别为:1,2,4,8,16,32,64,128,256和512.还有要明白的是:子网划分是借助于取走主机位,把这个取走的部分作为子网位.因此这个意味划分越多的子网,主机将越少

Subnet Masks

子网掩码用于辨别IP地址中哪部分为网络地址,哪部分为主机地址,有1和0组成,长32位,全为1的位代表网络号.不是所有的网络都需要子网,因此就引入1个概念:默认子网掩码(default subnet mask).A类IP地址的默认子网掩码为255.0.0.0;B类的为255.255.0.0;C类的为255.255.255.0

Classless Inter-Domain Routing(CIDR)

CIDR叫做无类域间路由,ISP常用这样的方法给客户分配地址,ISP提供给客户1个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,最大/32.但是你必须知道的1点是:不管是A类还是B类还是其他类地址,最大可用的只能为30/,即保留2位给主机位

CIDR值:
1.掩码255.0.0.0:/8(A类地址默认掩码)
2.掩码255.128.0.0:/9
3.掩码255.192.0.0:/10
4.掩码255.224.0.0:/11
5.掩码255.240.0.0:/12
6.掩码255.248.0.0:/13
7.掩码255.252.0.0:/14
8.掩码255.254.0.0:/15
9.掩码255.255.0.0:/16(B类地址默认掩码)
10.掩码255.255.128.0:/17
11.掩码255.255.192.0:/18
12.掩码255.255.224.0:/19
13.掩码255.255.240.0:/20
14.掩码255.255.248.0:/21
15.掩码255.255.252.0:/22
16.掩码255.255.254.0:/23
17.掩码255.255.255.0:/24(C类地址默认掩码)
18.掩码255.255.255.128:/25
19.掩码255.255.255.192:/26
20.掩码255.255.255.224:/27
21.掩码255.255.255.240:/28
22.掩码255.255.255.248:/29
23.掩码255.255.255.252:/30

Subnetting Class A,B&C Address

划分子网的几个捷径:
1.你所选择的子网掩码将会产生多少个子网?:2的x次方-2(x代表掩码位,即2进制为1的部分)
2.每个子网能有多少主机?: 2的y次方-2(y代表主机位,即2进制为0的部分)
3.有效子网是?:有效子网号=256-10进制的子网掩码(结果叫做block size或base number)
4.每个子网的广播地址是?:广播地址=下个子网号-1
5.每个子网的有效主机分别是?:忽略子网内全为0和全为1的地址剩下的就是有效主机地址.最后有效1个主机地址=下个子网号-2(即广播地址-1)

根据上述捷径划分子网的具体实例:
C类地址例子:网络地址192.168.10.0;子网掩码255.255.255.192(/26)
1.子网数=2*2-2=2
2.主机数=2的6次方-2=62
3.有效子网?:block size=256-192=64;所以第一个子网为192.168.10.64,第二个为192.168.10.128
4.广播地址:下个子网-1.所以2个子网的广播地址分别是192.168.10.127和192.168.10.191
5.有效主机范围是:第一个子网的主机地址是192.168.10.65到192.168.10.126;第二个是192.168.10.129到192.168.10.190

B类地址例子1:网络地址:172.16.0.0;子网掩码255.255.192.0(/18)
1.子网数=2*2-2=2
2.主机数=2的14次方-2=16382
3.有效子网?:block size=256-192=64;所以第一个子网为172.16.64.0,最后1个为172.16.128.0
4.广播地址:下个子网-1.所以2个子网的广播地址分别是172.16.127.255和172.16.191.255
5.有效主机范围是:第一个子网的主机地址是172.16.64.1到172.16.127.254;第二个是172.16.128.1到172.16.191.254

B类地址例子2:网络地址:172.16.0.0;子网掩码255.255.255.224(/27)
1.子网数=2的11次方-2=2046(因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11)
2.主机数=2的5次方-2=30
3.有效子网?:block size=256-224=32;所以第一个子网为172.16.0.32, 最后1个为172.16.255.192
4.广播地址:下个子网-1.所以第一个子网和最后1个子网的广播地址分别是172.16.0.63和172.16.255.223
5.有效主机范围是:第一个子网的主机地址是172.16.0.33到172.16.0.62;最后1个是172.16.255.193到172.16.255.223

Variable Length Subnet Masks(VLSM)

变长子网掩码(VLSM)的作用:节约IP地址空间;减少路由表大小.使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP. 关于更多的VLSM知识,可以去Google.com进行搜索

Troubleshooting IP Address

一些网络问题的排难
1.打开Windows里的1个DOS窗口,ping本地回环地址127.0.0.1,如果反馈信息失败,说明IP协议栈有错,必须重新安装TCP/IP协议
2.如果1成功,ping本机IP地址,如果反馈信息失败,说明你的网卡不能和IP协议栈进行通信


Chapter4 Introduction to the Cisco IOS
The Cisco Router User Interface

Cisco Internetwork Operation System(IOS)是Cisco 的routers和switches的内核

Cisco Router IOS

IOS的一些功能:
1.运载网络协议和功能
2.对产生高速流量的设备进行连接
3.增加网络安全性
4.提供网络的可扩展性来简易化网络的增长和冗余问题
5.可靠的连接网络资源

你可以通过以下方式进入IOS:
1.通过router的console口,用于本地
2.通过modem连接auxiliary(Aux)口,用于远程
3.通过VTY线路来telnet

Bringing Up a Router

当启动1个router的时候,大致将分为以下几个阶段:
1.开机自检(power-on self-test,POST)
2.如果1正常, 如果IOS存在的话,将从它的闪存(flash memory)查找和加载IOS到RAM中(2500系列不加载RAM中,直接从闪存中运行).闪存是1种电子可擦除只读存储器(electronically erasable programmable read-only memory,EEPROM)
3.如果1和2正常,接下来它将在非易失性RAM(NVRAM)中查找启动配置文件startup-config,假如没有找到任何启动配置文件,router将进入到setup模式

Setup Mode

setup模式可以对router进行些配置,但是我们不推荐使用这个方法对router进行配置.它分为2种模式:
1.Basic Management
2.Extended Management

在setup模式中,[]代表默认设置,你可以使用Ctrl+C随时退出setup模式

Command-Line Interface

当问你是否进入setup模式,选择no,即进入命令行模式

Logging into the Router

从用户模式(user mode)进入到特权模式(exec mode),注意提示符的变化:
Router>enable
Router#

从特权模式退出到用户模式:
Router#disable
Router>

退出router命令行:在用户模式和特权模式下输入logout,如下:
Router#logout
Router con0 is now available
Press RETURN to get started

Overview of Router Modes

配置router,需要进入到1个叫做配置模式的模式,在特权模式下输入configure terminal进入全局配置模式(global configuration mode),在这之下输入的命令叫做全局命令,一旦输入,将对整个router产生影响.如下,注意提示符的变化:
Router#config
Configruation from terminal,memory or network
[terminal]?(press Enter)
Router(config)#
参数terminal,memory和network的区别:
1.configure terminal:配置router的running-config,所谓running-config即为当前运行在动态RAM(DRAM)的配置文件
2.configure memory: 配置router的startup-config,所谓startup-config即为存储在router的NVRAM里的配置文件
3.configure network:配置存储在TFTP主机的配置文件

Interfaces

在全局配置模式下切换router接口,输入interface命令,?用于提示可选参数,为如下:
Router(config)#interface ?
(略)
Serial Serial
前半部分为参数,后半部分为描述,接着输入serial 0,进入router接口配置模式,如下:
Router(config)#interface serial 0
Router(config-if)#

Subinterfaces

在router的某个接口划分逻辑子接口(subinterface),输入命令进入子接口模式,如下,注意提示符:
Router(config)#interface fa0/0.?
<0-4294967295> FastEhernet interface number
Router(config)#interface fa0/0.1
Router(config-subif)#

Line Command

进入线路配置模式,注意提示符,如下:
Router(config)#line console 0
Router(config-line)#

Routing Protocol Configurations

给router配置路由协议,比如RIP,注意提示符,如下:
Router(config)#router rip
Router(config-router)#

从全局模式退出到特权模式可以使用快捷键Ctrl+Z

Editing and Help Features

一些特写:
1.在命令行下输入?,将得到该模式下可以使用的命令列表以及其描述
2.假如你不确定1个命令是如何写的,比如你只记得是字母c开头,你可以输入c加1个?,将得到该模式下可以使用的所有命令:
Router#c?
clear clock configuration connect copy
Router#clock ?
set Set the time and date
3.假如你输入的命令不完整,将得到1个错误提示:Imcomplete command,这样有助于分析命令哪出错了
4.router支持命令缩写,比如show可以缩写为sh,sho,但是假如你像如下那样输入了不完整的缩写,将得到错误提示:Ambiguous command
Router#sh te
% Ambiguous command: sh te
Router#sh te?
tech-support template terminal

一切其他的快捷键:
1.Ctrl+A:把光标快速移动到整行的最开始
2.Ctrl+E:把光标快速移动到整行的最末尾
3.Esc+B:后退1个单词
4.Ctrl+B:后退1个字符
5.Esc+F:前进1个单词
6.Ctrl+F:前进1个字符
7.Ctrl+D:删除单独1个字符
8.Backspace:删除单独1个字符
9.Ctrl+R:重新显示1行
10.Ctrl+U:擦除1整行
11.Ctrl+W:删除1个单词
12.Tab:自动补齐命令
13.Up arrow或者Ctrl+P:显示之前最后输入过的命令
14.Down arrow或者Ctrl+N:显示之前刚刚输入过的命令

其他的一些关于历史的命令:
1.show history:显示最后输入的10条命令,默认是10条,可以修改该值
2.terminal history size:修改显示最后输入过的的命令的数量,默认是10条,最大是256条
3.show terminal:显示命令历史缓存大小,如下:
Router#sh terminal
(略)
History is enabled,history size is 10
(略)
Router#terminal history size ?
<0-256> Size of history buffer
Router#terminal history size 25
Router#sh terminal
(略)
History is enabled,history size is 25
(略)

Gather Basic Routing Information

show version:显示系统硬件的基本配置和软件版本,以及配置文件的名字和来源,还有启动镜象,最后是configuration register的值

Set Passwords:

有5种密码用于加密你的Cisco router:
1.控制口(console)
2.辅助口(AUX)
3.VTY
4.enable password
5.enable secret

Enable Passwords

enable password:给console和AUX口加密,防止未授权用户进入特权模式,但是密码是非加密形式
enable secret:给console和AUX口加密,防止未授权用户进入特权模式,密码是加密形式,并且一旦起用了这个密码,将凌驾于enable password之上,如果同时设置了enable password和enable secret的情况下,必须输入不同的密码,如下:
Router(config)#enable password 123
Router(config)#enable secret 123
The enable password you have chosen is the same as your enable secret.This is not recommended.Re-enter the enable password
Router(config)#enable secret 321

如果VTY线路的密码没有设置,你将无法使用telnet来连上它

Auxiliary Password

配置AUX密码:
Router#conf t
Router(config)#line aux ?
<0-0> First line number
Router(config)#line aux 0
Router(config-line)#login
Router(config-line)#password 123

Console Password

配置console密码以及一些辅助命令:
Router#conf t
Router(config)#line console ?
<0-0> First line number
Router(config)#line console 0
Router(config-line)#login
Router(config-line)#password 123
Router(config-line)#exec-timeout ?
<0-35791> Timeout in minutes
Router(config-line)#exec-timeout 0 ?
<0-2147483> Timeout in seconds
<cr>
Router(config-line)#exec-timeout 0 0
Router(config-line)#logging synchonous
exec-timeout命令:如果X分钟X秒不活动的话将自动退出,默认是10分钟,0 0代表永远不自动退出
logging synchronous:光标跟随

Telnet Password

配置VTY密码:如果你的IOS不是企业版(Enterprise edition),默认你只能有5条VTY线路,线路0到4.配置如下:
Router(config-line)#line vty 0 ?
<1-4> Last Line Number
<cr>
Router(config-line)#line vty 0 4
Router(config-line)#login
Router(config-line)#password 123

刚才说过了,如果你的VTY线路没有配置密码的话,你将无法telnet连上它,它会报错:VTY线路没有配置密码.但是你可以取消VTY密码,这样就可以在没有密码的情况下进行telnet,处于安全考虑,此方法不推荐,配置如下:
Router(config-line)#line vty 0 4
Router(config-line)#no login

Encryption Your Passwords

只有enable secret是加密的,当你在特权模式下输入sh running-config显示DRAM的配置文件时,其他密码将被罗列出来:
Router#sh run
(略)
!
enable secret jhdflkdfg$#sdf
enable password 123
!
(略)

对密码进行加密:在全局配置模式下使用service password-encryption命令

Banners

banner类似标语,问候语.最常用的是MOTD(message of the day),分界符用于分隔信息,但是分隔符不能出现在MOTD信息中,如下:
Router(config)#banner motd #
The Router is mine
#
Router(config)#^Z(Ctrl+Z)
Router#exit
Router con0 is now available
Press RETURN to get started
The Router is mine
Router>

其他的3种banner:
1.exec banner
2.incoming banner
3.login banner

Router Interfaces

配置router的接口,一般命令模式采用:interface type number的格式,比如:
Router(config)#int ethernet 0
但是Cisco的2600,3600,4000和7000等系列采用了物理卡槽和模块化的端口机制.因此,命令变化为:interface type slot/port,比如:
Router(config)#int fastethernet 0
% Imcomplete command
Router(config)#int fastethernet 0?
/
Router(config)#int fastethernet 0/?
<0-1> Fastethernet interface number
Router(config)#int fastethernet 0/1

配置连接器的介质类型,使用media-type命令,不过这个一般是自动检测,如下:
Router(config)#int fa 0/0
Router(config-if)#media-type ?
100BaseX Use RJ45 for -TX; SC F0 for –FX
MII Use MII connector

Bring Up an Interface

打开和关闭1个接口,分别使用shutdown和no shutdown命令,当你关闭某个接口的时候,使用sh interfaces命令可以查看接口状态,并且你将看到以下输出:
Router#sh int e0
Ethernet0 is administratively down,line protocol is down
(略)
接口是关闭的,所以你要手动打开它,如下:
Router#conf t
Router(config)#int e0
Router(config-if)#no shut
Router(config-if)#^Z
Router#sh int e0
Ethernet is up,line protocol is up
(略)

Configuring an IP Address on an Interface

给某个接口配置IP地址,使用ip address [address] [mask]命令,如下:
Router(config)#int e0
Router(config-if)#ip address 172.16.10.2 255.255.255.0
记得把接口打开:
Router(config-if)#no shut
Router(config-if)#^Z

如果你需要在1个接口添加第二个子网地址,在末尾使用secondary参数,这将替换现有IP地址,如下:
Router(config)#int e0
Router(config-if)#ip address 172.16.20.2 255.255.255.0 secondary
Router(config-if)#^Z
来验证下:
Router#sh run
(略)
!
interface Ethernet0
ip address 172.16.20.2 255.255.255.0 secondary
ip address 172.16.10.2 255.255.255.0
!

Serial Interface Commands

Serial口一般是连接在CSU/DSU等类型的提供时钟频率的设备上.但是,假如你在个实验环境里采用了背对背配置,那么1端将作为DCE设备提供时钟频率.默认Cisco的router都是DTE,所以你必须让1个serial接口来提供时钟频率,采用的命令是:clock rate,如下:
Router(config)#int s0
Router(config-if)#clock rate ?
Speed (bits per second)
1200
(略)
56000
64000
(略)
Router(config-if)#clock rate 64000
% Error: This commands applies only to DCE interfaces
Router(config-if)#int s1
Router(config-if)#clock rate 64000

确定serial接口是否是DCE线缆使用sh controllers命令,如下:
Router>sh controllers s 0
HD unit 0, idb=0x297DE8, driver structure at 0x29F3A0
Buffer size 1524 HD unit 0, V.35 DCE cable

Cisco的router的默认serial连接带宽是T-1(1.544Mbps).有的路由协议要以带宽做为度来进行衡量,所以,我们给它配置带宽,使用bandwidth命令,注意参数单位是kb,如下:
Router(config-if)#bandwidth ?
<1-10000000> Bandwidth in kilobits
Router(config-if)#bandwidth 64

Hostnames

给router配置主机名,使用hostname命令,这个是本地标志,不影响router在Internet上的工作,注意回车立即生效,如下:
Router(config)#hostname Noko
Noko(config)#hostname Noco
Noco(config)#

Descriptions

description命令:本地标志,可以给接口加描述,以便用于区分,如下:
Noco(config)#int e0
Noco(config-if)#description Sales LAN
Noco(config-if)#^Z
来验证下:
Noco#sh int e0
(略)
Description: Sales LAN
(略)

Viewing and Saving Configurations

将running-config(DRAM)的文件复制到startup-config(NVRAM)里,使用copy running-config startup-config命令:
Noco#copy run start

可以使用erase startup-config命令删除startup-config文件,如下:
Noco#erase startup-config
(略)
Noco#sh start
%% Non-volatile configuration memory is not present
假如在这个情况下在特权模式使用reload命令重新启动router,将进入setup模式

Verifying Your Configuration

ping:采用了ICMP echo requests和replies
traceroute:使用ICMP和IP TTL来跟踪包所经过的路径

Verifying with the show ip interface Command

show ip interface:提供router接口的层3信息,包括:
1.接口状态
2.IP地址和掩码
3.访问列表(access-list)信息
4.一些其他的基本的IP信息

Using the show ip interface brief Command

show ip interface brief:和show ip interface类似,只是提供简洁点的总结信息

Using the show controllers Command

sh controllers:显示物理接口的信息,还提供serial口线缆信息,如下:
Router#sh controllers serial 0/0
(略)
buffer size 1524 HD unit 0, V.35 DTE cable
(略)
Router#sh controllers serial 0/1
(略)
buffer size 1524 HD unit 1, V.35 DCE cable

Chapter5 IP Routing
Routing Basics

路由协议(routing protocol):用于routers动态寻找网络最佳路径,保证所有routers拥有相同的路由表.一般,路由协议决定数据包在网络上的行走的路径.这类协议的例子有OSPF,RIP,IGRP,EIGRP等
可路由协议(routed protocol):当所有的routers知道了整个网络的拓扑结构以后,可路由协议就可以用来发送数据.一般的,可路由协议分配给接口,用来决定数据包的投递方式.这类例子有IP和IPX

路由:把1个数据包从1个设备发送到不同网络里的另1个设备上去.这些工作依靠routers来完成.routers并不关心主机,它们只关心网络的状态和决定网络中的最佳路径

router可以路由数据包,必须至少知道以下状况:
1.目标地址(destination address)
2.可以学习到远端网络状态的邻居router
3.到达远端网络的所有路线
4.到达远端网络的最佳路径
5.如何保持和验证路由信息

The IP Routing Process

路由原理:当IP子网中的一台主机发送IP包给同一IP子网的另一台主机时,它将直接把IP包送到网络上,对方就能收到.而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的router,把IP包送给该router,由它负责把IP包送到目的地.如果没有找到这样的router,主机就把IP包送给一个称为缺省网关(default gateway)的router上.缺省网关是每台主机上的一个配置参数,它是接在同一个网络上的某个router接口的IP地址
router转发IP包时,只根据IP包目的IP地址的网络号部分,选择合适的接口,把IP包送出去.同主机一样,router也要判定接口所接的是否是目的子网,如果是,就直接把包通过接口送到网络上,否则,也要选择下一个router来传送包.router也有它的缺省网关,用来传送不知道往哪儿送的IP包.这样,通过router把知道如何传送的IP包正确转发出去,不知道的IP包送给缺省网关,这样一级级地传送,IP包最终将送到目的地,送不到目的地的IP包则被网络丢弃了

当主机A发送个IP包到主机B,目标MAC地址使用的是默认网关的以太网接口地址.这是因为帧不能放置在远端网络.

show ip route:查看路由表信息,比如:
Router#sh ip route
(略)
Gateway of last resort is not set
C 192.168.10.0/24 is directly connected, FastEthernet0/0
C 192.168.20.0/24 is directly connected, Serial 0/0
Router#
C代表的是:直接相连

Configuring IP Routing in Our Network

当1个router收到1个目标网络号没有在路由表中列出的包的时候,它并不发送广播寻找目标网络,而是直接丢弃它

几种不同类型的路由:
1.静态路由(static routing)
2.默认路由(default routing)
3.动态路由(dynamic routing)

Static Routing

静态路由:手动填加路由线路到路由表中,优点是:
1.没有额外的router的CPU负担
2.节约带宽
3.增加安全性
缺点是:
1.网络管理员必须了解网络的整个拓扑结构
2.如果网络拓扑发生变化,管理员要在所有的routers上手动修改路由表
3.不适合在大型网络中

静态路由的配置命令:ip route [dest-network] [mask] [next-hop address或exit interface] [administrative distance] [permanent]
ip route:创建静态路由
dest-network:决定放入路由表的路由表
mask:掩码
next-hop address:下1跳的router地址
exit interface:如果你愿意的话可以拿这个来替换next-hop address,但是这个是用于点对点(point-to-point)连接上,比如广域网(WAN)连接,这个命令不会工作在LAN上
administrative distance:默认情况下,静态路由的管理距离是1,如果你用exit interface代替next-hop address,那么管理距离是0
permanent:如果接口被shutdown了或者router不能和下1跳router通信,这条路由线路将自动从路由表中被删除.使用这个参数保证即使出现上述情况,这条路线仍然保持在路由表中

静态路由的具体配置:
http://bbs.**********.com/UploadFil...13414321781.jpg
Router Network Address Interface Address
RouterA 192.168.10.0 fa0/0 192.168.10.1
192.168.20.0 s0/0 192.168.20.1
RouterB 192.168.20.0 s0/0 192.168.20.2
192.168.40.0 s0/1 192.168.40.1
192.168.30.0 fa0/0 192.168.30.1
RouterC 192.168.40.0 s0/0 192.168.40.2
192.168.50.0 fa0/0 192.168.50.1

准备工作:先配置RouterA,B和C的基本信息,注意RouterB作为DCE提供时钟频率:
RouterA(config)#int fa0/0
RouterA(config-if)#ip address 192.168.10.1 255.255.255.0
RouterA(config-if)#no shut
RouterA(config-if)#int s 0/0
RouterA(config-if)#ip address 192.168.20.1 255.255.255.0
RouterA(config-if)#no shut
RouterA(config-if)#^Z
RouterA#copy run start

RouterB(config)#int fa0/0
RouterB(config-if)#ip address 192.168.30.1 255.255.255.0
RouterB(config-if)#no shut
RouterB(config-if)#int s 0/0
RouterB(config-if)#ip address 192.168.20.2 255.255.255.0
RouterB(config-if)#clock rate 64000
RouterB(config-if)#no shut
RouterB(config-if)#ip address 192.168.40.1 255.255.255.0
RouterB(config-if)#clock rate 64000
RouterB(config-if)#no shut
RouterB(config-if)#^Z
RouterB#copy run start

RouterC(config)#int fa0/0
RouterC(config-if)#ip address 192.168.50.1 255.255.255.0
RouterC(config-if)#no shut
RouterC(config-if)#int s 0/0
RouterC(config-if)#ip address 192.168.40.2 255.255.255.0
RouterC(config-if)#no shut
RouterC(config-if)#^Z
RouterC#copy run start

配置RouterA静态路由:
RouterA了解自己的网络192.168.10.0和192.168.20.0(直接相连),所以RouterA的路由表必须加入192.168.30.0和192.168.40.0, 192.168.50.0的信息,注意下1跳接口,如下:
RouterA(config)#ip route 192.168.30.0 255.255.255.0 192.168.20.2
RouterA(config)#ip route 192.168.40.0 255.255.255.0 192.168.20.2
RouterA(config)#ip route 192.168.50.0 255.255.255.0 192.168.20.2

验证路由信息:
RouterA#sh ip route
(略)
S 192.168.50.0 [1/0] via 192.168.20.2
(略)
S代表静态路由,[1/0]分别为管理距离和度

配置RouterB静态路由:
RouterB所必须学习到的网络应该是192.168.10.0和192.168.50.0,注意它们的下1跳接口地址,配置如下:
RouterB(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1
RouterB(config)#ip route 192.168.50.0 255.255.255.0 192.168.40.2

配置RouterC静态路由:
RouterC所必须学习到的网络应该是192.168.10.0,192.168.20.0和192.168.30.0,注意它们的下1跳接口地址,配置如下:
RouterC(config)#ip route 192.168.10.0 255.255.255.0 192.168.40.1
RouterC(config)#ip route 192.168.20.0 255.255.255.0 192.168.40.1
RouterC(config)#ip route 192.168.30.0 255.255.255.0 192.168.40.1

Verifying Your Configuration

根据上面的拓扑结构,我们来验证下是否能够端到端的ping通:
RouterC#ping 192.168.10.1
(略)
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
(略)
RouterA#ping 192.168.50.1
(略)
Sending 5, 100-byte ICMP Echos to 192.168.50.1, timeout is 2 seconds:
!!!!!
(略)
2端都能ping通,说明没问题

Default Routing

默认路由:一般使用在stub网络中,stub网络是只有1条出口路径的网络.使用默认路由来发送那些目标网络没有包含在路由表中的数据包.根据上面的拓扑图,你就不能把默认路由定义在RouterB上,因为RouterB拥有不止1个出口路径接口.其实你可以把默认路由理解成带通配符(wildcard)的静态路由

配置默认路由:
首先要去掉之前配置的静态路由
RouterC(config)#no ip route 192.168.10.0 255.255.255.255 192.168.40.1
RouterC(config)#no ip route 192.168.20.0 255.255.255.255 192.168.40.1
RouterC(config)#no ip route 192.168.30.0 255.255.255.255 192.168.40.1
接下来配置默认路由:
RouterC(config)#ip route 0.0.0.0 0.0.0.0 192.168.40.1
额外的命令,使各个接口打破分类IP规则,12.x的IOS默认包含这条命令,如下:
RouterC(config)#ip classless
再验证下:
RouterC(config)#^Z
RouterC#sh ip route
(略)
S* 0.0.0.0/0 [1/0] via 192.168.40.1
S*代表默认路由

Dynamic Routing

动态路由协议,有很多优点,灵活等等,但是缺点也有,比如占用了额外的带宽,CPU负荷高

组网利用到的2种路由协议:内部网关协议(Interior Gateway Protocols,IGPs)和外部网关协议(Exterior Gateway Protocols,EGPs)

自治系统(Autonomous System,AS):同1个管理域的网络集合,意味着在这里面的所有routers共享相同的路由表信息

IGPs:在相同的AS内交换路由信息
EGPs:AS间的通信

Routing Protocol Basics

Administrative Distances

管理距离(AD): 0到255之间的1个数,它表示一条路由选择信息源的可信性值.该值越小,可信性级别越高.0为最信任,255为最不信任即没有从这条线路将没有任何流量通过.假如1个router收到远端的2条路由更新,router将检查AD,AD值低的将被选为新路线存放于路由表中.假如它们拥有相同的AD,将比较它们的度(metric).度低的将作为新线路.假如它们的AD和度都一样,那么将在2条线路做均衡负载

一些常用路由协议默认的AD:
1.直接相连:0
2.静态路由:1
3.EIGRP:90
4.IGRP:100
5.OSPF:110
6.RIP:120

记住,如果你在条线路上配置了静态路由,又配置了RIP,默认情况下,router只会使用静态路由,因为它的AD为1小于RIP的AD

Routing Protocols

3种路由协议:
1.距离向量(distance vector)
2.链路状态(link state)
3.混合型(hybrid)

距离向量:用于根据距离(distance)来判断最佳路径,当1个数据包每经过1个router时,被称之为经过1跳.经过跳数最少的则作为最佳路径.这类协议的例子有RIP和IGRP,它们将整个路由表向与它们直接相连的相邻routers

链路状态:也叫最短路径优先(shortest-path-first)协议.每个router创建3张单独的表,1张用来跟踪与它直接相连的相邻router;1张用来决定网络的整个拓扑结构;另外1张作为路由表.所以这种协议对网络的了解程度要比距离向量高.这类协议例子有OSPF

混合型:综合了前2者的特征,这类协议的例子有EIGRP

Distance-Vector Routing Protocols

距离向量路由算法将完整的路由表传给相邻router,然后这个router再把收到的表的选项加上自己的表来完成整个路由表,这个叫做routing by rumor,因为这个router是从相邻router接受更新而非自己去发现网络的变化

RIP就是距离向量协议的例子.RIP使用跳数来决定最佳路径,假如到达1个网络有2条跳数相同的链路,那么将均衡负载在这2条链路上,平均分配,RIP最多支持6条均衡链路

针孔拥塞(pinhole congestion):假如2条到达远端网络的链路1和2的跳数均为1,但是链路1的带宽是56kbps,2的是T1线路1544kbps,显然,走链路2好过走链路1,但是RIP使用跳数作为度,所以RIP会把数据平均分配到链路1和2上,这就造成了pinhole congestion

我们来了解下距离向量协议的启动过程:当router启动的时候,只有那些与它们直接相连的网络号出现在它们自己的路由表里,当距离向量协议在每个router上启动后,路由表将从相邻router获得更新信息来更新自己的路由表.每个router将完整的路由表,包含网络号,出口接口和跳数,发送给相邻router.接下来,路由表包含了完整的网络信息,达到汇聚(converged)状态.另外,在汇聚期间,没有数据将会被传送,所以说,快速汇聚就成了1个必不可少的话题

Routing Loops

距离向量协议通过向所有接口周期性的广播路由更新来跟踪整个网络的变化,这些广播包括了完整的路由表.这样看上不错,但是它却给CPU增加了负荷和占用了额外的带宽.而且,汇聚过慢的话容易导致路由表的不一致性和容易产生路由循环(routing loops)

路由循环的例子:
http://bbs.**********.com/UploadFil...12244266877.jpg
假如网络5出问题了,不工作了,E就发送更新给C汇报情况,于是,C开始停止通过E来路由信息到网络5,但是这个时候A,B和D还不知道网络5出问题了.所以它们仍然继续发送更新信息.C发送更新给B说停止路由到网络5.但是此时A和D还没有更新,所以它们觉得网络5仍然可用,而且跳数为3.接下来,A发送更新说:嘿!网络5还可用.B和D接受到A发来的更新后,没办法,也相同的觉得可用经过A到达网络5,并且认为网络5可用.所以就这样,1个目标网络是网络5的数据包将进过A到B,然后又回到A……

Maximum Hop Count

路由循环的问题也可用描述为跳数无限(counting to infinity).其中的1个解决办法就是定义最大跳数(maximum hop count).RIP是这样定义最大跳数的:最大跳数为15,第16跳为不可达.但是这样不能根本性的祛除路由循环的问题

Split Horizon

另外1个解决办法就是水平分裂(split horizon),它规定由1个接口发送出去的路由信息不能再朝这个接口往回发送.这个办法减少了路由信息的不正确性和负载

Route Poisoning

路由破坏(route poisoning)也用于避免不一致的更新信息来阻止网络循环.由刚才的拓扑图,当网络5不可用了,E将把这条线路的度变为16,即不可达,破坏这条线路.这样C就不会发送错误的更新了.当C收到E的route poisoning信息,,C发送个叫做poison reverse的更新给E,这样保证了所有的线路都知道那条破坏线路的信息,来防止循环

Holddowns

抑制计时(holddown): 一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新.如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效.这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性.它使用了触发更新(trigger update)来重新设定holddown计时器

触发更新:和一般的更新不一样,当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期.同样,当一个路由器刚启动RIP时,它广播请求报文.收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期.这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性

触发更新重新设定计时器的几个情况:
1.计时器超时
2.收到1个拥有更好的度的更新
3.刷新时间(flush time)

Routing Information Protocol(RIP)

RIP是一种距离向量路由协议,使用跳数作为度,最大15跳,它每30秒向外发送整个路由表的信息.RIP适合于小型网络.RIP版本1(RIPv1)使用分级路由(classful routing),意思是在网络的所有设备必须使用相同的子网掩码;而RIP版本2(RIPv2)使用无分类路由(classless routing).我们这里讨论RIPv1

RIP Timers

RIP使用3种不同的计时来调节它的性能:
1.路由更新计时(route update timer)
2.路由无效计时(route invalid timer)
3.保持计时器(holddown timer)
4.路由刷新时间(route flush timer)

路由更新计时:router发送路由表副本给相邻router的周期性时间,30秒

路由无效计时:如果经过180秒,一个路由的选项都没有得到确认,router就认为它已失效了

保持计时器:当router得知路由无效后,router将进如holddown状态,默认时间是180秒,如果在这180秒里,router接收到路由更新以后或者超过180秒,保持计时器停止计时

路由刷新时间: 如果经过240秒,路由表的选项仍没有得到确认,它就被从路由表中删除

Configuring RIP Routing

配置RIP:
http://bbs.**********.com/UploadFil...13414321781.jpg
Router Network Address Interface Address
RouterA 192.168.10.0 fa0/0 192.168.10.1
192.168.20.0 s0/0 192.168.20.1
RouterB 192.168.20.0 s0/0 192.168.20.2
192.168.40.0 s0/1 192.168.40.1
192.168.30.0 fa0/0 192.168.30.1
RouterC 192.168.40.0 s0/0 192.168.40.2
192.168.50.0 fa0/0 192.168.50.1

先来配置RouterA,由于AD的问题,所以要先去掉之前的静态路由,如下:
RouterA(config)#no ip route 192.168.30.0 255.255.255.0 192.168.20.2
RouterA(config)#no ip route 192.168.40.0 255.255.255.0 192.168.20.2
RouterA(config)#no ip route 192.168.50.0 255.255.255.0 192.168.20.2
使用RIP配置命令为router rip,起用RIP,接下来使用network命令配置需要进行通告(advertise)的网络号,注意router的提示符,如下:
RouterA(config)#router rip
RouterA(config-router)#network 192.168.10.0
RouterA(config-router)#network 192.168.20.0
RouterA(config-router)#^Z
RouterA#
注意配置的网络号,是直接相连的网络,而通告非直接相连的网络任务,就交给RIP来做.还有就是要注意RIPv1是classful routing,意思是假如你使用B类172.16.0.0/24,子网172.16.10.0,172.16.20.0和172.16.30.0,在配置RIP的时候,你只能把网络号配置成network 172.16.0.0

配置RouterB,由于AD的问题,所以要先去掉之前的静态路由,如下:
RouterB(config)#no ip route 192.168.50.0 255.255.255.0 192.168.40.2
RouterB(config)#no ip route 192.168.10.0 255.255.255.0 192.168.20.1
配置RIP:
RouterB(config)#router rip
RouterB(config-router)#network 192.168.20.0
RouterB(config-router)#network 192.168.30.0
RouterB(config-router)#network 192.168.40.0
RouterB(config-router)#^Z
RouterB#

配置RouterC,由于AD的问题,所以要先去掉之前的默认路由,如下:
RouterC(config)#no ip route 0.0.0.0 0.0.0.0 192.168.40.1
配置RIP:
RouterC(config)#router rip
RouterC(config-router)#network 192.168.50.0
RouterC(config-router)#network 192.168.40.0
RouterC(config-router)#^Z
RouterC#

Verifying the RIP Routing Tables

验证配置好的路由信息,如下:
RouterA#sh ip route
(略)
R 192.168.50.0 [120/2] via 192.168.20.2, 00:00:23, Serial0/0
(略)
注意R代表的是RIP,[120/2]分别代表AD和度,在这里,度即为跳数.假如说你在这个信息里看到的是[120/15],那么下1跳为16,不可达,这条路由线路也将随之无效,将被丢弃

Holding Down RIP Propagation

如果你想阻止RIP更新信息传播到LANs和WANs上,可以使用passive-interface命令,这条命令可以防止RIP更新信息广播从你定义了的接口上发送出去,但是这个接口仍然可以接受到更新信息,如下:
RouterA(config)#router rip
RouterA(config-router)#network 192.168.10.0
RouterA(config-router)#passive-interface s 0/0
Interior Gateway Routing Protocol(IGRP)
IGRP是Cisco私有的距离向量路由协议,意思是说只有Cisco的routers才可以运行IGRP.IGRP的一些特点有:最大跳数255,默认100跳,这样就比较适合中大型网络.而且,IGRP默认使用带宽和延迟(delay)作为度来寻找最佳路径,这样的度就叫复合度(composite metric).当你配置IGRP的时候,你必须以AS号作为配置参数,所有的routers必须使用相同的AS号来共享路由表信息. IGRP支持6条链路的均衡负载

下面是一些你在RIP中找不到的,IGRP专有的特征:
1.IGRP可以在1个大型组网中使用到
2.使用AS号
3.每90秒发送完整的路由更新
4.使用带宽和延迟作为度

IGRP Timers

IGRP计时:
1.路由更新计时:默认90秒
2.路由无效计时:默认270秒
3.保持计时器:默认280秒(3倍更新时间+10秒)
4.路由刷新时间: 默认630秒

Configuring IGRP Routing
http://bbs.**********.com/UploadFil...13414321781.jpg
Router Network Address Interface Address
RouterA 192.168.10.0 fa0/0 192.168.10.1
192.168.20.0 s0/0 192.168.20.1
RouterB 192.168.20.0 s0/0 192.168.20.2
192.168.40.0 s0/1 192.168.40.1
192.168.30.0 fa0/0 192.168.30.1
RouterC 192.168.40.0 s0/0 192.168.40.2
192.168.50.0 fa0/0 192.168.50.1

配置RouterA,注意AS号的范围为1到65535,如下:
RouterA(config)#router igrp ?
<1-65535> Autonomous system number
RouterA(config)#router igrp 10
RouterA(config-router)#netw 192.168.10.0
RouterA(config-router)#netw 192.168.20.0
RouterA(config-router)#^Z
RouterA#
记住IGRP也是classful routing,而且配置网络号是与它直接相连的网络

配置RouterB,如下:
RouterB(config)#router igrp 10
RouterB(config-router)#netw 192.168.20.0
RouterB(config-router)#netw 192.168.30.0
RouterB(config-router)#netw 192.168.40.0
RouterB(config-router)#^Z
RouterB#

配置RouterC,如下:
RouterC(config)#router igrp 10
RouterC(config-router)#netw 192.168.40.0
RouterC(config-router)#netw 192.168.50.0
RouterC(config-router)#^Z
RouterC#
注意RouterA,RouterB和RouterC使用相同的AS号

Verifying the IGRP Routing Tables

我们来验证下:
RouterA#sh ip route
(略)
I 192.168.50.0 [100/170420] via 192.168.20.2, Serial0/0
(略)
I代表IGRP[100/170420]为AD和复合度,度越低越好

Verifying Your Configurations

一些验证性的命令:
show protocols:显示所有的可路由协议和查看接口及其相关协议,如下:
RouterB#sh protocols
Gloabal values:
Internet Protocol routing is enabled
FastEthernet0 is up, line protocol is up
Internet Address is 192.168.30.1/24
Serial0/0 is up, line protocol is up
Internet Address is 192.168.20.2/24
Serial0/1 is up, line protocol is up
Internet Address is 192.168.40.1/24
RouterB#

show ip protocols:显示router上配置好了的路由协议,如下:
RouterB#sh ip protocols
Routing Protocols is “rip”
(略)

debug ip rip:发送控制台消息显示有关在router接口上收发RIP数据包的信息,关闭debug,使用undebug all或者no debug all命令,如下:
RouterB#debug ip rip
RIP protocol debugging is on
RouterB#
07:12:56: RIP: received v1 update from 192.168.40.2 on Serial0/1
07:12:56: 192.168.50.0 in 1 hops
(略)
RouterB#undebug all
All possible debugging has been turned off
RouterB#

debug ip igrp events:提供在网络中运行的IGRP路由选择信息的概要,关闭使用undebug ip igrp events或undebug all命令,如下:
RouterB#debug ip igrp events
IGRP event debugging is on
07:13:50: IGRP: received request from 192.168.40.2 on Serial0/1
07:13:50: IGRP: sending update to 192.168.40.2 via Serial1(192.168.40.1)
07:13:51: IGRP: Update contains 3 interior, 0 system, and 0 exterior routes
07:13:51: IGRP: Total route in update: 3
(略)
RouterB#un all
All possible debugging has been turned off

debug ip igrp transactions:显示来自相邻router要求更新的请求消息和由router发到相邻router的广播消息,关闭使用undebug all,如下:
RouterB#debug ip igrp transactions
07:14:05: IGRP: received request from 192.168.40.2 on Serial1
07:14:05: IGRP: sending update to 192.168.40.2 via Serial1(192.168.40.1)
07:14:05: subnet 192.168.30.0, metric=1100
07:14:05: subnet 192.168.20.0, metric=158250
(略)
RouterB#un all
All possible debugging has been turned off
RouterB#


Chapter6 Layer 2 Switching
Switching Services

路由协议有在阻止层3的循环的过程.但是假如在你的switches间有冗余的物理连接,路由协议并不能阻止层2循环的发生,这就必须依靠生成树协议(Spanning Tree Protocol,STP)

不像bridges使用软件来创建和管理MAC地址过滤表,switches使用ASICs来创建和管理MAC地址表,可以把switches想象成多端口的bridges

层2的switches和bridges快于层3的router因为它们不花费额外的时间字查看层3包头信息,相反,它们查看帧的硬件地址然后决定是转发还是丢弃.每个端口为1个冲突域,所有的端口仍然处于1个大的广播域里

层2交换提供:
1.基于硬件的桥接(ASIC)
2.线速(wire speed)
3.低延时(latency)
4.低耗费

Bridging vs. LAN Switching

桥接和层2交换的一些区别和相似的地方:
1.bridges基于软件,switches基于硬件
2.switches和看作多端口的bridges
3.bridges在每个bridge上只有1个生成树实例,而switches可以有很多实例
4.switches的端口远多于bridges
5.两者均转发层2广播
6.两者均通过检查收到的帧的源MAC地址来学习
7.两者均根据层2地址来做转发决定

Three Switch Function at Layer 2

层2交换的一些功能:
1.地址学习(address learning):通过查看帧的源MAC地址来加进1个叫做转发/过滤表的MAC地址数据库里
2.转发/过滤决定(forward/filter decisions):当1个接口收到1个帧的时候,switch在MAC地址数据库里查看目标MAC地址和出口接口,然后转发到符合条件的那个目标端口去
3.循环避免(loop avoidance):假如有冗余的连接,可能会造成循环的产生,STP就用来破坏这些循环

Spanning Tree Protocol(STP)
Spanning Tree Terms

Digital Equipment Coporation(DEC)在被收购和重命名为Compaq的时候,创建了原始的STP,
之后IEEE创建了自己的STP叫做802.1D版本的STP.和之前的DEC的STP不兼容.STP的主要任务是防止层2的循环,STP使用生成树算法(spanning-tree algorithm,STA)来创建个拓扑数据库,然后查找出冗余连接并破坏它

我们来看些关于STP的术语:
1.STP:bridges之间交换BPDU信息来检测循环,并通过关闭接口的方式来破坏循环
2.根桥(root bridge):拥有最好的bridge ID即为根桥,网络中的一些诸如哪些端口被堵塞(block)哪些端口作为转发模式的决定都由根桥来决定
3.BPDU:Bridge Protocol Data Unit,所有的switches通过交换这些信息来选择根switch
4.bridge ID:用于STP跟踪网络中的所有switches,这个ID由bridge优先级(priority)和MAC地址符合而成,优先级默认为32768,ID最低的即为根桥
4.非根桥(nonroot bridge):不是根桥的全为非根桥,非根桥交换BPDUs来更新STP拓扑数据库
5.根端口(root port):与根桥直接相连的端口,或者是到根桥最短的接口.如果到根桥的连接不止1条,将比较每条连接的带宽,耗费(cost)低的作为根端口;如果耗费相同就比较bridge ID,ID低的将被选用
6.指定端口(designated port):耗费低的端口,作为转发端口
7.端口耗费(port cost):带宽来决定
8.非指定端口(nondesignated port):耗费较高,为堵塞模式(blocking mode),即不转发帧
9.转发端口(forwarding port):转发端口用来转发帧
10.堵塞端口(blocked port):不转发帧,用来防止循环的产生,虽然不转发,但是它可以监听(listen)帧

Spanning Tree Operations

之前说过:STP的任务就是查找出网络中的所有连接,并关闭些会造成循环的冗余连接.STP首先选举1个根桥,用来对网络中的拓扑结构做决定.当所有的switches认同了选举出来的根桥后,所有的bridge开始查找根端口.假如在switches之间有许多连接,只能有1个端口作为指定端口

Selecting the Root Bridge

bridge ID用来在STP域里选举根桥和决定根端口,这个ID是8字节长,包含优先级和设备的MAC地址,IEEE版本的STP的默认优先级是32768.决定谁是根桥,假如优先级一样,那就比较MAC地址,MAC地址小的作为根桥

Selecting the Designated Port

假如不止1个连接到根桥,那就开始比较端口耗费,耗费低的作为根端口,下面是一些典型的耗费标准:
1.10Gbps:2
2.1Gbps:4
3.100Mbps:19
4.10Mbps:100

Spanning-Tree Port States

运行STP的bridges和switches的5种状态:
1.堵塞(blocking):不转发帧,只监听BPDUs,主要目的是防止循环的产生.默认情况下,当switch启动时所有端口均为blocking状态
2.监听(listening):端口监听BPDUs,来决定在传送数据帧之前没有循环会发生
3.学习(learning):监听BPDUs和学习所有路径,学习MAC地址表,不转发帧
4.转发(forwarding):转发和接收数据帧
5.禁用(disabled):不参与帧的转发和STP,一般在这个状态的都是不可操作的

一般来说,端口只处于转发和堵塞状态,如果网络拓扑发生了变化,端口会进入监听和学习状态,这些状态是临时的

Convergence

汇聚,也叫收敛(convergence):当所有端口移动到非转发或堵塞状态时,开始收敛,在收敛完成前,没有数据将被传送.收敛保证了所有的设备拥有相同的数据库达到一致.一般来说从堵塞状态进入到转发状态需要50秒

Spanning Tree Example

我们来看1个STP的例子,拓扑图给出了已知的MAC地址,并且所有优先级均为32768:
http://bbs.**********.com/UploadFil...13411284447.jpg
注意A的MAC地址最小,优先级均为32768,所以A作为根桥,并且要注意的是根桥的所有端口均作为转发模式(指定端口).接下来决定根端口,直接与根桥相连的作为根端口,而且作为转发模式,所以可以判定出根端口个指定端口,bridge ID决定指定和非指定端口.但是注意D和E之间,由于D的bridge ID小,所以D的为指定端口,E的作为非指定端口,如下:
http://bbs.**********.com/UploadFil...71521868526.jpg

LAN Switch Types

LAN的交换类型决定了当switch的端口接收到1个帧的时候如何去处理
延时(latency):指数据包进入一个网络设备到离开该设备的出口接口所花的时间,这个根据不同的交换模式也不一样

3种交换模式:
1.cut-through(fastforward):Cisco称这种模式叫cut-through,fastforward或者real time模式,使用这种模式的时候,LAN switch只读取到帧的目标地址为止,减少延时,但是不适合与高偏向错误率的网络
2.fragmentfree(modified cut-through):和cut-through类似,但是LAN switch读取到数据(data)部分的前64字节,这个是Catalyst 1900的默认模式
3.store-and-forward:在这个模式下,LAN switch复制整个帧到它的缓冲区里,然后计算CRC,也帧的长短可能不一样,所以延时根据帧的长短而变化.如果CRC不正确,帧将被丢弃;如果正确,LAN switch查找硬件目标地址然后转发它们
3种模式对帧的读取程度具体如下:
http://bbs.**********.com/UploadFil...15495750864.jpg

Configuring the Catalyst 1900 and 2950 Switches

1900是款低端switch产品,分为1912和1924系列:1912是有12个10BaseT端口而1924是有24个10BaseT端口

1900 and 2950 Switch Startup

当1900启动后,先运行POST,此时每个端口的发光二级管(LEDs)是绿色的,当POST完成后,LEDs开始闪烁然后熄灭;假如POST发现某个端口出问题了的话,系统LED和那个出问题的端口的LED开始变黄.假如你的console线缆接好了的话,POST开始显示菜单,如下:
1 user(s) now active on Management Console.

User Interface Menu

[M] Menus
[K] Command Line
[I] IP Configuration
Enter Selection:K
CLI session with the switch is open
To end the CLI session, enter [Exit].
>

而2950的启动,有点像router,先进入setup模式.但是默认你可以不对其进行配置,启动如下:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no

Press RETURN to get started!

00:04:53: %LINK-5-CHANGED: Interface Vlan1, changed state to administratively down
00:04:54: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
Switch>

Setting the Passwords

配置密码:
1.登陆密码(用户模式):防止未授权用户登陆
2.启用密码(特权模式):防止未授权用户修改配置

Setting the User Mode and Enable Mode Passwords

1900下,输入K进入CLI,输入enable进入特权模式,再输入config t进入全局配置模式,如下:
>en
#config t
(config)#
当进入全局配置模式后,使用enable password命令配置登陆密码个启用密码,如下:
(config)#enable password ?
level Set exec level password
(config)#enable password level ?
<1-15> Level Number
level1为登陆密码,level15为启用密码,密码长度范围是4到8字符之间,如下:
(config)#enable password level 1 nocoluvsnoko
Error: Invalid password length.
Password must be between 4 and 8 characters
重配置并验证:
(config)#enable password level 1 noco
(config)#enable password level 15 noko
(config)#exit
#exit

2950下的配置和配置router有点类似,如下:
Switch>en
Switch#conf t
Switch(config)#line ?
<0-16> First Line number
console Primary terminal line
vty Virtual terminal
Switch(config)#line vty ?
<0-15> First Line number
Switch(config)#line vty 0 15
Switch(config-line)#login
Switch(config-line)#password noko
Switch(config-line)#line con 0
Switch(config-line)#login
Switch(config-line)#password noco
Switch(config-line)#exit
Switch(config)#exit
Switch#

Set the Enable Secret Password

enable secret比enable password更安全,而且同时设置了2者的话,只有前者起作用
1900下的配置,注意在1900下,enable secret和enable password可以设置成一样的,如下:
(config)#enable secret noko
2950下的配置和router类似,但是enable secret和enable passwor不可以设置成一样的,如下:
Switch(config)#enable password noko
Switch(config)#enable secret noko
The enable secret you have chosen is the same as your enable password.
This is not recommended. Re-enter the enable secret.
Switch(config)#enable secret noco
Switch(config)#

Setting the Hostname

给1900配置主机名,使用hostname命令,如下:
(config)#hostname Noko
Noko(config)#
给2950配置主机名,使用hostname命令,如下:
Switch(config)#hostname Noco
Noco(config)#

Setting IP Information

你可以不配置IP信息,直接把线缆插进端口,一样可以工作.配置IP地址信息有2点原因:
1.通过telnet或其他软件方式来管理switch
2.配置VLANs和其他等网络功能

默认下,没有IP地址和默认网关信息配置,在1900下,使用show ip命令查看默认IP配置,如下:
1900#sh ip
IP Address: 0.0.0.0
Subnet Mask: 0.0.0.0
Default Gateway: 0.0.0.0
Management VLAN: 1
Domain name:
Name server 1: 0.0.0.0
Name server 2: 0.0.0.0
HTTP server: Enable
HTTP port: 80
RIP: Enable
在1900下使用ip address和ip default-gateway命令来配置IP地址信息和默认网关信息,如下:
1900(config)#ip address 172.16.10.16 255.255.255.0
1900(config)#ip default-gateway 172.16.10.1
1900(config)#

2950下的配置是在VLAN1接口下配置,VLAN1是管理VLAN,默认所有接口均是VLAN1的成员,配置如下:
2950(config)#int vlan1
2950(config-if)#ip address 172.16.10.17 255.255.255.0
2950(config-if)#no shut
2950(config-if)#exit
2950(config)#ip default-gateway 172.16.10.1
2950(config)#
注意2950的IP地址配置是在VLAN1接口下,另外要注意打开接口

Configuring Interface Description

配置描述信息,在接口配置模式下使用description命令,1900下的描述信息不能使用空格键,如下:
1900(config)#int e0/1
1900(config-if)#description Cisco_VLAN
1900(config-if)#int f0/26
1900(config-if)#description trunk_to_building_4
1900(config-if)#

2950下的描述就可以使用空格键,如下:
2950(config)#int fa 0/1
2950(config-if)#description Sales Printer
2950(config-if)#^Z
可以使用show interface和show running-config命令来查看这些描述信息

Erasing the Switch Configuration

1900和2950的配置文件是存储在NVRAM里的,但是1900里你不能查看NVRAM或startup-config的内容,只能查看running-config的内容,在1900里,你对配置所进行的修改自动被复制到NVRAM里,所以没有copy run start这样的命令;但是2950就有startup-config和running-config,使用copy run start来保存配置到NVRAM里,擦除2950里startup-config文件使用erase startup-config命令;擦除1900里的使用delete命令.如下:
1900#delete ?
nvram NVRAM configuration
vtp Reset VTP configuration to defaults
1900#delete nvram
2950如下:
2950#erase startup-config


Chapter7 Virtual LANs(VLANs)
VLAN Basics

如何在1个交换性的网络里,分割广播域呢?答案是创建VLAN.VLAN是连接到定义好了的switch的端口的网络用户和资源的逻辑分组.给不同的子网分配不同的端口,就可以创建更小的广播域.默认情况下,在某个VLAN中的主机是不可以与其他VLAN通信的,除非你使用router来创建VLAN间的通信

VLAN的一些特点:
1.网络的增加,移动和改变,只需要在适当的VLAN中配置合适的端口
2.安全,因为不同VLAN的用户不能互相通信,除非依靠router来做VLAN间的通信
3.因为VLAN可以被认为是按功能划分的逻辑分组,所以VLAN和物理位置,地理位置无关
4.VLAN增加安全性
5.VLAN增加广播域的数量,而减小广播域的大小

Broadcast Control

每种协议都会有广播的现象发生,至于发生不频率,次数,一般由以下几点决定:
1.协议类型
2.在网络上运行的应用程序
3.这些服务如何的被使用

Security

安全性是VLAN的1大特点,不同VLAN的用户不能互相通信,除非依靠router来做VLAN间的通信

Flexibility and Scalability

VLAN的灵活性和可扩展性:
1.可以不管物理位置如何,把适当的端口分配到适当的 VLAN中就可以了.可以把VLAN理解成下面的样子,如图:
http://bbs.**********.com/UploadFil...91446370092.jpg
2.当VLAN增加的太大以后,你可以划分更多的VLAN,来减少广播消耗掉更多带宽的影响,在VLAN中的用户越少,被广播影响的就越少
来比较下下面2个图,明显可以发现,图2,即VLAN的具有更高的灵活性和可扩展性,如下:
http://bbs.**********.com/UploadFil...91521144367.jpg
http://bbs.**********.com/UploadFil...15132887548.jpg

VLAN Memberships

手动由管理员分配端口划分的VLAN叫静态VLAN(static VLAN);使用智能管理软件,动态划分VLAN的叫动态VLAN(dynamic VLAN)

Static VLANs

静态VLAN:静态VLAN安全性较高,手动划分端口给VLAN,和设备的物理位置没什么关系.而且,每个VLAN中的主机必须拥有正确的IP地址信息,如VLAN2配置为172.16.20.0/24

Dynamic VLANs

动态VLAN:使用智能管理软件,可以基于MAC地址,协议,甚至应用程序来动态创建VLAN.Cisco设备管理员可以使用VLAN管理策略服务器(VLAN Management Policy Server,VMPS)的服务来建立个MAC地址数据库,来根据这个动态创建VLAN,VMPS数据库把MAC地址映射VLAN上

Identifying VLANs

当帧在网络中被交换,switches根据类型对其跟踪,加上根据硬件地址来判断如何对它们进行操作.有1点要记住的是:在不同类型的连接中,帧被处理的方式也不一样

交换环境中的2种连接类型:
1.access links:指的是只属于一个VLAN,且仅向该VLAN转发数据帧的端口,也叫做native VLAN.switches把帧发送到access-link设备之前,移去任何的VLAN信息.而且access-link设备不能与VLAN外通信,除非数据包被路由
2.trunk links:指的是能够转发多个不同VLAN的通信的端口.trunk link必须使用100Mbps以上的端口来进行点对点连接,1次最多可以携带1005个VLAN信息.trunk link使你的单独的1个端口同时成为数个VLAN的端口,这样可以不需要层3设备.当你在switches之间使用了trunk link,多个VLAN的信息将从这个连接上通过;如果在你switches之间没有使用trunk link而使用一般的连接,那么只有VLAN1的信息通过这个连接被互相传递.VLAN1默认作为管理VLAN

Frame Tagging

frame tagging:帧的鉴别方法.当帧到达每个switch,首先先检查VLAN ID,然后决定如何对帧进行处理.当帧到达和VLAN ID所匹配的access link的时候,switch移去VLAN标识符

VLAN Identification Method

VLAN标识符:在交换机的trunk link上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN.附加VLAN信息的方法,最具有代表性的有:
1.Inter-Switch Link(ISL):属于Cisco私有,只能在快速和千兆以太网连接中使用,ISL路由可以使用在switch的断端口,router的接口和服务器接口卡等
2.IEEE 802.1Q:俗称dot 1 Q.由IEEE创建,所以在Cisco和非Cisco设备之间,就不能使用ISL必须使用802.1Q.802.1Q所附加的VLAN识别信息,位于数据帧中的源MAC地址与类型字段之间.基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签
当然ISL和802.1Q的主要目的是提供VLAN间通信

Inter-Switch Link(ISL) Protocol

ISL:ISL运作在层2,ISL是1种外部标签处理过程,所以原始的数据帧不被改变,ISL在数据帧头部加上26字节长的ISL头部信息,在数据帧尾部加上4字节的FCS字段进行CRC运算,所以只有支持ISL的设备才能对它进行读取,最大程度1522字节.当帧被传送到access link时,ISL封装信息将被移去

使用trunk link在多个VLAN中行走,比使用router连接的好处是:减少延时间

VLAN Trunking Protocol(VTP)

VTP也是Cisco创建的,但是现在已经不为Cisco所私有.VTP的主要目的是在1个交换性的环境中管理所有配置好的VLAN使所有的VLAN保持一致性VTP允许增加,删除和重命名VLAN,然后这些修改后的信息传播到整个VTP域里的所有switches上

VTP的一些优点:
1.保持VLAN信息的连续性
2.精确跟踪和监视VLAN
3.动态报告增加了的VLAN信息给VTP域中所有switch
4.可以使用即插即用(plug-and-play)的方法增加VLAN
5.可以在混合型网络中进行trunk link,比如以太网到ATM LANE,FDDI等

在你使用VTP管理VLAN之前,必须先创建个VTP服务器(VTP server),所有要共享VLAN信息的服务器必须使用相同的域名.而且,假如你把某个switch和其他的switch配置在1个VTP域里,这个switch就只能和这个VTP域里的switch共享VLAN信息.其实,如果你只有1个VLAN,就不需要使用VTP了.VTP信息通过trunk端口进行发送和接收.可以给VTP配置密码,但是要记住的是,所有的switch必须配置相同的密码

switch通告VTP管理域信息,加上版本号和已知VLAN配置参数信息.还有种叫做透明VTP模式(transparent VTP mode),在这种模式里,你可以给switch配置成通过trunk端口转发VTP信息,但是不接受VTP更新信息来更新它自己的VTP数据库

switch通过VTP通告检测到增加的VLAN,然后把新增加的VLAN和已有的联结在一起共享信息.新的更新信息在之前的版本号上加1

VTP Modes of Operation

在VTP域里操作的3种模式:
1.服务器模式(server mode):所有Catalyst switches的默认设置,1个VTP域里必须至少要有1个服务器用来传播VLAN信息,对VTP信息的改变必须在服务器模式下操作.配置保存在NVRAM里
2.客户机模式(client mode):在这种模式下,switches从VTP服务器接受信息,而且它们也发送和接收更新,但是它们不能做任何改变.在VTP服务器通知客户switches说增加了新的VLAN之前,你不能在客户switch的端口上增加新的VLAN.配置不保存在NVRAM里
3.透明模式(transparent mode):该模式下的switch不能增加和删除VLAN,因为它们保持的有自己的数据库,不和其他的共享.配置保存在NVRAM里

VTP Pruning

VTP pruning:减少广播,组播,单播,保留带宽.VTP pruning只在trunk link上发送广播.默认情况,VTP pruning在所有的switches上是没有启用的.当你在VTP服务器上启用了VTP pruning,整个VTP域就启用了VTP pruning,默认只能在VLAN2到VLAN1005,VLAN1是管理VLAN

Routing between VLANs

可以使用支持ISL路由的router来连接VLAN,支持ISL路由的最低型号是2600系列,1600,1700和2500系列都不支持.如下图,就是router和每个VLAN之间的关联,每个router的接口都插入1个access link,这个同时也说明了router的每个接口的IP地址都是每个VLAN的默认网关:
http://bbs.**********.com/UploadFil...21029547866.jpg
假如你有太多的VLAN,数量超过了router接口数量,明显上面的方法就不适用了.你可以使用Cisco的3层switch Cisco3550,或者使用router的快速以太网接口来做ISL或者802.1Q的 trunk link,这样的方法叫做单臂路由(router on a stick).如下图:
http://bbs.**********.com/UploadFil...10292693009.jpg

Configuring VLANs

创建VLAN:
1900下,使用vlan [vlan#] name [name] [vlan#]命令, 如下:
>en
#config t
(config)#hostname 1900
1900(config)#vlan 2 name sales
1900(config)#vlan 3 name marketing
1900(config)#vlan 4 name mis
1900(config)#exit
验证,使用show vlan命令,记住在你没给VLAN分配端口之前,之前做的VLAN是不会起作用的.而且所有的端口默认是处在VLAN1的,VLAN1是管理VLAN.如下:
1900#sh vlan
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default Enable 1-12, AUI, A, B
2 sales Enable
3 marketing Enable
(略)
在2950下创建VLAN,在特权模式下使用vlan database命令,创建命令和1900下的类似,注意结尾使用apply命令.如下:
2950#vlan database
2950(vlan)#vlan 2 name Marketing
VLAN 2 modified:
Name: Marketing
2950(vlan)#vlan 3 name Accounting
VLAN 3 added:
Name: Accounting
2950(vlan)#apply
APPLY complete
2950(vlan)#Ctrl+C
2950#
使用show vlan或者show vlan brief命令验证下:
2950#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1...Fa0/12
2 Marketing active
3 Accounting active
(略)

Assigning Switch Ports to VLANs

创建了VLAN,接下来要做的就是给VLAN分配端口.1900下,使用vlan-membership命令1次只能分配1个,可以static或dynamic作为参数,如下:
1900(config)#int e0/2
1900(config-if)#vlan-membership static 2
1900(config)#int e0/4
1900(config-if)#vlan-membership static 3
1900(config)#int e0/5
1900(config-if)#vlan-membership static 4
1900(config-if)#exit
1900(config)#exit
1900#
验证,如下:
1900#sh vlan
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default Enable 1-12, AUI, A, B
2 sales Enable 2
3 marketing Enable 4
(略)
2950下的配置,使用switchport access vlan [vlan#]命令,如下:
2950(config-if)#int f0/2
2950(config-if)#switchport access vlan 2
2950(config-if)#int f0/3
2950(config-if)#switchport access vlan 3
2950(config-if)#int f0/4
2950(config-if)#switchport access vlan 4
2950(config-if)#exit
2950(config)#exit
2950#
验证配置信息,如下:
2950#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/12
2 Marketing active Fa0/2
3 Accounting active Fa0/3
(略)

Configuring Trunk Ports

1900只使用动态ISL(DISL)封装方式,在快速以太网配置trunk,在接口配置模式下使用trunk [参数]的命令,如下,将26接口设置为trunk端口:
1900(config)#int f0/26
1900(config-if)#trunk ?
auto Set DISL state to AUTO
desirable Set DISL state to DESIRABLE
nonegotiate Set DISL state to NONEGOTIATE
off Set DISL state to OFF
on Set DISL state to ON
1900(config-if)#trunk on
设置参数为on即接口将作为永久ISL的trunk端口,可以和和相连的设备协商,并且把连接转换成trunk link
2950下在接口配置模式,使用switchport命令,如下:
2950(config)#int f0/12
2950(config-if)#switchport mode trunk
2950(config-if)#^Z
2950#
验证配置信息:
2950#sh run
(略)
!
interface FastEthernet0/12
switchport mode trunk
no ip address
!
(略)

Configuring Inter-VLAN Routing

使VLAN间互相通信,就必须使用router或者3层switch来连接.要在router的快速以太网接口支持ISL和802.1Q,要把接口划分成许多逻辑接口(非物理),1个接口对应1个VLAN.这些接口就叫子接口(subinterfaces).还有要必须知道的是,默认你不可能在1900和2950之间做trunk连接,因为1900只支持ISL路由而2950只支持802.1Q路由,2种相互不兼容

给连接1900的trunk端口配置,使用encapsulation isl [vlan#]命令,如下:
2600Router(config)#int f0/0.1
2600Router(config-subif)#encapsulation isl [vlan#]
给连接2950的这样配置,如下:
2600Router(config)#int f0/0.1
2600Router(config-subif)#encapsulation dot1q [vlan#]

Configuring VTP

默认下,1900和2950都被配置成VTP服务器模式,配置VTP,先配置VTP域名,还有密码,是否pruning等.
1900下,在全局配置模式下使用vtp命令,如下:
1900(config)#vtp ?
client VTP client
domain Set VTP domain name
password Set VTP password
pruning VTP pruning
server VTP server
transparent VTP transparent
trap VTP trap
1900(config)#vtp server
1900(config)#vtp domain noco
1900(config)#vtp password noko
在特权模式下使用show vtp命令验证,如下:
1900#sh vtp
VTP version: 1
Configuration revision: 0
Maximum VLANs supported locally: 1005
Number of existing VLANs: 5
VTP domain name: noco
VTP password: noko
VTP operating mode: Server
(略)
2950如下:
2950(config)#vtp mode server
2950(config)#vtp domain noco
验证信息,如下:
2950#sh vtp ?
counters VTP statistics
status VTP domain status
2950#sh vtp status
(略)

Configuring Switching in Our Sample Internetwork

配置实例:
http://bbs.**********.com/UploadFil...11454766958.jpg
先配置2950C,如下
2950C(config)#enable secret noko
2950C(config)#line con 0
2950C(config-line)#login
2950C(config-line)#password noco
2950C(config-line)#line vty 0 15
2950C(config-line)#login
2950C(config-line)#password noco
2950C(config-line)#banner motd #
2950C
#
2950C(config-line)#exit
2950C(config)#int vlan1
2950C(config-if)#ip address 172.16.10.2 255.255.255.0
2950C(config-if)#no shut
2950C(config-if)#exit
2950C(config)#up default-gateway 172.16.10.1
2950C(config)#^Z
2950C#copy run start
配置2950B,如下:
2950B(config)#enable secret noko
2950B(config)#line con 0
2950B(config-line)#login
2950B(config-line)#password noco
2950B(config-line)#line vty 0 15
2950B(config-line)#login
2950B(config-line)#password noco
2950B(config-line)#banner motd #
2950B
#
2950B(config-line)#exit
2950B(config)#int vlan1
2950B(config-if)#ip address 172.16.10.3 255.255.255.0
2950B(config-if)#no shut
2950B(config-if)#exit
2950B(config)#up default-gateway 172.16.10.1
2950B(config)#^Z
2950B#copy run start
配置trunk,2950B如下:
2950B(config)#int f0/1
2950B(config-if)#switchport mode trunk
2950B(config-if)#int f0/4
2950B(config-if)#switchport mode trunk
2950B(config-if)#int f0/5
2950B(confgi-if)#switchport mode trunk
配置trunk,2950C如下:
2950C(config)#int f0/4
2950C(confgi-if)#switchport mode trunk
2950C(config-if)#int f0/5
2950C(config-if)#switchport mode trunk
验证trunk信息,使用show interface trunk命令.如下:
2950B#sh int trunk
Port Mode Encapsulation Status Native vlan
Fa0/1 on 802.1q trunking 1
Fa0/4 on 802.1q trunking 1
Fa0/5 on 802.1q trunking 1
(略)
之前我们已经对2950B和2950C做了基本配置和trunk端口的配置,接下来应该设置VTP和创建VLAN,并且进行验证.2950C如下:
2950C(config)#vtp mode server
2950C(config)#vtp domain Cisco
2950C(config)#^Z
2950C#vlan database
2950C(vlan)#vlan 2 name sales
2950C(vlan)#vlan 3 name marketing
2950C(vlan)#apply
2950C(vlan)#^C
2950C#sh vlan brief
(略)
接下来分配端口,把Fa0/2分配给VLAN2,Fa0/3分配给VLAN3,默认所有的端口都处在VLAN1下,配置如下:
2950C(config)#int fa0/2
2950C(config-if)#switchport access vlan2
2950C(config)#int fa0/3
2950C(config-if)#switchport access vlan3
验证信息,注意VLAN1里的Ports栏,如下:
2950C#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/10
2 sales active Fa0/2
3 marketing active Fa0/3
配置2950B,把它设置成客户模式,2950B从2950C接收VLAN信息,如下:
2950B(config)#vtp mode client
2950B(config)#vtp domain Cisco
2950B(config)#^Z
验证,注意2950B已经从2950C知道了VLAN的信息,如下:
2950B#sh vlan brief
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1...Fa0/12
2 sales active
3 marketing active
但是仍然要给2950B分配端口,如下:
2950B(config)#int fa0/2
2950B(config-if)#switchport access vlan2
2950B(config)#int fa0/3
2950B(config-if)#switchport access vlan3
验证信息,如下:
VLAN Name Status Ports
----------------------------------------------------------------------------
1 default active Fa0/1 Fa0/5...Fa0/12
2 sales active Fa0/2
3 marketing active Fa0/3
到现在,2950C和2950B的配置就算是完成了,经过验证,我们也没发现什么问题,接下来该配置什么呢?当然是配置VLAN间的通信,根据上面的拓扑图,可以知道需要在RouterB上进行配置,如下:
RouterB(config)#hostname Trunkrouter
Trunkrouter(config)#int f0/0
Trunkrouter(config-if)#no ip address
Trunkrouter(config-if)#no shut
创建子接口,并定义封装类型,如下:
Trunkrouter(config-if)#int f0/0.1
Trunkrouter(config-subif)#encapsulation dot1q 1
Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0
Trunkrouter(config-if)#int f0/0.2
Trunkrouter(config-subif)#encapsulation dot1q 2
Trunkrouter(config-subif)#ip address 172.16.20.1 255.255.255.0
Trunkrouter(config-if)#int f0/0.3
Trunkrouter(config-subif)#encapsulation dot1q 3
Trunkrouter(config-subif)#ip address 172.16.30.1 255.255.255.0
Trunkrouter(config-if)#exit
创建子接口,每个接口对应1个VLAN.注意,如果你试图在第一个子接口分配IP地址,将收到错误信息,除非你先定义了封装类型,如下:
Trunkrouter(config-if)#int f0/0.1
Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0
Configuring IP routing on a LAN subinterface is only allowed if that subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q, or ISL VLAN.
验证配置信息,如下:
Trunkrouter#sh run

Chapter8 Managing a Cisco Interwork
The Internal Components of a Cisco Router

Cisco Router的一些组件:
bootstrap:存储在ROM中的微码(microcode)中,用来在初始化的时候启动router,然后加载IOS
POST:存储在ROM中的微码中,用来检查硬件基本配置是否正常,然后决定哪些接口可用
ROM monitor:存储在ROM中的微码中,作用是测试和排疑等
Mini-IOS:Cisco叫它RXBOOT或bootloader,它是存储在ROM中的,IOS的简化版本,用来把IOS加载到闪存中
RAM(random-access memory):用来保存数据包缓存,ARP缓存,路由表,和running-config配置文件.某些router上,IOS可以从RAM中运行
ROM(read-only memory):用来启动和维持router正常化
Flash memory(闪存):用来存放IOS,当router重新启动的时候闪存是不会被擦除的,由Intel创造的EEPROM
NVRAM(nonvolatile RAM):存储startup-config配置文件,当router重新启动的后,这些文件是不会被擦除的
configuration register:用来控制router如何启动,这个值可以使用show version来查看,一般为0x2102(16进制),含义是告诉router从闪存里加载IOS和从NVRAM里加载配置文件

The Router Boot Sequence

启动序列用来测试硬件和加载所必需的软件,包括以下几个步骤:
1.先进行POST,测试硬件
2.bootstrap查找和加载IOS
3.IOS在NVRAM中查找有效的startup-comfig配置文件
4.如果在NVRAM里查找到了这个配置文件,router就可操作;如果文件不存在,router进到setup模式

Managing Configuration Registers

Cisco的router有1个存储在NVRAM中的,16位长的configuration register.默认这个值0x2102设置成从闪存中加载IOS和从NVRAM中查找启动配置文件

Understanding the Configuration Register Bits

一些常见的位的含义:
1.第0到3位:启动字段
2.第6位:忽略NVRAM内容
3.第8位:禁用BREAK

启动字段(00到03):
1.设置成00:ROM monitor模式,进入到这个模式,configuration register的值设置成2100.然后要启动router的话需要手动在命令行提示符rommon>下输入b(感觉有点类似Solaris的OpenBoot哈哈)
2.设置成01:从ROM中的镜象启动,把configuration register的值设置成2101,提示符为router(boot)>
3.设置成02到0F:定义默认启动文件名,在NVRAM中查找

Checking the Current Configuration Register Value

使用show version命令可以查看当前configuration register的值,在输出的最下部分.这个命令将会显示硬件的配置信息,软件版本,配置文件信息,启动镜象等

Changing the Configuration Register

可以通过修改configuration register的值来决定router的启动和运行方式.在全局配置模式下使用config-register的命令.修改值为0x101,注意输出内容,如下:
Router(config)#config-register 0x101
Router(config)#^Z
Router#sh ver
(略)
Configuration register is 0x2102 (will be 0x0101 at next reload)
注意修改后的值和当前值,修改后的值只在重新启动后生效

Recovering Passwords

如果你把密码忘记了怎么办?之前提到过,位6可以忽略掉NVRAM里的储存的启动配置文件的内容,默认是0x2102,所以我们把值修改成0x2142,就可以达到忽略NVRAM这个效果.下面是密码恢复的主要几个步骤:
1.在启动router的时候使用BREAK中断启动
2.把configuration register的值设置成0x2142
3.重新启动
4.进入特权模式
5.把startup-config文件复制到running-config文件中
6.修改密码
7.把configuration register的值还原为0x2102
8.保存配置
9.重新启动

具体的修改,2500系列和2600系列有一点不一样,我们先来看2600系列的修改实例,使用Ctrl+BREAK中断启动.注意提示monitor: command “boot” aborted due to user interrupt.
如下:
System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
(略)
PC = 0xfff0a530, Vector = 0x500, SP = 0x80004374
monitor: command “boot” aborted due to user interrupt
rommon 1 >confreg 0x2142
You must reset or power cycle for new config to take effect
提示重新启动,如下:
rommon 1>reset
重新启动后,进入特权模式,把startup-config复制到running-config中,并修改密码.如下:
Router#copy start run
Router#conf t
Router(config)#enable secret noko
把configuration register的值还原,并保存,如下:
Router(config)#config-register 0x2102
Router(config)#^Z
Router#copy run start

2500系列下的修改,在启动时输入o中断启动,再用o/r修改configuration register的值,如下:
System Bootstrap, Version 11.0(10c), SOFTWARE
(略)
Abort at 0x1098FEC (PC)
>o
(略)
>0x2142
重新启动,输入I,如下:
>I
接下来的步骤和2600系列一样,如下:
Router#copy start run
Router#conf t
Router(config)#enable secret noko
把configuration register的值还原,并保存,如下:
Router(config)#config-register 0x2102
Router(config)#^Z
Router#copy run start

Backing Up and Restoring the Cisco IOS

把IOS备份到TFTP服务器前的准备工作:
1.确认你可以访问TFTP服务器
2.确认TFTP服务器是否有足够空间来保存IOS文件
3.确定名称和路径

Verifying Flash Memory

验证闪存信息,使用show flash命令,如下:
Router#sh flash
System flash directory:
File Length Name/status
1 8121000 c2500-js-l.112-18.bin

Backing Up the Cisco IOS

把IOS备份到TFTP服务器上,特权模式下使用copy flash tftp命令,记住备份之前最好对服务器ping下看是否是通的

Restoring or Upgrading the Cisco Router IOS

从TFTP恢复或者升级IOS,特权模式下使用copy tftp flash命令

Backing Up and Restore the Cisco Configuration

把配置文件备份到TFTP服务器,和把IOS备份到TFTP服务器的命令类似;恢复也是如此:
1.startup-config文件的备份:copy startup-config tftp
2.startup-config文件的恢复:copy tftp startup-config
3.running-config文件的备份:copy running-config tftp
4.running-config文件的恢复:copy tftp running-config

验证命令为show running-config和show startup-config

Erasing the Configuration

擦除启动配置文件startup-config文件,在特权模式下使用erase startup-config命令,擦除了以后,立即重新启动的话,router将进到setup模式

Using Cisco Discovery Protocol(CDP)

Cisco发现协议(CDP)是Cisco私有,帮助用来管理员收集本地相连和远程设备的信息.

Getting CDP Timers and Holdtime Information

之前提到过CDP的一些介绍,show cdp命令提供2个信息给你:
1.CDP timer:CDP包传给每个活跃接口的时间间隔,默认是60秒
2.CDP holdtime:某设备从相邻设备收到的包的保持时间,默认是180秒
如下:
Router#sh cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Router#
可以修改默认的时间,分别在全局配置模式下使用cdp timer和cdp holdtime命令,如下:
Router#conf t
Router(config)#cdp timer 90
Router(config)#cdp holdtime 240
在所有接口上关闭CDP,在全局配置模式下使用no cdp run命令;关闭某个接口的CDP使用no cdp enable命令.再次打开分别使用cdp run和ccdp enable命令.如下:
Router(config)#no cdp run
Router(config)#int fa0/1
Router(config-if)#no cdp enable

Gathering Neighbor Information

使用show cdp neighbour可以显示直接相连的设备的信息,如下:
Router#sh cdp nei
Capability Codes: R – Router, T – Trans Bridge,
B – Source Route Bridge, S – Switch, H – Host,
I – IGMP, r – Repeater
Device ID Local Intrfce Holdtime Capability Platform Port ID
1900Switch Eth 0 238 T S 1900 2
2500B Ser 0 138 R 2500 Ser 0
Router#
一些选项的解释如下:
1.Device ID:直接相连的设备的主机名
2.Local Interface:接收CDP包的接口
3.Holdtime:某设备从相邻设备收到的包的保持时间,如果过了这个时间仍然没收到新的CDP包,就将被丢弃
4.Capability:见输出最顶部信息
5.Platform:Cisco设备的类型
6.Port ID:相连设备的接受CDP包信息的接口
要查看更为详细的CDP信息可以使用show cdp neighbor detail或show cdp entry *命令

Gathering Interface Traffic Information

使用show cdp traffic命令显示接口CDP包流量信息,如下:
Router#sh cdp traffic
CDP counters:
Packets output: 13, Input: 8
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid packet: 0, Fragmented: 0
Router#

Gathering Port and Interface Information

使用show cdp interface命令显示接口的CDP状态信息

Using Telnet

在特权模式下使用telnet [IP地址]的命令进行telnet,如下:
Router#telnet 172.16.10.2
Trying 172.16.10.2 … Open
Password required, but none set
[Connection to 172.16.10.2 closed by foreign host]
Router#
由上面提示可以看出,VTY没有密码配置的话是不允许你telnet的(除非你使用了no login命令,但是安全性几乎为0).所以在telnet前,记得先给目标设备的VTY线路配置密码

Telnetting into Multiple Devices Simultaneously

当你telnet到远程设备的时候,可以在任何情况下使用exit命令来终止连接.但是假如你想保持这个连接,同时又对另外1个设备进行telnet的时候,使用Ctrl+Shift+6,再按下X键,就可以回到本地console,再对另外1设备进行telnet.如下:
2500#telnet 172.16.10.2
Trying 172.16.10.2 … Open
User Access Verification
Password:
2600>[Ctrl+Shift+6,X]
2500#telnet 192.168.0.32
(略)

Checking Telnet Connections

查看从本地到远程的连接会话,使用show sessions命令,如下:
2500#sh sessions
Conn Host Address Byte Idle Conn Name
1 172.16.10.2 172.16.10.2 0 0 172.16.10.2
*2 192.168.0.32 192.168.0.32 0 0 192.168.0.32
2500#
注意*所在的会话代表你的最后1个会话,可以直接敲2下Enter键回到*号会话,也可以输入前面的数字,再敲2下Enter键回到相应会话

Checking Telnet Users

使用show users命令列举本地所有活动console和VTY端口,如下:
2500#sh users
Line User Host(s) Idle Location
* 0 con 0 172.16.10.2 00:07:52
192.168.0.32 00:07:18
注意上面输出的con代表本地console,这个例子可以看到从本地console连接了远程的2个设备.接下来在我们远程设备上使用这个命令,如下:
2600>sh users
Line User Host(s) Idle Location
0 con 0 idle 9
*2 vty 0
这个输出内容可以看出console是活动的,而且VTY端口2被使用

Closing Telnet Sessions

之前说过,要终止telnet会话,在远程(被telnet)设备上使用exit命令.但是要从本地设备终止会话的话,就需要在本地使用disconnect命令,如下:
2500#disconnect ?
<1-2> The number of an active network connection
WORD The name of an active network connection
<cr>
2500#disconnect 1
Closing connection to 172.16.10.2 [confirm]
2500#
验证如下:
2600#sh users
Line User Host(s) Idle Location
*0 con 0 idle 0
1 aux 0 idle 0
2 vty 0 idle 172.16.10.1
清除连接,使用clear line命令,并验证,如下:
2600#clear line 2
[confirm]
[OK]
2600#sh users
Line User Host(s) Idle Location
*0 con 0 idle 0
1 aux 0 idle 1
2600#

Resolving Hostnames

2种解析主机名到IP地址的办法:
1.在每个router上建立主机表(host table)
2.建立DNS服务器(Domain Name System server),这个类似动态主机表

Building a Host Table

主机表只提供包含其中的解析,建立主机表的命令是ip host [主机名] [TCP端口号] [IP地址],默认TCP端口号为23.1个主机可以对应最多8个IP地址.如下:
2500(config)#ip host 2501B 172.16.10.2
2500(config)#ip host 1900S 192.168.0.32
2500(config)#^Z
使用show hosts命令验证新建的主机表,如下:
2500#sh hosts
Default domain is not set
Name/address lookup uses domain service
Name servers are 255.255.255.255
Host Flags Age Type Address(es)
2501B (perm, OK) 0 IP 172.16.10.2
1900S (perm, OK) 0 IP 192.168.0.32
2500#
注意Flags选项的perm,代表是手动输入的,如果这项是temp的话,表明是由DNS解析的

Using DNS to Resolve Names

假如你在CLI下输入了1个Cisco设备不能识别的命令,它会默认通过DNS来进行解析(它认为是主机名).这个不好的地方是要花费额外的时间等待DNS解析完.可以在全局配置模式下使用no ip domain-lookup命令关闭它

假如你在你的网络里有DNS服务器,可以使用1些命令使DNS解析开始工作:
1.第一条命令是:ip domain-lookup,这个命令默认是打开了的.如果你之前使用了no ip domain-lookup的话,就要用这条命令打开它
2.第二条命令是:ip name-server.设置DNS服务器的IP地址,可以使1个IP地址对应多达6个服务器
3.最后条命令是:ip domain-name.虽然这个命令是可选的,但是最好还是设置1下
实例如下:
2500(config)#ip domain-lookup
2500(config)#ip name-server 192.168.0.23
2500(config)#ip domain-name noko.com
2500(config)#^Z
2500#
可以使用ping命令来严正下,如下:
2500#ping 1900S
Translating “1900S”…domain server (192.168.0.23) [OK]
(略)
使用show hosts命令验证下,如下:
2500#sh hosts
Default domain is noko.com
Name/address lookup uses domain service
Name servers are 192.168.023
Host Flags Age Type Address(es)
2501B (perm, OK) 0 IP 172.16.10.2
1900S.noko.com (temp, OK) 0 IP 192.168.0.32
2500#

Checking Network Connectivity

ping和traceroute命令是检查网络连接是否完好的有利工具
Chapter9 Managing Traffic with Access Lists
Introduction to Access Lists

访问列表(access list,ACL)的主要作用是过滤你不想要的数据包.设置ACL的一些规则:
1.按顺序的比较,先比较第一行,再比较第二行..直到最后1行
2.从第一行起,直到找到1个符合条件的行;符合以后,其余的行就不再继续比较下去
3.默认在每个ACL中最后1行为隐含的拒绝(deny),如果之前没找到1条许可(permit)语句,意味着包将被丢弃.所以每个ACL必须至少要有1行permit语句,除非你想想所有数据包丢弃

2种主要的访问列表:
1.标准访问列表(standard access lists):只使用源IP地址来做过滤决定
2.扩展访问列表(extended access lists):它比较源IP地址和目标IP地址,层3的协议字段,层4端口号来做过滤决定

利用ACL来过滤,必须把ACL应用到需要过滤的那个router的接口上,否则ACL是不会起到过滤作用的.而且你还要定义过滤的方向,比如是是想过滤从Internet到你企业网的数据包呢还是想过滤从企业网传出到Internet的数据包呢?方向分为下面2种:
1.inbound ACL:先处理,再路由
2.outbound ACL:先路由,再处理

一些设置ACL的要点:
1.每个接口,每个方向,每种协议,你只能设置1个ACL
2.组织好你的ACL的顺序,比如测试性的最好放在ACL的最顶部
3.你不可能从ACL从除去1行,除去1行意味你将除去整个ACL,命名访问列表(named access lists)例外(稍后介绍命名访问列表)
4.默认ACL结尾语句是deny any,所以你要记住的是在ACL里至少要有1条permit语句
5.记得创建了ACL后要把它应用在需要过滤的接口上
6.ACL是用于过滤经过router的数据包,它并不会过滤router本身所产生的数据包
7.尽可能的把IP标准ACL放置在离目标地址近的地方;尽可能的把IP扩展ACL放置在离源地址近的地方

Standard Access Lists

介绍ACL设置之前先介绍下通配符掩码(wildcard masking).它是由0和255的4个8位位组组成的.0代表必须精确匹配,255代表随意,比如:172.16.30.0 0.0.0.255,这个告诉router前3位的8位位组必须精确匹配,后1位8位位组的值可以为任意值.如果你想指定172.16.8.0到172.16.15.0,则通配符掩码为0.0.7.255(15-8=7)

配置IP标准ACL,在特权模式下使用access-lists [范围数字] [permit/deny] [any/host]命令.范围数字为1到99和1300到1999;permit/deny分别为允许和拒绝;any为任何主机,host为具体某个主机(需要跟上IP地址)或某1段

我们来看1个设置IP标准ACL的实例:
http://bbs.**********.com/UploadFil...12392068957.jpg
如图,router有3个LAN的连接1个Internet的连接.现在,销售部的用户不允许访问金融部的用户,但是允许他们访问市场部和Internet连接.配置如下:
Router(config)#access-list 10 deny 172.16.40.0 0.0.0.255
Router(config)#access-list 10 permit any
注意隐含的deny any,所以末尾这里我们要加上permit any,any等同于0.0.0.0 255.255.255.255.接下来把ACL应用在接口上,之前说过了尽可能的把IP标准ACL放置在离目标地址近的地方,所以使用ip access-group命令把ACL 10放在E1接口,方向为出,即out.如下:
Router(config)#int e1
Router(config-if)#ip access-group 10 out

Controlling VTY(Telnet) Access

使用IP标准ACL来控制VTY线路的访问.配置步骤如下:
1.创建个IP标准ACL来允许某些主机可以telnet
2.使用access-class命令来应用ACL到VTY线路上

实例如下:
Router(config)#access-list 50 permit 172.16.10.3
Router(config)#line vty 0 4
Router(config-line)#access-class 50 in
如上,进入VTY线路模式,应用ACL,方向为进来,即in.因为默认隐含的deny any,所以上面的例子,只允许IP地址为172.16.10.3的主机telnet到router上

Extended Access Lists

扩展ACL:命令是access-list [ACL号] [permit/deny] [协议] [源地址] [目标地址] [操作符] [端口] [log].ACL号的范围是100到199和2000到2699;协议为TCP,UDP等,操作符号有eq(表等于),gt(大于),lt(小于)和neq(非等于)等等;log为可选,表示符合这个ACL,就记录下这些日志

来看1个配置扩展ACL的实例:
http://bbs.**********.com/UploadFil...12392068957.jpg
假如要拒telnet和FTP到绝位于金融部的主机172.16.30.5,配置如下:
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 21
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 23
Router(config)#access-list 110 permit ip any any
记住默认隐含的deny all.应用到E1接口,注意方向为out,如下:
Router(config)#int e1
Router(config-if)#ip access-group 110 out

Named Access Lists

命名访问列表是创建标准和扩展访问列表的另外1种方法.它允许你使用命名的方法来创建和应用标准或者扩展访问列表.使用ip access-list命令来创建,如下:
http://bbs.**********.com/UploadFil...12392068957.jpg
Router(config)#ip access-list ?
extended Extended Acc
logging Control access list logging
standard Standard Access List
Router(config)#ip access-list standard ?
<1-99> Standard IP access-list number
WORD Access-list name
Router(config)#ip access-list standard BlockSales
Router(config-std-nacl)#?
Standard Access List configuration commands:
default Set a command to its defaults
deny Specify packets to reject
exit Exit from access-list configuration mode
no Negate a command or set its default
permit Specify packets to forward
Router(config-std-nacl)#deny 172.16.40.0 0.0.0.255
Router(config-std-nacl)#permit any
Router(config-std-nacl)#exit
Router(config)#^Z
Router#sh run
(略)
!
ip access-list standard BlockSales
deny 172.16.40.0 0.0.0.255
permit any
!
(略)
接下来应用到接口上,如下:
Router(config)#int 1
Router(config-if)#ip access-group BlockSales out
Router(config-if)#^Z
Router#

Monitoring Access Lists

一些验证ACL的命令,如下:
1.show access-list:显示router上配置了的所有的ACL信息,但是不显示哪个接口应用了哪个ACL的信息
2.show access-list [number]:显示具体第几号ACL信息,也不显示哪个接口应用了这个ACL
3.show ip access-list:只显示IP访问列表信息
4.show ip interface:显示所有接口的信息和配置的ACL信息
5.show ip interface [接口号]:显示具体某个接口的信息和配置的ACL信息
6.show running-config:显示DRAM信息和ACL信息,以及接口对ACL的应用信息

Chapter10 Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)
EIGRP Features and Operation

EIGRP是1种无分类(classless),增强的距离向量路由协议,和IGRP类似,EIGRP也使用AS,但是和IGRP不同的是,EIGRP在它的路由更新信息中要包含子网掩码的信息.这样,在我们设计的网络的时候,就允许我们使用VLSM和summarization.EIGRP有时候也算是混合型路由协议,因为它同时具有了距离向量路和链路状态的一些特征:比如它不像OSPF那样发送链路状态包而发送传统的距离向量更新;EIGRP也有链路状态协议的特征比如它在相邻router启动的时候同步路由表,然后只在拓扑结构发生变化的时候发送1些更新.这样就使得EIGRP能够很好的在1个大型网络中工作.EIGRP的主要特点如下:
1.通过PDMs(Protocol-Dependent Module)来支持IP,IPX和AppleTalk
2.有效的邻router的发现
3.通过可靠传输协议(Reliable Transport Protocol,RTP)进行通讯
4.通过扩散更新算法(Diffusing Update Algorithm,DUAL)来选择最佳路径

Protocol-Dependent Module

EIGRP的1大特点是它可以支持几种网络层协议:IP,IPX和AppleTalk等.能像EIGRP那样支持数种网络层协议的还有Intermediate System-to-Intermediate System(IS-IS)协议,但是这个协议只支持IP和Connectionless Network Service(CLNS).EIGRP通过PDMs来支持不同的网络层协议.每个EIGRP的PDM保持1个单独的路由信息表来装载某种协议(比如IP)的路由信息.也就是有IP/EIGRP表,IPX/EIGRP的表和AppleTalk/EIGRP表

Neighbor Discovery

在运行了EIGRP的router彼此进行交换信息之前,它们首先必须成为邻居(neighbor).建立邻居关系必须满足以下3个条件:
1.Hello信息或接受收ACK
2.AS号匹配
3.K值

链路状态协议趋向于使用Hello信息来建立邻居关系,它不会像距离向量那样周期性的发送路由更新.为了保持邻居关系,运行了EIGRP的router必须持续从邻居那里收到Hellos

如果不在1个AS内,router之间是不会共享路由信息的,也不会建立邻居关系.这样做的优点是在大型网络中可以减少特定某个AS内路由信息的传播

当EIGRP发现新邻居的时候,就开始通告整个路由表给别的router,当所有的router都知道新成员的加入,学习到新的路径以后,从那开始,路由表中有变动的部分才会传播给别的router.当router接收到邻居的更新以后,把它们保存在本地数据库表里

看下几个术语:
1.可行距离(feasible distance):到达一个目的地的最短路由的度
2.后继(successor):后继是一个直接连接的邻居router,通过它具有到达目的地的最短路由.通过后继router将包转发到目的地
3.通告距离(reported distance):相邻router所通告的相邻router自己到达某个目的地的最短路由的度
4.可行后继(feasible successor):可行后继是一个邻居router,通过它可以到达目的地,不使用这个router是因为通过它到达目的地的路由的度比其他router高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备择路由

Reliable Transport Protocol(RTP)

EIGRP使用一种叫做RTP的私有协议,来管理使用了EIGRP的router之间的通信,如RTP的名字,可靠(reliable)即为这个协议的关键.RTP负责EIGRP数据包到所有邻居的有保证和按顺序的传输.它支持多目组播或单点传送数据包的混合传输/出于对效率的考虑.只有某些E IGRP数据包被保证可靠传输.RTP确保在相邻router间正在进行的通信能够被维持.因此,它为邻居维护了一张重传表.该表指示还没有被邻居确认的数据包.未确认的可靠数据包最多可以被重传1 6次或直到保持时间超时,以它们当中时间更长的那个为限.EIGRP所使用的多目组播地址是224.0.0.10

Diffusing Update Algorithm(DUAL)

EIGRP使用DUAL来选择和保持到远端的最佳路径.它能使router判决某邻居通告的一个路径是否处于循环状态,并允许router找到替代路径而无须等待来自其他router的更新.这样做有助于加快网络的汇聚.这个算法顾及以下几点:
1.备份的路由线路
2.支持VLSM
3.动态路由恢复
4.没有发现线路的话发送查询寻找新路线

Using EIGRP to Support Large Networks

EIGRP在大型网络中能够工作的很好,包含了很多优点比如:
1.在1个单独的router上可以支持多个AS
2.支持VLSM和summarization
3.路由发现和保持

Multiple AS

只有AS号相同的router才能共享路由信息.把大型网络分成不同的AS,可以有效的加快汇聚.EIGRP的AD为90,而外部EIGRP(external EIGRP)的AD为170

VLSM Support and Summarization

之前说过EIGRP支持VLSM,也支持不连续子网.什么是不连续子网?,如下图:
http://bbs.**********.com/UploadFil...11441771288.jpg
如图可以看到,2个子网172.16.10.0/24和172.16.20.0/24由10.3.1.0/24来连接,但是routerA和B认为它们只有网络172.16.0.0

EIGRP支持在任何运行EIGRP的router上summary的手动创建,这样可以减少路由表的体积.EIGRP自动把网络summarize到等级边界,如下图:
http://bbs.**********.com/UploadFil...14542432642.jpg

Route Discovery and Maintenance
类似一些链路状态的协议,EIGRP通过Hello信息来发现邻居;而它又和距离向量类似,使用传闻路由的机制,即不主动去发现,而是听从别人的信息.EIGRP使用一系列的表来存储信息:
1.邻居表,记录了邻居的一些信息
2.拓扑表,记录了网络中的拓扑状态
3.路由表,根据这个来做路由决定

EIGRP Metrics

EIGRP使用混合度,包含到4个方面:
1.带宽
2.延迟(delay)
3.负载(load)
4.可靠性(reliability)
5.最大传输单元(maximum transmission unix,MTU)

默认情况下EIGRP使用带宽和延迟来决定最佳路径

Configuration EIGRP

配置EIGRP,首先在全局配置模式下使用router eigrp [AS号]命令.接下来再使用network命令定义直接相连的网络.仍然可以像配置IGRP那样使用passive-interface命令来禁止某个接口接收或发送Hello信息.并且记住EIGRP的AD是90

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值