Azure上的那些IP
相信第一次接触Azure的读者都会碰到这样一个问题,就是Azure的IP地址,笔者第一次接触Azure也是被搞懵逼了,一会儿VIP,不知道的还以为是会员的意思呢,一会儿又是DIP,后来又来了个PIP,所以很容易搞混淆,所以今天笔者稍微讲一下这几种IP!!!
Azure的IP地址分为下面几类
VIP.负载均衡的IP地址(也可以叫公用虚拟IP地址)
DIP.内部IP地址(Azure官网还叫VIP:x,x表示端口号)
PIP.实例层级公共IP
废话不多说,先贴一张图

这张图我是从官网上扣下来的,个人认为这张图画的还是比较清晰的
一.VIP
概述.在ASM中,这个IP地址是必须的,是SLB负载均衡的IP地址,你也可以认为是一个云服务的IP地址,你可以这么理解,但是其实它是附着在SLB上的(以前Azure的SLB是用vm搭建的,现在都是物理机做的,这就是为什么阿里的SLB仍然要单独收费,微软免费的原因),因为我们知道云服务相当于一个容器,里面包含了你的各种部署,但是这个容器外面的SLB是暴露给Internet的,在以前的ASM中,每个云服务都可以免费获取一个VIP,如果需要额外的VIP地址需要支付一定的费用,外部人员通过Internet访问该云服务就是访问的该VIP地址的。
VIP有如下几个特点
1.首先,该IP地址是SLB的,而SLB附着云服务的上的,但是该云服务里面必须有部署,否则不会分配VIP,在不固定VIP的前提下,一旦部署删除,VIP也会随即释放,举个例子,当在同一个云服务中部署两台VM,这两个VM的VIP一样,但是如果这两台VM一旦被删除,该VIP也会被释放,但是在ARM中,如果不创建SLB(并且该虚拟机不分配PIP),那么该虚拟机就没有公共IP地址。
2.该IP地址是禁ping的,因为SLB是禁止了ICMP协议的,而ping就是基于ICMP协议的。
3.该IP地址是可以固定的,可以通过powershell固定,如果不固定,一旦系统重启以后该VIP会变,但是即使固定了,一旦删除云服务中的部署被删除,该VIP仍然会变化,但是前一个VIP仍然被你独占。
二.DIP
概述.Azure为云服务中的每个部署提供一个虚拟IP地址,就是DIP,一般该地址都是私有IP,只能实现内网之间的互访。
DIP有如下几个特点
1.这是Azure VM的内网IP地址,在同一虚拟网络中的不同VM就是通过DIP互相通信的(当然可以在子网中使用NSG进行策略)。
2.Azure的DIP的分配原则是先到先得的,最先创建并开机的VM会获得第一个可用的DIP。
3.DIP也可以通过powershell固定,无论在ASM还是ARM里,即使该VM被停止或者关机了,该DIP仍然为其保留,但是如果你删除了该VM,在ASM中,该DIP就会被释放,不会再为其保留,如果在ARM中,如果只是删除给虚拟机,该DIP仍然被独占,因为有一个网络接口没被删除,那是虚拟机的虚拟网卡所在,所以DIP仍然还保留着。
三.PIP
概述.我们知道虚拟机的DIP是无法被外网直接访问的,必须通过VIP加端口号才能访问,但是如果该虚拟机附加了PIP,外网就可以直接访问,在ASM中,PIP是不可选的,只能是动态的,在ARM中,是可选的,可以设置为静态,除此以外,我们知道,在Azure的虚拟网络内部,是禁ping的,也就是说只有DIP的两台虚拟机即使在同一内网里面仍然是ping不通的,但是附加了PIP,这两台虚拟机就可以ping了,这是为什么,这是由于这时的ping的数据包其实不是走虚拟网络传输的,而是借助于Internet,这样就等于直接绕过虚拟网络和SLB,这样当然可以ping通,但是有人发现一个奇怪的问题,为什么我附加了PIP的VM可以ping通百度,但是访问不了百度,这是什么原因呢?因为你的虚拟机外被设置了NSG,而NSG默认只开启了22端口,就是SSH,所以你的80端口被关闭,当然不能使用http服务了,又由于NSG只能限制TCP/UDP的流量,而不能限制ICMP,所以当然可以ping通百度。
PIP有如下几个特点
1.PIP是独立的公网IP地址,和负载均衡的IP地址不一样。
2.当同一个虚拟网络中的两台VM都保留了静态PIP,这两个PIP肯定是不同的。
3.如果某台VM我们使用了PIP,所有的请求都直接发送给该VM,在不设NSG的前提下,该VM不需要配置终结点,因为所有的终结点都是暴露在Internet上的。
4.如果VM开启了PIP,就可以直接ping通,原理如上。
Azure上的那些IP的更多相关文章
- 如何在Azure上动态配置IP地址
微软最近对 Windows Azure 网站进行了升级,并启用了IIS8的动态 IP 限制模块.现在,开发人员可以为其网站启用并配置动态 IP 限制功能(或简称 DIPR). 可以通过以下链接查看此 ...
- 在Windows Azure上配置VM主备切换(1)——Linux篇
对任何一个上线系统来说,高可用设计是不可或缺的一个环节,这样才可以确保应用可以持续.稳定的运行,而不是频繁的掉线.停机.高可用设计的核心思路很简单,就是消除一切单点故障,将单点链路或者节点升级为多点. ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)
前言 (二)建立虚拟网络环境,以及域控和DNS服务器 1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...
- Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
<Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...
- 在Azure上实现Linux Server故障转移
要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难 ...
- [New Portal]Windows Azure Virtual Machine (18) Azure Virtual Machine内部IP和外部IP
<Windows Azure Platform 系列文章目录> 在开始本章内容之前,请读者熟悉以下2篇博文: [New Portal]Windows Azure Virtual ...
- Azure上七层负载均衡APP Gateway
Azure的SLB和ILB是最常用的4层负载均衡工具.但有些场景是7层的负载均衡,SLB和ILB就无能为力了. Azure上已经推出了APP Gateway的服务,就是7层负载均衡的负载均衡器. 如上 ...
- [转]Windows Azure上安装SharePoint 2013
基于Windows Azure 安装SharePoint 2013 前段时间写的基于Windows Azure安装SharePoint系列,由于Azure的体验账号过期了,所以不得不暂停.今天有幸参加 ...
- 在Azure上部署IPv6的App通过IOS App Store审核
随着中国企业出海Go Global,越来越多的用户开始在Global Azure部署自己的应用.由于对Global Azure功能和文档的不熟悉,使用过程中或多或少遇到了一些坑.事实上呢,这些并不是坑 ...
随机推荐
- Java监听器
监听器 1.概念 监听器:主要是用来监听特定对象的创建,属性的变化的!,本质上却是一个实现特定接口的普通java类! 对象分为自己创建自己使用的,和别人创建自己用的,自己创建的不需要监听,值需要取监听 ...
- 从2G到5G, 基站天线过去与未来
在蜂窝移动通信系统中,天线是电路信号与空间辐射电磁波的转换器,是移动通信系统的末梢关键组成部分. 从2G到4G,移动基站天线经历了全向天线.定向单极化天线.定向双极化天线.电调单极化天线.电调双极化天 ...
- 励志经典,持续收集ing....
士兵突击励志经典:http://blog.sina.com.cn/s/blog_660538e10100r7ld.html 励志散文1:http://www.vipyl.com/Article/328 ...
- Stack的三种含义
作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...
- asp.net mvc 绑定客户端post过来的复杂JSON数据
客户端代码如下: <input type="button" id="btnTest" value="测试" /><br / ...
- jquery基本操作笔记
来源于:http://www.cnblogs.com/webcome/p/5484005.html jq和js 可以共存,不能混用: 1 2 3 4 5 6 $('.box').css('backgr ...
- poj2217
Secretary Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1257 Accepted: 515 Descript ...
- cocos2d-x3.x自定义事件
-- 自定义事件 -- 监听: local eventDispatcher = self:getEventDispatcher();--self为继承Node的对象 local function ha ...
- 使用App.config管理数据库连接
程序的数据库连接字符串可以保持在程序的配置文件App.config中,便于管理. 将配置文件添加至解决方案: 添加连接信息: <?xml version="1.0"?> ...
- C#面向对象设计模式纵横谈——1.面向对象设计模式与原则
一:设计模式简介 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. ---- Christopher Alexander 软件设计领域设计模式: 设计模式描述了软件设计过 ...