摘要:
我们知道在RPT里,所有组播数据流都会通过RP转发到接收者;对于一个RP来说,它可以同时服务于多个组播组,但一个组播组只能对应一个唯一的RP;所谓RP就是RPT(Rendezvous Point Tree)里的RP(Rendezvous Point),即汇合点;所有的组播源和接收者都是以该点为树根所形成的数据转发路径(RPT)来转发报文,组播源先向树根发送数据报文,之后的报文再向下转发到达所有接收者; 阅读全文
摘要:
连接接收者的路由器向组播组对应的RP发送加入报文,该报文被逐跳送达RP,所经过的路径就形成了RPT的分支;组播源如果要想组播组发送组播数据,首先由于组播源侧DR负责向RP进行注册,把注册报文通过单播的方式发送给RP,该报文到达RP后触发构建SPT。之后组播源把组播数据沿着SPT发向RP,但组播数据达到RP后,被复制并沿着RPT发送给接收者; 阅读全文
摘要:
PIM(Protocol Independent Multicast,翻译成中文就是协议无关组播);所谓协议无关是指给组播提供路由信息的可以是静态路由、RIP、OSPF、IS-IS、BGP等任何一种单播路由协议;这里的无关是指组播路由与是何种单播路由协议无关;只要通过单播路由能够产生对应组播路由表项即可;之所以PIM高度依赖单播来生成组播路由表项,是因为组播路由是利用单播路由表的路由信息进行组播报文RPF检查,从而来创建组播路由表项,转发组播报文; 阅读全文
摘要:
RPF(Reverse Path Forwarding),反向路径转发;该机制主要作用是用来确保组播数据能够沿正确的路径传输,避免组播环路;工作过程大致是路由器收到组播数据报文后,只有确认这个数据报文是从自身连接到组播源的接口收到的才进行转发,否则丢弃;即路由器只有通过路由接口收到组播源的数据才会转发,其他非路由接口收到的数据均丢弃; 阅读全文
摘要:
我们知道二层交换机在单播通信中的工作原理就是根据构建mac地址表来转发数据,如果二层交换机收到一个未知的单播或广播报文,那么它会泛洪出去;对于组播信息它会如何处理呢?其实二层交换机收到组播报文,默认情况下,它会把组播报文当作广播处理,即 收到组播报文,它会泛洪出去;这样一来对于接入同一二层交换机的组播客户端,在没有加入对应组播组的情况下也会照常收到组播源发送的组播报文;很显然,这无形是对那些不需要接收对应组播报文的客户端的带宽造成浪费,拥堵;为了解决这样的问题;igmp-snooping出现了;igmp-snooping的主要作用是嗅探组播信息,从而根据组播信息建立起组播mac地址表,从而实现隔离那些未加入对应组播组的客户端流量;简单讲就是,有了igmp snooping,在同一二层交换机收到对应组播报文,它不会全局泛洪,而是根据对应的组播mac表来转发数据,从而规避了全局泛洪所带来的困扰; 阅读全文
摘要:
相对IGMPv1,IGMPv2使用独立的查询器选举机制;所有IGMPv2的路由器在初始状态时都认为自己是查询器,向本地网段内的所有主机和路由器发送普遍组查询报文;其他路由器在收到该报文后,将报文的源ip地址与自己的接口地址作比较;ip地址最小的路由器将被选举成查询器,其他路由器成为非查询器;如上图所示,RTA的接口ip地址小于RTB的接口ip地址,则RTA当选为查询器;IGMP的查询器和非查询器都会处理IGMP组加入信息,但是只有查询器负责发送查询报文;IGMP非查询器不处理IGMPv2离开报文;所有非查询器上都会启动一个定时器,如果在该定时器超时前收到了来自查询器的查询报文,则重置该定时器;否则就认为原查询器失效并发起新的查询器选举; 阅读全文
摘要:
一个组播组就是一个ip地址,不代表具体主机,而是表示一系列系统的集合;主机加入某个主播组即声明自己接收目的为某个ip地址的报文;组播地址在ip地址中是属于D类地址;其范围是224.0.0.0至239.255.255.255;这个范围内的所有地址都属于组播地址;组播地址和广播地址都只能作为目标地址,不能成为源地址出现在网络通信中; 阅读全文
摘要:
我们知道网络通信中分单播、组播、广播这三种;其中单播主要用在点到点通信中,而后者的广播和组播多用在点到多点的环境中;当网络中部署点到多点通信应用时,若采用单播时,网络传输的信息量与需要该信息的用户量成正比;即多份相同内容的信息发送给不同用户,对信息源及网络带宽都将造成巨大压力和浪费。若采用广播方式,无需接收信息的主机也将收到该信息,这样不仅信息安全得不到保障,同时造成同一网络中的信息泛滥;正是因为单播和广播不能很好的解决点到多点应用通信问题,ip组播技术有效地解决了单播和广播在点到多点应用中的问题;组播源只发送一份数据,数据在网络节点间被复制、分发,且只发送给需要该信息的接收者,即只有加入到对应组播中的成员才能接收到对应信息; 阅读全文
摘要:
BGP团体属性是什么呢?简单讲BGP的团体属性是指标识具有相同特征的BGP路由;我们可以理解为具有相同标签的BGP路由;这个标签就是它的团体属性;只不过在BGP里不叫标签,而是叫团体属性;所以tag不是BGP属性,而团体属性(community)才是它的属性;团体属性主要作用是让BGP路由策略的应用更加灵活,降低维护管理的难度;不同的团体属性,它的作用各不相同; 阅读全文
摘要:
AS-Path-Filter:从名字上就能知道该过滤器主要用于通过匹配AS-Path属性来进行路由过滤;对于满足过滤器的条件我们就做某种操作即可;对于as-path过滤器来说,它是通过正则表达式来匹配对应as-path;工作原理就是把对应路由的as-path当作字符串处理,满足正则表达式的路由进行拒绝或允许操作; 阅读全文
摘要:
BGP可以结合几乎所有的策略工具,并利用BGP路径属性,来影响BGP选路;我们知道BGP的优选规则,它是依次比较首选值、本地优先级、聚合方式、AS_Path、起源属性优先级、med、邻居类型、内部IGP开销、router-id、IP地址这些属性;所以我们要影响BGP选路就可以通过修改这些属性即可;当然不是所有的属性都可以手动修改,比如起源属性,这个属性就是宣告网络时就决定了;再比如邻居类型,这个也是无法修改的,这个属性和网络拓扑密切相关;一般常修改,优选值、本地优先级、as_path长度、MED; 阅读全文
摘要:
BGP路由优选的首要条件是对应路由的下一跳必须可达,即只会在BGP路由表中对应路由有星号的路由上进行优选;满足下一跳可达的前提下,首先优选首选值(Preference_Value)最高的路由(该属性为私有属性,仅在本地有效,一般不常修改来影响路由选路);如果首选值一样,则对比本地优先级(Local_Preference),本地优先级最高的路由被优选;如果本地优先级一样,则比较聚合方式,聚合方式是手动聚合大于自动聚合,大于本地network宣告,大于引入宣告,大于从邻居学习到的路由;如果聚合方式一样,则比较AS_Path长度,AS_Path最短的路由被优选(这里的AS_Path最短是指经过的as数量最少,并非as号码长度);如果AS_Path长度一样,则比较起源属性,起源属性优先级是本地宣告大于引入宣告;如果起源属性也一样,则比较来自同一AS的路由,优选MED最小的路由;如果MED也一样,则比对邻居类型,邻居类型优选顺序是EBGP类型邻居大于IBGP类型邻居;如果邻居类型也一样,则优选AS内部IGP的开销最小的路由;即比较去往对应下一跳的开销;去往对应下一跳开销小的路由被优选; 阅读全文
摘要:
BGP的防环机制主要从两种邻居类型来说,对于IBGP来说,主要依靠水平分割机制,即IBGP间,路由更新只传递一跳;对于EBGP来说,主要依靠AS_Path这个属性来防止环路,即收到路由更新的BGP路由器,发现AS_Path 里有自己的AS号,则对应路由会被丢弃; 阅读全文
摘要:
bgp宣告路由,首先宣告的路由在本地路由表中可以查看到,即对于宣告者来说,宣告的路由必须是最优的路由(存放在ip路由表中的路由对于本地路由器来说就是最优路由),其次默认情况下BGP建立起邻居不会宣告任何网络,只有宣告者手动明确、精确宣告以后,对应路由才会被邻居学习到;邻居类型为IBGP,对应路由只传一跳(为了防止环路);EBGP邻居类型,是可以正常互相传递路由;EBGP类型邻居,在互传路由时会自动修改路由为自己,然后再宣告给对端邻居;而IBGP类型邻居,不会自动修改下一跳为自己,只有手动使用命令强制将对应路由修改为自己,然后传递给邻居; 阅读全文
摘要:
BGP工作在应用层,其端口号为179;报文结构是7层封装,BGP报文主要由两种报文头部组成,公共头部和类型头部;公共头部主要用来描述bgp AS号,包头长度,报文类型,版本信息等等信息,类型头部主要用来描述不同类型的BGP报文相关属性;BGP报文类型有5种,分别是open包、update包、Notification包、keepalive和route-refresh;其中open包主要用来建立邻居使用,在邻居建立以后相互发送一次,后续不再发送;keepalive包主要作用是维护邻居关系,默认情况下bgp是每60秒发送一次keepalive包向邻居通告自己还“活”着;如果连续三个周期没有收到邻居的keepalive包,此时本端会认为邻居挂掉;update包主要用来路由更新,其包里的内容主要是用来描述更新的路由信息和属性;只要有路由更新对应都会向邻居发送更新;notification包主要用来发送当检测到错误,发送后关闭BGP连接的信息;Route-refresh包主要用来触发请求邻居重新通告路由; 阅读全文
摘要:
不同AS之间使用非直连网络建立邻居需要修改对应报文的TTL值,原因是不同AS之间建立邻居发送包的TTL值为1,如果不是直连,对应非直连经过路由以后,对应报文的TTL值会减为0,对端收到TTL值为0的包,会认为该包无效,所以会导致邻居关系建立不起来;如果一段修改了TTL值,另一端未修改,那么会导致邻居关系非常不稳定,一会建立,一会断开;通常情况下我们建议ibgp类型邻居使用回环口建立邻居,ebgp使用物理口建立邻居;用回环口建立邻居有一个好处就是对应回环口只要ip地址不变,它几乎都是up的,也就是说在同一as内,推荐使用回环口建立邻居,因为回环口非常稳定; 阅读全文
摘要:
BGP的前身EGP设计非常简单,只能在AS之间简单的传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EGP最终被BGP取代;相比于EGP,BGP更具有路由协议的特征,比如邻居的发现和邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力; 阅读全文
摘要:
我们知道对于路由器来说,它最终依靠的是ip路由表来转发数据;对于去往同一网络的路由,优先级数字越小,表示优先级越高;优先级越高,对应也就表示路由越优先;即对应路由优先存放在路由表;如果优先级相同,则此时才会比对开销,开销越小的路由,对应路由优先存放在ip路由表中,即在数据包转发选路时,优先选择开销小的路由;如果优先级、开销都一样,则两个路由对应的链路,负载分担对应网络流量; 阅读全文
摘要:
路由引入对我们来说应该不是很陌生,前边聊ospf时就提到外部路由;所谓路由引入就是指把原本不属于本路由协议的路由,通过import-route命令将对应路由引入至本路由协议,使得其他路由器能够通过本路由协议学习到相关路由;在ospf里我们把引入的路由叫外部路由,对应通过5类LSA在全网泛洪,对应引入外部路由的路由器叫ASBR; 阅读全文
摘要:
策略路由和路由策略不同的是,路由策略是影响路由表来实现影响数据包的转发,而策略路由它并不会影响路由表,它是通过策略来定义转发报文的规则,即打破了传统路由转发数据包规则;默认情况下路由器是通过路由表来转发数据,而定义了策略路由的路由器,它会优先根据策略路由来转发数据,如果对应报文没有被策略路由匹配到,那么对应报文会通过路由表来进行转发;简单讲策略路由就是通过管理员定义规则来实现报文转发,如果对应报文没有被策略匹配到,那么它还是会根据路由表来进行转发; 阅读全文