此存储库包括脚本,模板和示例交换机配置,以帮助管理员部署Windows Server 2016软件定义网络(SDN)堆栈并将其连接到现有网络拓扑。它还包括样本诊断和示例,用于将Windows Container端点附加到虚拟网络,以及其他租户工作流。
更多详细信息,请参见 SDN TechNet主题
任何SDN部署的第一步涉及规划和与网络管理员合作,以确保使用正确的IP子网和VLAN以及连接Hyper-V主机的交换机端口配置设置(例如,VLAN到中继,可能是DCB设置) (物理服务器)到物理网络。要规划和部署Microsoft SDN,请参阅Microsoft TechNet上的以下主题:* 规划软件定义的网络基础结构 * 部署软件定义的网络基础结构
Windows Server 2016(WS2016)SDN堆栈由几个新服务和角色组成,其中不仅仅是网络控制器。部署的第一步是选择安装和配置网络控制器的方法。这可以通过多种方式完成:* System Center Virtual Machine Manager(SCVMM)'VMMExpress'PowerShell脚本* (推荐)'SDNExpress'PowerShell模块和脚本。 * SCVMM控制台(GUI)配置和服务模板部署
重要: SDN Express在最新版本中经历了许多简化和改进,使其更可靠,更易于使用!如果您以前使用过SDN Express,请务必更新配置文件以使用新格式。如果您不熟悉SDN express,只需将此存储库下载到您的某个SDN主机(Windows Server 2016或2019)上的本地文件夹中,然后运行./SDNExpress.ps1以获取交互式UI,以帮助定义您的配置和部署!
SDNExpress脚本将部署整个SDN结构,包括网络控制器,软件负载平衡器和网关。该脚本将使用配置文件作为输入,该文件定义SDN Fabric所需的IP子网前缀,VLAN,凭据,Hyper-V主机服务器和BGP对等信息。用户至少需要将SDNExpress脚本下载到将从中进行部署的主机。可以为您的环境复制和自定义MultiNodeSampleConfig.psd1配置文件,也可以只运行SDNExpress.ps1脚本以获取部署或保存到配置文件的引导界面。设置结构资源后,请参阅docs.microsoft.com 上的 SDN主题以了解netowrk控制器powershell cmdlet的用法,或者如果这是Hyper-converged部署的一部分,请尝试预览 Windows管理中心用于管理SDN部署。
您可以选择在自己的脚本中使用SDNExpressModule.psm1作为powershell模块,以执行更高级的部署和扩展以添加其他主机,多路复用器或网关容量。
VMMExpress脚本将使用SCVMM PowerShell部署整个SDN Fabric(类似于SDNExpress)。此部署选项要求您在环境中安装SCVMM,并通过VMM控制台将Hyper-V主机添加为受管服务器。使用此脚本部署SDN后,VMM UI可以管理整个堆栈,就像您使用VMM UI向导部署SDN一样!因此,如果您想充分利用这两个领域,请使用此脚本 - SDN Express就像部署灵活性和之后使用VMM UI的丰富管理功能。
此脚本按照VMM SDN部署指南中的说明部署所有逻辑网络和工件。如果已经配置了管理逻辑网络和逻辑交换机,则还可以选择重新使用现有管理逻辑网络和逻辑交换机。如果脚本由于输入错误或红外线问题而导致失败,则会回滚所有已更改的设置,您可以重新开始全新部署。
注意:此脚本当前不支持SET启用的交换机部署。该脚本在主机上以中继模式查找第一个pNIC,并在主机上以独立模式部署逻辑交换机。如果脚本在任何主机上都找不到这样的pNIC,则交换机部署将失败。如果需要启用SET的部署,则需要在带外部署SET启用的交换机,然后指定名称部署时脚本中的开关。
请参考在VMM结构 TechNet主题中设置软件定义的网络基础结构:* 设置网络控制器 * 设置软件负载平衡器 * 设置SDN(RRAS)网关
网络控制器角色公开RESTful API,管理系统(例如SCVMM,PowerShell等)可以使用已发布的API和JSON模式创建网络资源和策略。可以通过网络控制器PowerShell模块或SCVMM控制台调用此API。
注意:Windows Server 2016 SDN平台比通过System Center Virtual Machine Manager(SCVMM)公开的功能具有更多功能
注意:Windows Server 2016 SDN平台比通过System Center Virtual Machine Manager(SCVMM)
也可以使用Invoke-WebRequest PowerShell模块(或curl)以及带有JSON Body和/或返回输出的相应HTTP GET,POST,DELETE方法直接调用它。
部署网络控制器后,可以创建其他SDN结构服务和基础架构VM(软件负载平衡器多路复用器,RRAS(SDN)网关),并将其连接到网络控制器。部署每个服务和基础架构VM后,将有新的租户方案可用。
注意:请务必注意,在安装网络控制器之后,可以在未部署任何其他服务(例如SLB或网关)的情况下立即执行简单租户操作(如创建覆盖虚拟网络和附加VM)。
部署网络控制器后可用的租户方案:1。创建覆盖虚拟网络2.创建虚拟子网3.创建VM NIC以将VM连接到虚拟子网4.创建网络安全组访问控制列表(ACL)并将其应用于虚拟子网或VM NIC 5.创建用于设置带开关上限或入站端口预留的QoS策略,并将这些应用于VM NIC
软件负载平衡器(SLB)多路复用器(mux)角色提供无状态Layer-3/4负载均衡器,可以扩展到多个实例。 SLB Host Agent部署在每个运行负载均衡VM(动态IP - DIP)的Hyper-V主机上,以支持直接服务器返回/ MUX旁路,通过ICMP重定向优化内部负载平衡,并可执行源NAT虚拟机需要外部网络(例如互联网)访问。
在使用SLB Mux之前,必须先安装网络控制器。 SLB配置通过网络控制器的RESTful API处理。
部署软件负载均衡器后可用的租户方案:1。通过虚拟IP(VIP)对一组后端动态IP(DIP)VM进行入口负载均衡2.通过VIP进行东西向负载均衡3.出站用于外部网络连接的NAT(源NAT)4。用于直接访问VM和服务的入站NAT(目标NAT)
SDN网关使用路由和远程访问服务(RRAS)角色为远程站点或物理网络提供多个隧道,连接和路由。网关支持高可用性M:N冗余模型以及多租户。
部署RRAS(SDN)网关后可用的租户方案:1。在两个站点之间创建IKEv2密钥交换的IPSec隧道2.在两个站点或MPLS边缘路由器之间创建GRE隧道3.创建转发网关以在虚拟网络和物理网络之间路由网络4.提供公交路线
欢迎提出拉动请求。要开始使用,请查看CONTRIBUTING.md
该项目采用了 Microsoft开放源代码行为准则。有关更多信息,请参阅行为准则FAQ 或联系 opencode@microsoft.com 以及任何其他问题或意见。