实验拓扑:
关键知识点:
为什么使用 MPLS:
在一个大型 AS 域中,如果要避免路由黑洞,那么就需要全网运行 BGP,但 是这样造成大量的 BGP 邻居,给路由器造成负担,MPLS 就是用来解决此问题的。我们需要 设计一个在 core 中不需要运行 BGP,又能获得全网路由,避免黑洞的方案。
MPLS 的本质:
MPLS 利用 label 来杜绝 BGP 中的路由黑洞,在一个大的网络中,只需要边界路由器运行 BGP,边界路由器之间建立 IBGP 关系,而 core 里面的路由器只需要跑 IGP,路由到达边界路由器后,被封上 label,然后 core 中,就是使用 label 来转发,当到达紧挨着边界路由器的那 台 core 时,label 被弹出,包在到达边界路由器后,就开始执行路由转发。
MPLS 核心改造好处:
一个普通 core 路由器,至少有十几万条路由,如果为每一个 prefix 都分配 一个 label,那是不可想象的,而在 MPLS 网络中,不为 BGP 路由分配 label,而只为 IGP 分配 label, 这样相同下一跳 IGP 路由只有一个 label,大大缩减了查表时间和 label 空间。
控制层面(Control Plane):
数据层面(Data Plane):
MPLS 报头字段 32bit:
1.20bit Lable,2^20 大约 10 万个 label 空间
2.3bit EXP,实验位,也叫 QoS 位
3.1bit S 位(栈底位),MPLS 可以打多层 Label,为了识别顶层和底层标签,如果 S=1,表示这是 最后一个标签,路由器就执行弹出标签的动作。
4.8bit TTL,防止环路
MPLS 转发标签的动作:
- Insert(压入) 2.Swap(交换) 3.Remove(弹出)
标签交换协议:
1.TDP—Cisco 私有的,使用 UDP/TCP 端口号 711
2.LDP—IEEE 标准,使用 UDP/TCP 端口号 646
标签转发方式:
情况 1.收到一个包,包头值为 800,查找 CEF 表,如接收包的接口没有启用 MPLS,CEF 表中就没有和目的路由相关联的标签。如接口启用 MPLS,当查到和目的网络相关联的标签时,就压入 该标签值,此时的动作就是 insert。
情况 2.收到一个包,首先查看二层头,如果二层包头值为 800,那么后面就是 IP 包,然后就查 IP 转发表或 CEF 表。如果是 8848,后面就是一个标签包,最后就查标签转发表,此时执行的动 作就是 swap。
PS 重要:标签信息库是基于 CEF 表产生的,所有不打 ip cef,就无法产生本地标签
为什么要次末跳弹出:
如果在最后一跳弹出,路由器将收到 untagged 的标签,最后一跳路由器 会执行查一次 LFIB 表,再查一次路由表,增加了最后一跳路由器的负担。而在次末跳弹出,会将两次查表的动作分担给两台路由器做,使路由器更有效率的运行。
什么是 FEC:
什么是 VRF:每个 vrf 都有一张独立的路由表,相当于一个逻辑的路由器,可以将某个接口划入 指定的 vrf
什么是 RD:需要给 vrf 分配一个标识(ID),它是需要传递的,rd 唯一标示 vrf。格式 (AS 号:设备号), 例如 2:2
什么是 RT(route‐targets) :ipv4 路由怎样转换成 vpnv4 的路由,从而传递出去呢,这就需要 rt, rt 就是对路由的一个控制手段。
实验目的:
理解并配置一个简单的MPLS网络
需求一:R1—R5 分别建立 loopback 接口 1.1.1.1—5.5.5.5/24,R1 与 R2 的直连网段是 12.12.12.0/24,R1 是 12.12.12.1,R2 是 12.12.12.2,其他路由器依此类推;
需求二:R2 与 R3 的 23 网段、R3 与 R4 的 34 网段运行 OSPF,而且要将 R2/R3/R4 的 loopback 接口 network 到 ospf 进程中,R2 与 R4 使用 loopback 接口建立 iBGP 邻居; 需求三:北京总部与 PE1 之间跑 OSPF,北京总部要把 loopback 接口 network 到 ospf 进程中, 中国电信 PE1 路由器将与 CE1 相连的接口划入 vrf CCNP 中,并为该客户专门维护一个 ospf 进程, 并建立邻居;
需求四:广州分公司路由器不运行任何动态路由协议,并指一条默认路由到 PE2,中国电信 PE2 与广州分公司接口划入 vrf ccnp中,准对客户分公司指一条到 5.5.5.5/24 的默认路由,并且 ping 通;
需求五:PE1、P、PE2 上的 23 网段和 34 网段的接口上打 mpls ip,并检查 ldp 邻居是否建立 起来;
需求六:PE1 与 PE2 建立 MPLS 邻居,并查看是否能学习到对方的路由;
需求一:
需求二:
需求三:
重新配置S1/0接口地址,因为划入VRF后接口地址会消失
需求四:
将R4的S1/1接口划入VRF中,同理还是需要再次手动配置地址
R4写到达5.5.5.5的默认路由
需求五:
先在R2 R3 R4上面指定标签分发范围:
23 网段和 34 网段的接口上打 mpls ip
查看邻居
需求六:
R2导入路由:
R2与R4上查看,会收到R1的路由
R4不需要传递给R5,R5到外网有缺省路由了
接着反过来再说,R4需要把静态缺省传递给其他的BGP邻居
最后将BGP的路由重发布进入R1的OSPF中
至此R1 R5都学习到了对方的私网路由,就可以通信了。