1.预备知识①理解BGP工作原理 ②理解单域MPLS ×××的工作原理 ③BGP传递×××v4路由时的属性 ④理解NAT基本工作原理 ⑤理解Tunnel工作原理 |
2.前言2.1 网络模型2.2 需求①公司分为主站点、远程站点,并在公司内部采用私有IP地址实现互访 ②主站与远程站点间的互访通过MPLS ×××实现 ③远程站点出于安全等因素考虑,欲访问外网必须先将流量发向主站,并由主站通过相关检测后再发向Internet ④出站时需要NAT以保证流量能够返回 |
3.分析3.1 需求划分①主站点与远程站点的互访 ②将远程站点流量导向主站点 ③主站点访问Internet ④流量的返回 3.2 实现(1)主站点与远程站点互访①VRF相关参数 由于这里只要求远程站点能够与主站点互访,因此RD、RT值配置相同即可 PE连接CE的接口都需要加入VRF中,以确保customer network路由能够进入VRF路由表 这里可以使用动态路由协议或静态路由注入PE端的VRF路由表 ②×××路由传递 R2、R3间需要建立×××v4 BGP对等体关系,以确保×××路由能够传递 BGP VRF转发表可以通过重分发路由协议、宣告的方式注入 ③MPLS Provider网络需要运行MPLS (2)远程站点流量导向主站点为了实现远程站点访问Internet,流量必须先抵达主站点,主站点需要向远程站点下发×××缺省路由 具体实现方式为: 主站点PE上写一条VRF缺省路由,出口指向VRF接口(连接主站点接口),并将该路由带入×××v4 BGP转发表中 此时远程站点PE将学习到下一跳指向主站点PE的×××v4缺省路由,并加入到本地VRF路由表中 此外,远程站点customer网络必须配置IPv4缺省路由指向PE (3)主站点访问Internet①CE访问Internet流量导向PE 由于Internet的路由众多,在主站CE上,应当使用缺省路由使得主站流量可以抵达外网 ②PE识别非×××流量 主站对应的PE物理接口由于加入了VRF,因此对于从该接口收到的流量都将查询VRF路由表,而不再查看Global Routing Table。Internet路由此时可以有两种选择: 一种是以×××路由的形式(将整个Internet看成一个×××)进入PE设备的VRF路由表 还有一种是通过某种方式使得PE设备收到非×××流量查看Global Routing Table 前者对于资源消耗往往较大,尤其是一个PE连接多个站点时,因此这里建议采用后者实现需求 由此,此时主要需解决的问题便是PE如何识别非×××流量 这里较好的解决办法是,PE与CE间建立Tunnel,CE上对于去往非×××网络的流量(缺省路由)出站接口指向tunnel,由于tunnel接口在PE端并未加入VRF,因此对于接收到的流量将查询Global Routing Table ③PE获得Internet路由 PE上写一条去往当前AS出口设备的缺省路由,或当前AS出口设备通过BGP下发缺省(或Internet路由)以实现 ④NAT 由于customer网络往往会使用私有IP地址,因此作为customer的出口设备,PE上需要配置NAT 这里NAT必须以tunnel为inside,指向AS出口方向接口为outside ⑤出口路由器 出口路由器由于与其它AS建立eBGP对等体关系,因此能够获得Internet路由 (4)流量返回为了使得Internet中的目标设备能够回包,NAT后的地址所在网络需要通过BGP通告给其它AS 由此,流量基本可以确保能够返回到主站点PE上,PE NAT转换后,此时查看的是Global Routing Table,因此,还会造成远程站点路由不可达的问题 解决办法为,PE设备上配置静态路由,将远程站点网络出口指向tunnel,使流量先导回到主站点设备(CE)上 由于主站点设备上此时只需要确保拥有远程站点的路由即可(该路由以物理接口为出口) |
4.实验4.1 实验拓扑4.2 实验说明①R1扮演远程站点,拥有×××路由10.10.10.10/32。以10.10.10.10为源的流量访问外网必须先经过R5,返回时亦然 ②R5扮演主站点,能够与远程站点相互通信、访问Internet,并负责转发来自远程站点的流量 ③R3为AS 234的出口路由器,负责AS 234与AS 6之间的通信 ④Customer网络使用私有IP地址,在公网不可路由 4.3 配置(1)基础IP配置R1(config)#interface fa0/0 R1(config-if)#ip address 31.31.12.1 255.255.255.0 其它路由器接口编址遵循类似规律 (2)主站点与远程站点互访①VRF R2(config)#ip vrf ONE R2(config-vrf)#rd 1:1 R2(config-vrf)#route-target 1:1 R2(config-vrf)#interface fa0/0 R2(config-if)#ip vrf forwarding ONE ! R2(config)#ip route vrf ONE 1.1.1.1 255.255.255.255 fa0/0 31.31.12.1 ! R2(config)#router bgp 234 R2(config-router)#address-family ipv4 vrf ONE R2(config-router-af)#redistribute static ②MPLS R2(config)#interface fa1/0 R2(config-if)#mpls ip ③×××v4 iBGP R2(config)#router bgp 234 R2(config-router)#neighbor 4.4.4.4 remote-as 234 R2(config-router)#neighbor 4.4.4.4 update-source lo 0 R2(config-router)#address-family ***v4 unicast R2(config-router-af)#neighbor 4.4.4.4 activate R4类似配置 (3)远程站点流量导向主站点R1(config)#ip route 0.0.0.0 0.0.0.0 fa0/0 31.31.12.2 R4(config)#ip route vrf ONE 0.0.0.0 0.0.0.0 fa1/0 31.31.45.5 R4(config)#router bgp 234 R4(config-router)#address-family ipv4 vrf ONE R4(config-router-af)#redistribute static (4)主站点访问Internet①Tunnel建立 R5(config)#interface tunnel 0 R5(config-if)#ip address 45.45.45.5 255.255.255.0 R5(config-if)#tunnel source 31.31.45.5 R5(config-if)#tunnel destination 31.31.45.4 ! R4(config)#interface tunnel 0 R4(config-if)#ip address 45.45.45.4 255.255.255.0 R4(config-if)#tunnel source 31.31.45.4 R4(config-if)#tunnel destination 31.31.45.5 R4(config-if)#tunnel vrf ONE 这里配置tunnel vrf ONE是因为当R4收到再封装的以31.31.45.4为目标的IP包时,需要查看VRF路由表确定该数据包是发送给R4本地的 ②静态缺省路由 R5(config)#ip route 0.0.0.0 0.0.0.0 tunnel 0 R4(config)#ip route 0.0.0.0 0.0.0.0 fa0/0 31.31.34.3 ③NAT R4(config)#interface fa1/0 R4(config-if)#ip nat outside R4(config-if)#interface tunnel 0 R4(config-if)#ip nat inside ! R4(config)#access-list 1 permit 10.10.10.10 0.0.0.0 R4(config)#ip nat inside source list 1 interface fa1/0 overload (5)流量返回①BGP路由通告 R3(config)#router bgp 234 R3(config-router)#network 31.31.34.0 mask 255.255.255.0 ②PE转发返程流量 R2(config)#ip route 10.10.10.10 255.255.255.255 tunnel 0 这里需要注意的是,经过NAT后的IP packet将检查Global Routing Table而不会查看VRF路由表 ③CE转发返程流量 R5(config)#ip route 10.10.10.10 255.255.255.255 fa0/0 31.31.45.4 |