本篇文章作为《Azure Stack技术深入浅出系列》的第二篇,将描述我们目前在构建基于Azure Stack混合云业务解决方案方面所面临的网络连通困难,以及相关技术人员为解决这一问题所做出的努力及技术探索。
Express Route(ER): Azure ExpressRoute 可让你通过连接服务提供商(这里是上海电信)扩展到 Azure 云。使用 ER 可与Azure云服务建立连接。ER 连接不通过公共Internet 。与通过 Internet 的典型连接相比,ExpressRoute连接提供更高的可靠性、更快的速度、更低的延迟和更高的安全性。
详细的ER的介绍可以参考微软官网文档
S2S VPN: 是一种站点到站点通过VPN技术互联的azure 服务。详细介绍可以参考 微软官网文档](/
也可参考前面写过一篇 关于ER的博文
可以将站点到站点 VPN 连接配置为 ExpressRoute 的备份。这仅适用于链接到 Azure 专用对等路径的虚拟网络。对于可通过 Azure 公共线路访问的服务,没有基于 VPN 的故障转移解决方案。ExpressRoute 线路始终是主链接。仅当 ExpressRoute 线路失败时,数据才会流经站点到站点 VPN 路径,参见下图。
可以对网络进行配置,使得部分站点通过站点到站点 VPN 直接连接到 Azure,部分站点通过 ExpressRoute 进行连接。参见下图。
公司的ER+S2S VPN混合云实验环境打通了公司的Azure公有云订阅和位于紫竹微软的私有云环境,详细的架构图及网络规划如下图。(这里非常感谢微软ER团队的支持)
Azure公有云和私有云环境通过ExpressRoute和站点到站点 VPN方式连通,这种连通方式可以将站点到站点 VPN 配置为 ExressRoute 的安全故障转移路径,实现高可用。或者使用站点到站点 VPN 连接到不是通过 ExpressRoute 进行连接的站点,承载一些对网络延时不敏感的流量
2.下图是从本机(研究院内网的一台PC)ping到宜山机房的一台服务器,研究院内网和宜山路机房通过一条100M的专线相连接,看图延时基本在10-30ms左右,抖动较大。
3.下图是从本机(公司内网的一台PC)ping到宝山机房的一台服务器的外网地址,公司内网和宝山机房只能通过外网(WAN)访问,看图延时基本在10-30ms左右,抖动较大。图2是从本机(公司内网的一台PC)ping到百度服务器,延时基本在30ms左右。
4.最后是从我们Azure共有云的一台电脑到微软私有云环境的网关地址,两者通过Azure的ExpressRoute相连,可以发现每个包的反馈时间非常稳定在4ms左右,通过对比,通过Azure ExpressRoute的混合云方案基本和纯内网环境的网络延时相当。
实验结论:通过Azure ExpressRoute相连的网络延时非常小,网络抖动也很小,网络的QOS做的非常好,甚至优于我们研究院的内网环境。
从Azure共有云账户里的虚机里通过ftp传文件到微软测试机器中的传输速度如下:
账户里的虚机中的传输速度如下
对比S2S VPN传输速度:
Azure Stack Tools 是在 GitHub 上维护的一套 Azure Stack 工具集,由微软 Azure Stack 团队为系统开发者和运维者提供的一款基于 Azure Resources Manager 的脚本工具。为了混合云管理开发运维一致性的设计原理,它沿袭了 Azure Resource Managers 设计风格的指令集,可以使开发者与运维者能够像使用 AzureRM 模块一样使用 Azure Stack Tools。不同于 Portal 界面,Azure Stack Tools 能够批处理相关运维、监控操作,为相关人员节省不必要的工作。
在 Azure Stack 部署虚机与在 Azure 上面部署虚机一样,我们通过以下代码通过 Azure Stack 部署。
首先,我们创建资源组。
# Create a resource group
New-AzureRmResourceGroup -Name 'myResourceGroup1' -Location "local"
注意:-Location 的参数需要使用 local 或用户自定义区域位置信息,与 Azure 公有云有所区别
然后创建虚拟网络以及子网,并为网络配置公共 IP。
############### Create networking resources ############################## # Create a subnet configuration $subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name 'mySubnet01'` -AddressPrefix 10.0.1.0/24 # Create a virtual network $vnet = New-AzureRmVirtualNetwork -ResourceGroupName 'myResourceGroup1'` -Location 'local' -Name myResourceGroup1-vnet` -AddressPrefix 10.0.0/16 -Subnet $subnetConfig # Create a public IP address and specify a DNS name $pip = New-AzureRmPublicIpAddress -ResourceGroupName 'myResourceGroup1'` -Location 'local' -AllocationMethod Static` -IdleTimeoutInMinutes 4 -Name "test1-ip"
添加完公网 ip 后,我们为虚机添加网络安全组。
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name 'myNic'` -ResourceGroupName 'myResourceGroup1' -Location 'local' ` -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id` -NetworkSecurityGroupId $nsg.Id # Create an inbound network security group rule for port 3389 $nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig` -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix *` -SourcePortRange * -DestinationAddressPrefix * ` -DestinationPortRange 3389 -Access Allow # Create an inbound network security group rule for port 80 $nsgRuleWeb = New-AzureRmNetworkSecurityRuleConfig -Name` myNetworkSecurityGroupRuleWWW -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix *` -SourcePortRange * -DestinationAddressPrefix * ` -DestinationPortRange 80 -Access Allow # Create a network security group $nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName myResourceGroup1` -Location local -Name test1-nsg -SecurityRules $nsgRuleRDP,$nsgRuleWeb # Create a virtual network card and associate with public IP address and NSG $nic = New-AzureRmNetworkInterface -Name myNic` -ResourceGroupName myResourceGroup1 -Location local ` -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id` -NetworkSecurityGroupId $nsg.Id
最后在 Azure Stack 中添加虚机。
################################ Create VM ############################### Define a credential object
$cred = Get-Credential # Create a virtual machine configuration $vmConfig = New-AzureRmVMConfig -VMName myVM -VMSize Standard_D1 | ` Set-AzureRmVMOperatingSystem -Windows -ComputerName myVM ` -Credential $cred | Set-AzureRmVMSourceImage -PublisherName ` MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter ` -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id New-AzureRmVM -ResourceGroupName myResourceGroup -Location 'local' -VM $vmConfig
最后我们会在 Azure Stack 界面上看到如下新建资源,说明已经添加成功。
/
转载于:.html
本文发布于:2024-01-31 10:00:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666644827707.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |