1
ccna中文读书笔记 cisco certified network associate 640-801 icnd course notes chapter1 internetworking 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):ehernet术语之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.applicati 2.presentati 3.sessi 4.transport层:提供可靠和不可靠的数据投递;在错误数据重新传输前对其进行更正 5.network层:提供逻辑地址,用于routers的路径选择 6.data link层:把字节性质的包组成帧;根据mac地址提供对传输介质的访问;实行错误检测,但是不实行错误更正 7.physical层:在设备之间传输比特(bit);定义电压,线速,针脚等物理规范 osi参考模型每层的功能: 1.applicati 2.presentati 3.sessi 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 c protocol(dna scp) the transport layer the transport layer把数据分段重新组合成数据流(data stream) flow c 流控制(flow c 缓冲区溢出将导致数据的不完整.如果数据发送方传输数据过快,接受方将数据报(datagrams)暂时存储在缓冲区(buffer)里 可靠的数据传输采用了面向连接(c 1.接受方接受到被传输的段(segment)以后将发回确认(acknowledge)给发送方 2.任何没有经过确认的段将被重新传输 3.段在达到接受方之前应按照适当的顺序 4.可以进行管理的流控制技术用于避免拥塞,超载(overloading)和数据的丢失 c 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种叫做applicati integrated circuit(asic)的特殊硬件.asics可以在很低的延时(latency)里达到gigabit的速度;而bridges是基于软件性质的 延时:1个帧从进去的端口到达出去的端口所耗费的时间 透明桥接(transparent bridging):如果目标设备和帧是在同1个网段,那么层2设备将堵塞端口防止该帧被传送到其他网段;如果是和目标设备处于不同网段,则该帧将只会被传送到那个目标设备所在的网段 每个和switches相连的网段必须是相同类型的设备,比如你不能把令牌环(token ring)上的主机和以太网上的主机用switches混合相连,这种方式叫做media translati 在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种争夺(c 介质访问方法,这个机制使得在1个网络上所有主机共享带宽.采用了physical layer和data link layer的规范.它采用1种带冲突检测的载波监听多路访问的(carrier sense multiple access with collision detecti 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位,叫做组织唯一标志符(organizati 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.争夺(c 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) 直通线用于连接: 1.主机和switch/hub 2.router和switch/hub 直通线只使用1,2,3,6针脚,2端的连法是一一对应 crossover cable 交叉线用于连接: 1.switch和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口(c serial port)的,它采用1到8跟针脚,2端全部相反对应。 当主机与router的c 1.bps:9600 2.data bits:8 3.parity:n 4.stop bits:1 5.flow c data encapsulation 封装(encapsulati 协议数据单元(protocol data units,pdu):数据包括封装进去的信息在osi参考模型每层的叫法: 1.transport layer:segment 2.network layer:packet或者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/applicati 2.dod模型的host-to-host层对应osi参考模型的transport层 3.dod模型的internet层对应osi参考模型的network层 4.dod模型的network access层对应osi参考模型的最底2层 the process/application layer protocols process/applicati telnet,ftp,x windows,tftp,smtp,snmp,nfs和lpd等等 dynamic host c 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 c protocol,tcp) 2.用户数据报协议(user datagram protocol,udp) transmission c protocol(tcp) 当1个主机开始发送数据段(segment)的时候,发送方的tcp协议要与接受方的tcp协议进行协商并连接,连接后即所谓的虚电路(virtual circuit),这样的通信方式就叫做面向连接(connection-oriented).面向连接的最大优点是可靠,但是它却增加了额外的网络负担(overhead) user datagram protocol(udp) udp协议的最他特点是无连接(c key c 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 c 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 translati 一些私有地址的范围: 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 translati 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 translati 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 划分子网的几个捷径: 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进行搜索 一些网络问题的排难: 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的内核 ios的一些功能: 1.运载网络协议和功能 2.对产生高速流量的设备进行连接 3.增加网络安全性 4.提供网络的可扩展性来简易化网络的增长和冗余问题 5.可靠的连接网络资源 你可以通过以下方式进入ios: 1.通过router的c 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种电子可擦除只读存储器(electr erasable programmable read- memory,eeprom) 3.如果1和2正常,接下来它将在非易失性ram(nvram)中查找启动配置文件startup-c 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 c is now available press return to get started overview of router modes 配置router,需要进入到1个叫做配置模式的模式,在特权模式下输入c terminal进入全局配置模式(global c mode),在这之下输入的命令叫做全局命令,一旦输入,将对整个router产生影响.如下,注意提示符的变化: router#c c from terminal,memory or network [terminal]?(press enter) router(c 参数terminal,memory和network的区别: 1.c terminal:配置router的running-c 2.c memory: 配置router的startup-c 3.c network:配置存储在tftp主机的配置文件 interfaces 在全局配置模式下切换router接口,输入interface命令,?用于提示可选参数,为如下: router(c ? (略) serial serial 前半部分为参数,后半部分为描述,接着输入serial 0,进入router接口配置模式,如下: router(c serial 0 router(c subinterfaces 在router的某个接口划分逻辑子接口(subinterface),输入命令进入子接口模式,如下,注意提示符: router(c fa0/0.? <0-4294967295> fastehernet interface number router(c fa0/0.1 router(c 进入线路配置模式,注意提示符,如下: router(c c 0 router(c routing protocol c 给router配置路由协议,比如rip,注意提示符,如下: router(c rip router(c 从全局模式退出到特权模式可以使用快捷键ctrl+z editing and help features 一些特写: 1.在命令行下输入?,将得到该模式下可以使用的命令列表以及其描述 2.假如你不确定1个命令是如何写的,比如你只记得是字母c开头,你可以输入c加1个?,将得到该模式下可以使用的所有命令: router#c? clear clock c c 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 versi register的值 set passwords: 有5种密码用于加密你的cisco router: 1.控制口(c 2.辅助口(aux) 3.vty 4.enable password 5.enable secret enable passwords enable password:给c enable secret:给c password之上,如果同时设置了enable password和enable secret的情况下,必须输入不同的密码,如下: router(c password 123 router(c 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(c secret 321 如果vty线路的密码没有设置,你将无法使用telnet来连上它 auxiliary password 配置aux密码: router#c t router(c aux ? <0-0> first line number router(c aux 0 router(c router(c 123 c password 配置c router#c t router(c c ? <0-0> first line number router(c c 0 router(c router(c 123 router(c ? <0-35791> timeout in minutes router(c 0 ? <0-2147483> timeout in sec router(c 0 0 router(c synch exec-timeout命令:如果x分钟x秒不活动的话将自动退出,默认是10分钟,0 0代表永远不自动退出 logging synchr telnet password 配置vty密码:如果你的ios不是企业版(enterprise edition),默认你只能有5条vty线路,线路0到4.配置如下: router(c vty 0 ? <1-4> last line number router(c vty 0 4 router(c router(c 123 刚才说过了,如果你的vty线路没有配置密码的话,你将无法telnet连上它,它会报错:vty线路没有配置密码.但是你可以取消vty密码,这样就可以在没有密码的情况下进行telnet,处于安全考虑,此方法不推荐,配置如下: router(c vty 0 4 router(c login encryption your passwords 只有enable secret是加密的,当你在特权模式下输入sh running-c router#sh run (略) ! enable secret jhdflkdfg$#sdf enable password 123 ! (略) 对密码进行加密:在全局配置模式下使用service password-encrypti banners banner类似标语,问候语.最常用的是motd(message of the day),分界符用于分隔信息,但是分隔符不能出现在motd信息中,如下: router(c motd # the router is mine # router(c router#exit router c 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(c ethernet 0 但是cisco的2600,3600,4000和7000等系列采用了物理卡槽和模块化的端口机制.因此,命令变化为:interface type slot/port,比如: router(c fastethernet 0 % imcomplete command router(c fastethernet 0? / router(c fastethernet 0/? <0-1> fastethernet interface number router(c fastethernet 0/1 配置连接器的介质类型,使用media-type命令,不过这个一般是自动检测,如下: router(c fa 0/0 router(c ? 100basex use rj45 for -tx; sc f0 for �cfx mii use mii c bring up an interface 打开和关闭1个接口,分别使用shutdown和no shutdown命令,当你关闭某个接口的时候,使用sh interfaces命令可以查看接口状态,并且你将看到以下输出: router#sh int e0 ethernet0 is administratively down,line protocol is down (略) 接口是关闭的,所以你要手动打开它,如下: router#c t router(c e0 router(c shut router(c router#sh int e0 ethernet is up,line protocol is up (略) c an ip address on an interface 给某个接口配置ip地址,使用ip address [address] [mask]命令,如下: router(c e0 router(c address 172.16.10.2 255.255.255.0 记得把接口打开: router(c shut router(c 如果你需要在1个接口添加第二个子网地址,在末尾使用sec router(c e0 router(c address 172.16.20.2 255.255.255.0 sec router(c 来验证下: router#sh run (略) ! interface ethernet0 ip address 172.16.20.2 255.255.255.0 sec 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(c s0 router(c rate ? speed (bits per sec 1200 (略) 56000 64000 (略) router(c rate 64000 % error: this commands applies to dce interfaces router(c s1 router(c rate 64000 确定serial接口是否是dce线缆使用sh c router>sh c 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(c ? <1-10000000> bandwidth in kilobits router(c 64 hostnames 给router配置主机名,使用hostname命令,这个是本地标志,不影响router在internet上的工作,注意回车立即生效,如下: router(c noko noko(c noco noco(c descripti descripti noco(c e0 noco(c sales lan noco(c 来验证下: noco#sh int e0 (略) descripti sales lan (略) viewing and saving c 将running-c running-c startup-c noco#copy run start 可以使用erase startup-c noco#erase startup-c (略) noco#sh start %% n c memory is not present 假如在这个情况下在特权模式使用reload命令重新启动router,将进入setup模式 verifying your c 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 c command sh c router#sh c serial 0/0 (略) buffer size 1524 hd unit 0, v.35 dte cable (略) router#sh c 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发送1个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 c fastethernet0/0 c 192.168.20.0/24 is directly c serial 0/0 router# c代表的是:直接相连 c ip routing in our network 当1个router收到1个目标网络号没有在路由表中列出的包的时候,它并不发送广播寻找目标网络,而是直接丢弃它 几种不同类型的路由: 1.静态路由(static routing) 2.默认路由(default routing) 3.动态路由(dynamic 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通信,这条路由线路将自动从路由表中被删除.使用这个参数保证即使出现上述情况,这条路线仍然保持在路由表中 静态路由的具体配置: (图略) 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/1 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(c fa0/0 routera(c address 192.168.10.1 255.255.255.0 routera(c shut routera(c s 0/0 routera(c address 192.168.20.1 255.255.255.0 routera(c shut routera(c routera#copy run start routerb(c fa0/0 routerb(c address 192.168.30.1 255.255.255.0 routerb(c shut routerb(c s 0/0 routerb(c address 192.168.20.2 255.255.255.0 routerb(c rate 64000 routerb(c shut routerb(c address 192.168.40.1 255.255.255.0 routerb(c rate 64000 routerb(c shut routerb(c routerb#copy run start routerc(c fa0/0 routerc(c address 192.168.50.1 255.255.255.0 routerc(c shut routerc(c s 0/0 routerc(c address 192.168.40.2 255.255.255.0 routerc(c shut routerc(c 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(c route 192.168.30.0 255.255.255.0 192.168.20.2 routera(c route 192.168.40.0 255.255.255.0 192.168.20.2 routera(c 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(c route 192.168.10.0 255.255.255.0 192.168.20.1 routerb(c 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(c route 192.168.10.0 255.255.255.0 192.168.40.1 routerc(c route 192.168.20.0 255.255.255.0 192.168.40.1 routerc(c route 192.168.30.0 255.255.255.0 192.168.40.1 verifying your c 根据上面的拓扑结构,我们来验证下是否能够端到端的ping通: routerc#ping 192.168.10.1 (略) sending 5, 100-byte icmp echos to 192.168.10.1, timeout is 2 sec !!!!! (略) routera#ping 192.168.50.1 (略) sending 5, 100-byte icmp echos to 192.168.50.1, timeout is 2 sec !!!!! (略) 2端都能ping通,说明没问题 default routing 默认路由:一般使用在stub网络中,stub网络是只有1条出口路径的网络.使用默认路由来发送那些目标网络没有包含在路由表中的数据包.根据上面的拓扑图,你就不能把默认路由定义在routerb上,因为routerb拥有不止1个出口路径接口.其实你可以把默认路由理解成带通配符(wildcard)的静态路由 配置默认路由: 首先要去掉之前配置的静态路由 routerc(c ip route 192.168.10.0 255.255.255.255 192.168.40.1 routerc(c ip route 192.168.20.0 255.255.255.255 192.168.40.1 routerc(c ip route 192.168.30.0 255.255.255.255 192.168.40.1 接下来配置默认路由: routerc(c route 0.0.0.0 0.0.0.0 192.168.40.1 额外的命令,使各个接口打破分类ip规则,12.x的ios默认包含这条命令,如下: routerc(c classless 再验证下: routerc(c 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) 自治系统(aut system,as):同1个管理域的网络集合,意味着在这里面的所有routers共享相同的路由表信息 igps:在相同的as内交换路由信息 egps:as间的通信 routing protocol basics 管理距离(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 距离向量路由算法将完整的路由表传给相邻router,然后这个router再把收到的表的选项加上自己的表来完成整个路由表,这个叫做routing by router,因为这个router是从相邻router接受更新而非自己去发现网络的变化。 rip就是距离向量协议的例子.rip使用跳数来决定最佳路径,假如到达1个网络有2条跳数相同的链路,那么将均衡负载在这2条链路上,平均分配,rip最多支持6条均衡链路 针孔拥塞(pinhole c c 我们来了解下距离向量协议的启动过程:当router启动的时候,只有那些与它们直接相连的网络号出现在它们自己的路由表里,当距离向量协议在每个router上启动后,路由表将从相邻router获得更新信息来更新自己的路由表.每个router将完整的路由表,包含网络号,出口接口和跳数,发送给相邻router.接下来,路由表包含了完整的网络信息,达到汇聚(converged)状态.另外,在汇聚期间,没有数据将会被传送,所以说,快速汇聚就成了1个必不可少的话题 距离向量协议通过向所有接口周期性的广播路由更新来跟踪整个网络的变化,这些广播包括了完整的路由表.这样看上不错,但是它却给cpu增加了负荷和占用了额外的带宽.而且,汇聚过慢的话容易导致路由表的不一致性和容易产生路由循环(routing loops) 路由循环的例子: 假如网络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…… 路由循环的问题也可用描述为跳数无限(counting to infinity).其中的1个解决办法就是定义最大跳数(maximum hop count).rip是这样定义最大跳数的:最大跳数为15,第16跳为不可达.但是这样不能根本性的祛除路由循环的问题 另外1个解决办法就是水平分裂(split horizon),它规定由1个接口发送出去的路由信息不能再朝这个接口往回发送.这个办法减少了路由信息的不正确性和负载 路由破坏(route poisoning)也用于避免不一致的更新信息来阻止网络循环.由刚才的拓扑图,当网络5不可用了,e将把这条线路的度变为16,即不可达,破坏这条线路.这样c就不会发送错误的更新了.当c收到e的route pois reverse的更新给e,这样保证了所有的线路都知道那条破坏线路的信息,来防止循环。 抑制计时(holddown): 一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新.如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效.这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性.它使用了触发更新(trigger update)来重新设定holddown计时器。 触发更新:和一般的更新不一样,当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期.同样,当一个路由器刚启动rip时,它广播请求报文.收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期.这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性 触发更新重新设定计时器的几个情况: 1.计时器超时 2.收到1个拥有更好的度的更新 3.刷新时间(flush time) rip是一种距离向量路由协议,使用跳数作为度,最大15跳,它每30秒向外发送整个路由表的信息.rip适合于小型网络.rip版本1(ripv1)使用分级路由(classful routing),意思是在网络的所有设备必须使用相同的子网掩码;而rip版本2(ripv2)使用无分类路由(classless routing).我们这里讨论ripv1 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秒,路由表的选项仍没有得到确认,它就被从路由表中删除 配置rip: 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/1 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(c ip route 192.168.30.0 255.255.255.0 192.168.20.2 routera(c ip route 192.168.40.0 255.255.255.0 192.168.20.2 routera(c ip route 192.168.50.0 255.255.255.0 192.168.20.2 使用rip配置命令为router rip,起用rip,接下来使用network命令配置需要进行通告(advertise)的网络号,注意router的提示符,如下: routera(c rip routera(c 192.168.10.0 routera(c 192.168.20.0 routera(c 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(c ip route 192.168.50.0 255.255.255.0 192.168.40.2 routerb(c ip route 192.168.10.0 255.255.255.0 192.168.20.1 配置rip: routerb(c rip routerb(c 192.168.20.0 routerb(c 192.168.30.0 routerb(c 192.168.40.0 routerb(c routerb# 配置routerc,由于ad的问题,所以要先去掉之前的默认路由,如下: routerc(c ip route 0.0.0.0 0.0.0.0 192.168.40.1 配置rip: routerc(c rip routerc(c 192.168.50.0 routerc(c 192.168.40.0 routerc(c 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,不可达,这条路由线路也将随之无效,将被丢弃 如果你想阻止rip更新信息传播到lans和wans上,可以使用passive-interface命令,这条命令可以防止rip更新信息广播从你定义了的接口上发送出去,但是这个接口仍然可以接受到更新信息,如下: routera(c rip routera(c 192.168.10.0 routera(c 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计时: 1.路由更新计时:默认90秒 2.路由无效计时:默认270秒 3.保持计时器:默认280秒(3倍更新时间+10秒) 4.路由刷新时间: 默认630秒 c igrp routing 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/1 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(c igrp ? <1-65535> aut system number routera(c igrp 10 routera(c 192.168.10.0 routera(c 192.168.20.0 routera(c routera# 记住igrp也是classful routing,而且配置网络号是与它直接相连的网络 配置routerb,如下: routerb(c igrp 10 routerb(c 192.168.20.0 routerb(c 192.168.30.0 routerb(c 192.168.40.0 routerb(c routerb# 配置routerc,如下: routerc(c igrp 10 routerc(c 192.168.40.0 routerc(c 192.168.50.0 routerc(c 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和复合度,度越低越好 一些验证性的命令: 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 c 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 transacti all,如下: routerb#debug ip igrp transacti 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 路由协议有在阻止层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.低耗费 桥接和层2交换的一些区别和相似的地方: 1.bridges基于软件,switches基于硬件 2.switches可看作多端口的bridges 3.bridges在每个bridge上只有1个生成树实例,而switches可以有很多实例 4.switches的端口远多于bridges 5.两者均转发层2广播 6.两者均通过检查收到的帧的源mac地址来学习 7.两者均根据层2地址来做转发决定 层2交换的一些功能: 1.地址学习(address learning):通过查看帧的源mac地址来加进1个叫做转发/过滤表的mac地址数据库里 2.转发/过滤决定(forward/filter decisi 3.循环避免(loop avoidance):假如有冗余的连接,可能会造成循环的产生,stp就用来破坏这些循环 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最低的即为根桥 5.非根桥(n bridge):不是根桥的全为非根桥,非根桥交换bpdus来更新stp拓扑数据库 6.根端口(root port):与根桥直接相连的端口,或者是到根桥最短的接口.如果到根桥的连接不止1条,将比较每条连接的带宽,耗费(cost)低的作为根端口;如果耗费相同就比较bridge id,id低的将被选用 7.指定端口(designated port):耗费低的端口,作为转发端口 8.端口耗费(port cost):带宽来决定 9.非指定端口(n port):耗费较高,为堵塞模式(blocking mode),即不转发帧 10.转发端口(forwarding port):转发端口用来转发帧 11.堵塞端口(blocked port):不转发帧,用来防止循环的产生,虽然不转发,但是它可以监听(listen)帧 spanning tree operati 之前说过: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):当所有端口移动到非转发或堵塞状态时,开始收敛,在收敛完成前,没有数据将被传送.收敛保证了所有的设备拥有相同的数据库达到一致.一般来说从堵塞状态进入到转发状态需要50秒 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查找硬件目标地址然后转发它们 c the catalyst 1900 and 2950 switches 1900是款低端switch产品,分为1912和1924系列:1912是有12个10baset端口而1924是有24个10baset端口 当1900启动后,先运行post,此时每个端口的发光二级管(leds)是绿色的,当post完成后,leds开始闪烁然后熄灭;假如post发现某个端口出问题了的话,系统led和那个出问题的端口的led开始变黄.假如你的c 1 user(s) now active on management console. user interface menu [m] menus [i] ip c enter selecti cli session with the switch is open to end the cli sessi enter [exit]. > 而2950的启动,有点像router,先进入setup模式.但是默认你可以不对其进行配置,启动如下: --- system c dialog --- would you like to enter the initial c 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> 配置密码: 1.登陆密码(用户模式):防止未授权用户登陆 2.启用密码(特权模式):防止未授权用户修改配置 setting the user mode and enable mode passwords 1900下,输入k进入cli,输入enable进入特权模式,再输入c t进入全局配置模式,如下: >en #c t (c 当进入全局配置模式后,使用enable password命令配置登陆密码个启用密码,如下: (c password ? level |