细说TF服务链丨如何配置服务链的高级功能



  • 作者:Umberto Manferdini 译者:TF编译组

    在之前的文章中,我谈到了什么是服务链,以及如何配置基本的服务链。让我们回顾一下服务链的构建方式:
    788b4a5f-fd24-4d13-a6b7-8d22e8e52415-image.png

    • 一个网络策略(在两个虚拟网络之间应用,例如左侧VN和右侧VN)
    • 一个服务实例(已配置好该网络策略)
    • 包含了端口元组(仅是VMI引用列表)的服务实例
    • 在这种情况下,服务实例具有两个定义的接口(左和右),这意味着端口元组将具有两个元素
    • 端口元组引用在OpenStack上运行的现有VM的2个VMI
    • 在左右VN之间移动的流量将通过该防火墙VM

    在定义服务实例对象时,可以配置高级功能。这些高级功能在服务实例对象中进行配置。

    我们展示了网络策略如何导致相关虚拟网络之间的路由泄漏。在这种情况下,右侧VN路由将泄漏到左侧VN中,此时将服务实例左侧接口用作下一跳,反之亦然(右侧VN中的左侧VN路由,会将服务实例右侧接口用作下一跳)。

    可以通过配置路由策略来控制此泄漏。路由策略使用Junos语法,因此,如果有Junos经验,编写这些策略就会很容易!
    916739c2-13d5-4fb5-bc71-1e91efb2f3d7-image.png
    例如,该策略接受0/0路由,并拒绝其它任何内容(路由更新)!

    通过将策略映射到服务实例对象定义内的左/右接口来应用策略:
    6d1bbbf5-6508-4f3a-a5b6-c5937fd37a64-image.png

    虚拟机可以使用BGPaaS宣布/接收来自Tungsten Fabric的路由。如果虚拟机不支持BGP,则可以在VMI上定义静态路由:
    4f2c3787-eefb-44b9-a06a-52c8f9ffa1ed-image.png

    首先,我们定义静态路由:
    59b3b6ac-eae3-4a73-9395-b6243a4a15c3-image.png

    应用于VMI的静态路由定义为“接口路由表”。如您所见,这些路由没有配置下一跳。下一跳将自动设置为应用了静态路由的VMI。
    在一个服务链中,当定义服务实例对象时,静态路由会应用在接口级别:
    4e6b8259-57d6-4fe7-be74-5be6883c6d56-image.png
    结果是,左侧VN的路由为0/0,下一跳为服务实例左侧接口,而右侧VN的路由为192.168.100.3/32,下一跳为服务实例右侧接口。
    作为静态路由,我们缺乏像BGP这样的协议所带来的动态性,尤其是面对故障时。

    只要我们不引入“运行状况检查(Health Checks)”这样的功能,就可能带来这样的结果(出现静态路由的故障)。

    状况检查是我们可以应用于VMI的功能组件——运行状况检查可验证VMI的活动性。

    运行状况检查有很多不同种类,最简单的一项是ICMP检查。vRouter将ICMP echo请求发送到VMI,并等待echo应答。如果丢失的回复数超过配置的阈值,则将VMI声明为Down,并删除指向该VMI的所有路由(包括先前定义的那些静态路由)。

    实际上,就像任何一个VNF都支持ping一样,任何VNF都将支持ICMP运行状况检查。当然,这种运行状况检查很慢并且不能提供快速收敛。为了更快地收敛,我们需要依靠BFD运行状况检查。使用BFD,我们可以更快地检测到故障,但VNF必须支持BFD。
    1234558f-7e8a-4f80-8f53-5f29c6643643-image.png

    阈值在运行状况检查对象内进行配置:
    e812e84c-3507-43bc-a975-c37aff306f5b-image.png

    在本示例中,我们使用BFD,每秒发送一个BFD数据包。如果丢失了3个以上的数据包,则BFD宣告为down。

    运行状况检查在服务实例对象内进行配置:
    ee4c9def-5f76-46e3-9d85-a663360a1bea-image.png
    综上所述,我们可以使用路由策略来控制网络之间的泄漏。

    此外,我们还可以定义静态路由,将其应用于VMI,并依靠运行状况检查(BFD)在出现故障时实现快速收敛。

    下一步是什么?冗余。我们将在下篇文章中详细介绍。


    细说TF服务链

    1. 一文讲透什么是服务链(多图)
    2. 手把手教你配置服务链
    3. 服务链后台的路由实现

Log in to reply