什么是虚拟网络

虚拟网络是您的网络在 Azure 云上的表示形式。您可以完全控制虚拟网络的 IP 地址、DNS 的设置、安全策略和路由表。您还可以更进一步,把虚拟网络划分为多个子网。然后用它们连接您的虚机或其他的云服务实例。另外,您还可以通过 Azure 的连通性选项建立虚拟网络和本地网络的连接。比如一个经典的本地网络,它在 Azure 上的表示可能是这个样子(此图来自MSDN):

注意,此图中的 Azure infrastructure 取代了本地网络中路由器的角色,它使您可以无需任何配置就可以从虚拟网络服务公网。网络安全组则取代本地网络中的防火墙应用于每一个子网。同时物理的负载均衡设备也被 Azure 内部提供的负载均衡功能取代。

虚拟网络的优势

隔离

虚拟网络之间是完全隔离的。这就允许我们为开发、测试和产品环境创建完全相同的网络环境。比如您可以创建两个IP地址空间完全相同的虚拟网络分别用于开发和测试,从而保证测试环境和开发环境的一致性。

访问公网

默认连接到虚拟网络的所有虚机和 PaaS 角色的实例都能够访问公网。您可以通过网络安全组(NSGs)进行访问控制。

在虚拟网络中访问虚机

虚拟机和 PaaS 角色的实例可以被连接到同一个虚拟网络中。即便它们在不同的子网中也可以通过私有的 IP 地址进行互联,而且不需要配置网关或公有 IP 地址。

名称解析

Azure 内部提供了解析虚拟网络中部署的虚机和 PaaS 角色实例名称的功能。当然,您还可以配置使用您自己的 DNS 服务器。

安全

您可以通过网络安全组控制虚拟网络中进出虚机和 PaaS 角色实例的信息。

连通性

虚拟网络之间可以通过网关或虚拟网络 peering 技术实现相互连接,也可以通过 VPN 网络或 Azure ExpressRoute 连接到您的本地数据中心。

创建虚拟网络

PowerShell 的 Azure 模块中为我们提供了不同的 API, 早期的 API 叫 ASM(Azure Service Manager)。随着 Azure 的发展变化,又出现了一套新的 API 叫 ARM(Azure Resource Management)。本文将使用 ARM 版本的 API。明确一下目标,我们将创建如下图所示的虚拟网络结构(此图来自MSDN):

新的虚拟网络名称为 LearnVNet,IP 地址空间为 192.168.0.0/16,包括两个子网:
FrontEnd, 192.168.1.0/24
BackEnd, 192.168.2.0/24

准备工作

首先您需要安装 Azure PowerShell SDK,这一步您可以参考 MSDN 或者笔者的博文《Azure 基础:用 PowerShell 自动发布 CloudServices》。然后使用 Login-AzureRmAccount 命令登录您的订阅账号。接下来再创建一个 Resource Group,本次实验的环境全都放在这个 Resource Group 中:

New-AzureRmResourceGroup -Name LearnRG -Location "East Asia"

这条命令会在东亚的数据中心中创建名称为 “LearnRG” 的 Resource Group。注意,这条命令执行完成后,Azure 就已经创建了名称为 LearnRG 的 Resource Group。

好了,现在就可以开始创建虚拟网络了。

虚拟网络

在 ResourceGroup LearnRG 中创建虚拟网络 LearnVNet:

New-AzureRmVirtualNetwork -ResourceGroupName LearnRG -Name LearnVNet -AddressPrefix 192.168.0.0/16 -Location "East Asia"

接下来把刚刚创建的虚拟网络 LearnVNet 保存到变量 vnet 中:

$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName LearnRG -Name LearnVNet

下面创建第一个子网 192.168.1.0/24:

Add-AzureRmVirtualNetworkSubnetConfig -Name FrontEnd -VirtualNetwork $vnet -AddressPrefix 192.168.1.0/24

用同样的方法创建第二个子网 192.168.2.0/24:

Add-AzureRmVirtualNetworkSubnetConfig -Name BackEnd -VirtualNetwork $vnet -AddressPrefix 192.168.2.0/24

此时虽然我们已经完成了相关信息的创建,但是所有的信息还只是保存在本地,需要通知 Azure 进行实际的创建工作:

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

命令执行完成后我们就可以到 portal 上查看结果了:

一切顺利,虚拟网络 LearnVNet 和两个子网已经创建成功啦!

Azure 基础:使用 powershell 创建虚拟网络的更多相关文章

  1. 将Azure WebSite(应用)集成到虚拟网络

    用过Azure的同学都知道如何将虚拟机加入虚拟网络,也非常简单,但是对于将应用(WebSite)集成到虚拟网络中却很少听到.今天我要讲的就是如何直接将我们部署在WebSite中的应用加入到虚拟网络. ...

  2. Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内使用世纪互联运维的Azure China 在笔者之前的文章中,我们知道现在微软官方不建议使用Affinity ...

  3. OpenStack Train版-12.创建虚拟网络并启动实例(控制节点)

    使用VMware虚拟机创建网络可能会有不可预测到的故障,可以通过dashboard界面,管理员创建admin用户的网络环境 1.第一种: 建立公共提供商网络在admin管理员用户下创建 source ...

  4. 在Azure上通过Powershell创建多Interface的Cisco CSR路由器

    前面通过Json的Template在Azure上创建了Cisco的CSR路由器.但那个Json的template只支持1块网卡.如果需要多网卡的Cisco CSR路由器,可以改上篇文章中提到的Json ...

  5. KVM-virsh 创建虚拟网络

    创建网络 创建配置文件 vim /etc/libvirt/qemu/networks/nfsnobody.xml #创建一个名为nfsnobody的虚拟网络 <network> <n ...

  6. Azure 基础:使用 powershell 创建虚拟机

    在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure ...

  7. 适用于 Azure 虚拟网络的常见 PowerShell 命令

    如果想要创建虚拟机,需要创建虚拟网络或了解可在其中添加 VM 的现有虚拟网络. 通常情况下,创建 VM 时,还需考虑创建本文所述资源. 有关安装最新版 Azure PowerShell.选择订阅和登录 ...

  8. 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机

    Azure 虚拟机使用 Azure 网络进行内部和外部网络通信. 本教程介绍了如何在虚拟网络中创建多个虚拟机 (VM),以及如何在虚拟机之间配置网络连接. 你将学习如何执行以下操作: 创建虚拟网络 创 ...

  9. Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP

    <Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...

随机推荐

  1. mvc中上传图片到指定文件夹中

    前台: @using (Html.BeginForm("AddImg", "UpFileImg", FormMethod.Post, new { enctype ...

  2. Java 之 HTML

    1.HTML a.定义:HTML指的是超文本标记语言 b.特点:HTML不是一种编程语言,而是一种标记语言 标记语言是一套标记标签 HTML使用标记标签来描述网页 c.HTML标签:①通常标签是成对出 ...

  3. Java序列化与反序列化,文件操作

    参考两篇博客: http://blog.csdn.net/moreevan/article/details/6697777 http://blog.csdn.net/moreevan/article/ ...

  4. UVa 990 - Diving for Gold

    题目大意:一个潜水者去海底寻找金子,已知有n个有金子的地点,分别给出他们的深度和价值.但是由于潜水者只有一瓶氧气,所以他只能在海底呆有限的时间,问他如何才能在这有限的时间里获得尽可能多的金子,并打印出 ...

  5. Linux安装Tomcat外部不能访问

    Linux安装Tomcat后本地可以正常访问,可是这时Tomcat还不能被外界访问需要在Linux默认防护墙上打开8080端口 打开 /etc/sysconfig/iptables [root@loc ...

  6. centos6 安装mysql

    如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--Cen ...

  7. 如何使用Grunt(好文)

    Grunt 是什么? Grunt 基于Node.js之上,是一个以任务处理为基础的命令行工具,可以减少优化开发版本为发布版本所需的人力和时间,从而加速开发流程.它的工作原理是把这 些工作整合为不同的任 ...

  8. CSS文字大小单位PX、EM、PT

    老是被人问到px.pt和em的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之.点击查看原文 这里引用的是Jorux的"95 ...

  9. 上传文件到linux服务器

    可以在SecureCRT下上传 先用使用命令下载一个文件:yum install lrzsz -y 然后在跳转到要保存的目录 最后,拖拽文件到secureCRT中即可

  10. 安卓自定义类似TabHost的导航栏

    有时候为了项目需要我们要自定义一些导航控件,类似下面这样. 下面给大家讲讲我是怎么实现的, 1.素材准备(这个都是美工的事情) 2.①资源文件共有五个 如下: activity_main_first. ...