解析最民主的SD-WAN:架构,配置,管理和陷阱

从开始通过SD-WAN向我们提出的问题数量来看,该技术开始在俄罗斯扎根。当然,供应商并没有睡着并提供他们的概念,一些胆敢的开拓者已经在他们的网络上实现它们。



我们与几乎所有供应商合作,并且在实验室的多年中,我有时间深入研究每个主要的软件定义解决方案开发人员的体系结构。 Fortinet的SD-WAN与此处有些不同,它只是将平衡通信通道之间的流量的功能构建到了防火墙软件中。该解决方案相当民主,因此通常在尚未准备好进行全球变革但希望更有效地利用其沟通渠道的公司中进行研究。



在本文中,我想告诉您如何配置和使用Fortinet SD-WAN,谁是该解决方案的正确解决方案,以及您在这里可能会遇到的陷阱。



SD-WAN市场上最著名的参与者可以分为以下两种类型之一:



1.从头开始创建SD-WAN解决方案的初创公司。在大型公司中,最成功的公司获得了巨大的发展动力-这就是Cisco / Viptela,VMWare / VeloCloud,Nuage / Nokia



2的历史。创建SD-WAN解决方案,开发其传统路由器的可编程性和可管理性的大型网络供应商已成为历史。瞻博网络,华为



Fortinet设法找到了方法。防火墙软件具有内置功能,与常规路由相比,该功能允许将其接口组合到虚拟通道中并使用复杂的算法平衡它们之间的负载。此功能称为SD-WAN。 Fortinet可以称为SD-WAN吗?市场逐渐认识到,软件定义意味着将控制平面与数据平面,专用控制器,协调器分离。 Fortinet没有这样的东西。集中管理是可选的,并且使用传统的Fortimanager工具提供。但是我认为,不应寻找抽象的真相,不要浪费时间争论术语。在现实世界中,任何方法都有其优点和缺点。最好的解决方法是了解它们,并能够选择与任务匹配的解决方案。



我将尝试用自己的屏幕截图告诉您Fortinet的SD-WAN的外观和功能。



怎么运行的



假设您有两个通过两个数据链接连接的分支。这些数据传输通道的分组方式与LACP端口通道中的普通以太网接口的分组方式相同。老朋友会记得PPP Multilink,这也是一个合适的类比。通道可以是物理端口,VLAN SVI和VPN或GRE隧道。



通过Internet连接分支机构LAN时,通常使用VPN或GRE。和物理端口-如果站点之间存在L2连接,或者通过专用MPLS / VPN连接时,如果我们对没有覆盖和加密的连接感到满意的话。 SD-WAN组中使用物理端口的另一种情况是平衡用户对Internet的本地访问。



在我们的展位上,有四个防火墙和两个通过两个“电信运营商”运行的VPN隧道。该方案如下所示:







VPN隧道以前端模式配置,因此看起来像P2P接口上具有IP地址的设备之间的点对点连接,可以对其进行ping操作并确保该连接是通过特定的隧道正在工作。为了对流量进行加密并传递到另一侧,将其路由到隧道就足够了。另一种选择-使用子网列表选择用于加密的流量,这会使管理员感到困惑,因为配置变得更加复杂。在大型网络中,要构建VPN,可以使用ADVPN技术,这类似于Cisco的DMVPN或华为的DVPN,从而简化了配置。



两个设备的站点到站点VPN配置,两端均带有BGP路由
«» (DC) «» (BRN)
config system interface

 edit "WAN1"

  set vdom "Internet"

  set ip 1.1.1.1 255.255.255.252

  set allowaccess ping

  set role wan

  set interface "DC-BRD"

  set vlanid 111

 next

 edit "WAN2"

  set vdom "Internet"

  set ip 3.3.3.1 255.255.255.252

  set allowaccess ping

  set role lan

  set interface "DC-BRD"

  set vlanid 112

 next

 edit "BRN-Ph1-1"

  set vdom "Internet"

  set ip 192.168.254.1 255.255.255.255

  set allowaccess ping

  set type tunnel

  set remote-ip 192.168.254.2 255.255.255.255

  set interface "WAN1"

 next

 edit "BRN-Ph1-2"

  set vdom "Internet"

  set ip 192.168.254.3 255.255.255.255

  set allowaccess ping

  set type tunnel

  set remote-ip 192.168.254.4 255.255.255.255

  set interface "WAN2"

 next

end



config vpn ipsec phase1-interface

 edit "BRN-Ph1-1"

  set interface "WAN1"

  set local-gw 1.1.1.1

  set peertype any

  set net-device disable

  set proposal aes128-sha1

  set dhgrp 2

  set remote-gw 2.2.2.1

  set psksecret ***

 next

 edit "BRN-Ph1-2"

  set interface "WAN2"

  set local-gw 3.3.3.1

  set peertype any

  set net-device disable

  set proposal aes128-sha1

  set dhgrp 2

  set remote-gw 4.4.4.1

  set psksecret ***

 next

end



config vpn ipsec phase2-interface

 edit "BRN-Ph2-1"

  set phase1name "BRN-Ph1-1"

  set proposal aes256-sha256

  set dhgrp 2

 next

 edit "BRN-Ph2-2"

  set phase1name "BRN-Ph1-2"

  set proposal aes256-sha256

  set dhgrp 2

 next

end



config router static

 edit 1

  set gateway 1.1.1.2

  set device "WAN1"

 next

 edit 3

  set gateway 3.3.3.2

  set device "WAN2"

 next

end



config router bgp

 set as 65002

 set router-id 10.1.7.1

 set ebgp-multipath enable

 config neighbor

  edit "192.168.254.2"

   set remote-as 65003

  next

  edit "192.168.254.4"

   set remote-as 65003

  next

 end



 config network

  edit 1

   set prefix 10.1.0.0 255.255.0.0

  next

end

config system interface

 edit "WAN1"

  set vdom "Internet"

  set ip 2.2.2.1 255.255.255.252

  set allowaccess ping

  set role wan

  set interface "BRN-BRD"

  set vlanid 111

 next

 edit "WAN2"

  set vdom "Internet"

  set ip 4.4.4.1 255.255.255.252

  set allowaccess ping

  set role wan

  set interface "BRN-BRD"

  set vlanid 114

 next

 edit "DC-Ph1-1"

  set vdom "Internet"

  set ip 192.168.254.2 255.255.255.255

  set allowaccess ping

  set type tunnel

  set remote-ip 192.168.254.1 255.255.255.255

  set interface "WAN1"

 next

 edit "DC-Ph1-2"

  set vdom "Internet"

  set ip 192.168.254.4 255.255.255.255

  set allowaccess ping

  set type tunnel

  set remote-ip 192.168.254.3 255.255.255.255

  set interface "WAN2"

 next

end



config vpn ipsec phase1-interface

  edit "DC-Ph1-1"

   set interface "WAN1"

   set local-gw 2.2.2.1

   set peertype any

   set net-device disable

   set proposal aes128-sha1

   set dhgrp 2

   set remote-gw 1.1.1.1

   set psksecret ***

  next

  edit "DC-Ph1-2"

   set interface "WAN2"

   set local-gw 4.4.4.1

   set peertype any

   set net-device disable

   set proposal aes128-sha1

   set dhgrp 2

   set remote-gw 3.3.3.1

   set psksecret ***

  next

end



config vpn ipsec phase2-interface

  edit "DC-Ph2-1"

   set phase1name "DC-Ph1-1"

   set proposal aes128-sha1

   set dhgrp 2

  next

  edit "DC2-Ph2-2"

   set phase1name "DC-Ph1-2"

   set proposal aes128-sha1

   set dhgrp 2

  next

end



config router static

 edit 1

  set gateway 2.2.2.2

  et device "WAN1"

 next

 edit 3

  set gateway 4.4.4.2

  set device "WAN2"

 next

end



config router bgp

  set as 65003

  set router-id 10.200.7.1

  set ebgp-multipath enable

  config neighbor

   edit "192.168.254.1"

    set remote-as 65002

   next

  edit "192.168.254.3"

   set remote-as 65002

   next

  end



  config network

   edit 1

    set prefix 10.200.0.0 255.255.0.0

   next

end





我以文本形式进行配置,因为我认为以这种方式配置VPN更方便。几乎两侧的所有设置都相同;以文本形式,可以使用复制粘贴进行设置。如果您在Web界面中执行相同的操作,则很容易犯错误-忘记某个位置的对号,并输入错误的值。



将接口添加到捆绑中之后,







所有路由和安全策略都可以引用该捆绑包,而不是引用其中包含的接口。至少,您需要允许从内部网络到SD-WAN的流量。在为它们创建规则时,可以应用保护措施,例如IPS,防病毒和HTTPS公开。







已为捆绑包配置SD-WAN规则。这些是确定特定流量平衡算法的规则。它们与基于策略的路由中的路由策略相似,只是由于流量属于该策略之下,因此未安装下一跳或常规出站接口,而是添加到SD-WAN捆绑中的接口以及这些接口之间的流量平衡算法。



可以通过L3-L4信息,公认的应用程序,Internet服务(URL和IP)以及公认的工作站和便携式计算机用户将流量与一般流量分开。之后,可以将以下平衡算法之一分配给专用流量:







接口首选项列表从已经添加到捆绑中的接口中选择那些接口,这些接口将为这种类型的流量提供服务。通过添加所有接口,您可以限制使用哪些渠道(例如电子邮件),如果您不想使用具有高SLA的昂贵渠道来加载它。在FortiOS 6.4.1中,可以将添加到SD-WAN捆绑包中的接口分组为区域,例如,创建一个区域用于与远程站点进行通信,而另一个区域用于使用NAT进行本地Internet访问。是的,流向常规Internet的流量也可以保持平衡。



关于平衡算法



就Fortigate(来自Fortinet的防火墙)如何在通道之间分配流量而言,有两种有趣的选项在市场上并不常见:



最低成本(SLA) -从目前满足SLA的所有接口中,选择权重较低的接口(费用)由管理员手动设置;此模式适用于“大量”流量,例如备份和文件传输。



最佳质量(SLA) -此算法除了通常的延迟,抖动和丢包率外,还可以使用当前的信道负载来评估信道质量;此模式适用于敏感流量,例如VoIP和视频会议。



这些算法需要设置性能SLA。该仪表定期(检查间隔)监视有关SLA遵从性的信息:通信信道中的数据包丢失,等待时间和抖动-并可以“拒绝”当前未达到质量阈值的那些信道-丢失太多数据包或延迟太多。此外,仪表还监视通道的状态,并可以在反复丢失响应(不活动之前发生故障)的情况下暂时将其从捆绑中删除。还原时,在几个连续收到的响应之后(在此之后还原链接),仪表将自动将信道返回到束,然后数据将再次通过束传输。



这是“仪表”设置的样子:







在Web界面中,ICMP-Echo-r​​equest,HTTP-GET和DNS请求可用作测试协议。命令行上还有更多选项:提供TCP-echo和UDP-echo选项,以及专用的质量测量协议TWAMP。







可以在Web界面中看到测量结果:







在命令行中:







故障排除



如果创建了规则,但一切都无法正常工作,则应查看“ SD-WAN规则”列表中的“命中计数”值。它会显示流量是否完全符合此规则:







在仪表的设置页面上,您可以看到通道参数随时间的变化。虚线表示该参数的阈值。在







Web界面中,您可以通过发送/接收的数据量和会话数来查看流量的分配方式:







除了所有这些,还有一个极好的机会来跟踪具有最大细节的数据包的通过。在实际网络中工作时,设备配置会累积大量路由策略,防火墙和SD-WAN端口上的流量分配。所有这一切都以复杂的方式相互影响,尽管供应商提供了数据包处理算法的详细框图,但重要的是,不能建立和测试理论,而是要查看流量的实际流向。



例如,以下命令集 将跟踪源地址为10.200.64.15和目标地址为10.1.7.2的两个数据包。 从10.200.64.15 ping通10.7.1.2两次,然后在控制台上查看输出。 第一包: 第二包:



diagnose debug flow filter saddr 10.200.64.15

diagnose debug flow filter daddr 10.1.7.2

diagnose debug flow show function-name

diagnose debug enable

diagnose debug trace 2


























这是防火墙收到的第一个数据包: 为它创建了一个新会话: 并且在路由策略的设置中找到了匹配项 事实证明,该数据包需要发送到一个VPN隧道: 在防火墙策略中找到一个允许规则: 数据包被加密并发送到VPN隧道: 加密数据包被发送到该WAN接口的网关地址: 对于第二个数据包,所有内容都相同,但是它被发送到不同的VPN隧道并通过不同的防火墙端口离开:

id=20085 trace_id=475 func=print_pkt_detail line=5605 msg="vd-Internet:0 received a packet(proto=1, 10.200.64.15:42->10.1.7.2:2048) from DMZ-Office. type=8, code=0, id=42, seq=0."

VDOM – Internet, Proto=1 (ICMP), DMZ-Office – L3-. Type=8 – Echo.






msg="allocate a new session-0006a627"





msg="Match policy routing id=2136539137: to 10.1.7.2 via ifindex-110"





"find a route: flag=04000000 gw-192.168.254.1 via DC-Ph1-1"





msg="Allowed by Policy-3:"





func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-1"

func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-1"

func=esp_output4 line=905 msg="IPsec encrypt/auth"






msg="send to 2.2.2.2 via intf-WAN1"





func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-2"

func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-2"

func=esp_output4 line=905 msg="IPsec encrypt/auth"

func=ipsec_output_finish line=622 msg="send to 4.4.4.2 via intf-WAN2"




解决方案的优点



可靠的功能和友好的用户界面。完全保留SD-WAN出现之前FortiOS中可用的功能集。也就是说,我们没有新开发的软件,但是有成熟的防火墙供应商提供的成熟系统。具有一组传统的网络功能,一个方便易学的Web界面。有多少SD-WAN供应商在其端点上具有远程访问VPN功能?



80级安全性。 FortiGate是顶级防火墙解决方案之一。 Internet上有许多用于配置和管理防火墙的材料,并且劳动力市场上有许多安全专家已经掌握了供应商的解决方案。



SD-WAN功能的零成本。在FortiGate上构建SD-WAN的成本与在其上构建常规WAN的成本相同,因为无需额外的许可证即可实现SD-WAN功能。



价格进入门槛低。 Fortigate具有针对不同性能的良好设备等级。最年轻,最便宜的型号非常适合于为3-5名员工提供办公室或销售点。许多供应商根本就没有这种低性能和负担得起的模型。



高性能。 SD-WAN功能减少以实现流量平衡,使该公司可以发布专用的SD-WAN ASIC,因此,SD-WAN的运行通常不会降低防火墙的性能。



在Fortinet设备上实现整个办公室的能力。这些是几个防火墙,交换机,Wi-Fi接入点。该办公室易于管理,易于操作-交换机和访问点已在防火墙上注册并受其控制。例如,这是从控制此交换机的防火墙接口看交换机端口的样子:







没有控制器是单点故障。供应商本人专注于此,但是这只能部分地称为加号,因为拥有控制器以确保其容错能力的廉价供应商通常在虚拟化环境中以少量计算资源为代价。



要找什么



控制平面与数据平面缺乏分离。这意味着必须手动配置网络或使用现有的传统管理工具-FortiManager进行配置。对于已实施这种分离的供应商,网络是由其自身组装的。管理员可能只需要调整其拓扑结构,在某处禁止某物,仅此而已。但是,FortiManager的王牌在于它不仅可以管理防火墙,而且可以管理交换机和Wi-Fi接入点,即几乎整个网络。



可控性的有条件增长。由于使用了传统工具来自动执行网络配置,因此引入SD-WAN的网络可管理性并未显着提高。另一方面,新功能可以更快地获得,因为供应商首先仅针对防火墙操作系统发布了该功能(这使得立即可以使用它),然后才向控制系统添加了必要的接口。



某些功能可以从命令行使用,但不能从Web界面使用。有时候,进入命令行进行配置并不那么令人恐惧,因为令人恐惧的是,在Web界面中看不到有人已经从命令行进行了配置。但这通常涉及最新功能,并且随着FortiOS更新,逐渐逐渐增强了Web界面的功能。



给谁



对于那些没有很多分支的人。在8-10个分支机构的网络上实施具有复杂中央组件的SD-WAN解决方案可能不值得-您将不得不花钱购买SD-WAN设备的许可证和虚拟化系统的资源来托管中央组件。小型公司通常缺乏免费的计算资源。对于Fortinet,您只需要购买防火墙。



那些有很多小分支的人。对于许多供应商而言,分支机构解决方案的最低价格相当高,从最终客户的业务角度来看可能并不有趣。 Fortinet以非常诱人的价格提供小型设备。



那些还没有准备好走太远的人。对于某些客户而言,使用控制器,专有路由以及网络规划和管理的新方法来实施SD-WAN可能太大了。是的,这样的实现最终将有助于优化沟通渠道的使用和管理员的工作,但是首先您必须学习很多知识。对于尚未准备好进行范式转换,但又想从他们的沟通渠道中榨取更多钱的人,Fortinet的解决方案就是正确的选择。



All Articles