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功能和文档的不熟悉,使用过程中或多或少遇到了一些坑.事实上呢,这些并不是坑 ...
随机推荐
- 克隆虚机网卡出现 Device eth0 does not seem to be present, delaying initialization 错误
错误原因 克隆的Linux系统在新的机器上运行,新服务器网卡物理地址已经改变.而/etc/udev/rules.d/70-persistent-net.rules这个文件确定了网卡和MAC地址的 ...
- [LeetCode] Coin Change 硬币找零
You are given coins of different denominations and a total amount of money amount. Write a function ...
- C#之发送邮件【模板】+【封装】ZJ版
PS: 为了弥补上篇博客的不足,正好周六闲着没事.所以进行优化下,来个终结版 功能实现:模板发送+自指定邮箱发送+解耦 总体预览如下: 各代码如下:(代码略多,所以都折叠了) 前台; @{ Layou ...
- 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法
手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...
- 【BZOJ 4582】【Usaco2016 Open】Diamond Collector
http://www.lydsy.com/JudgeOnline/problem.php?id=4582 排好序后用两个指针直接\(O(n)\)扫,貌似这个东西学名"two pointers ...
- mysql general log日志
注:应一直出现http://www.cnblogs.com/hwaggLee/p/6030765.html文章中的问题 故mysql general log日志.查看具体是什么命令导致的. 打开 ge ...
- wpf 后台比例设置高度
ColumnDefinition cd0 = new ColumnDefinition(); cd0.Width = new GridLength(2, GridUnitType.Star); txt ...
- CSS display:inline-block
CSS display:inline-block 在css布局里,我们经常看到代码 「display:inline-block; *display:inline; zoom:1; 」,大多人会说上面的 ...
- 设计向 20款优秀免费的Icons图标合集 (转)
Pioneer Icons Free Sample Sketch Resource Zodiac Icon Set Sketch Resource 90 Pixel Perfect Halloween ...
- Java时间类型转换
String转Long Long long=new SimpleDateFormat("yyyyMMddHHmmss").parse(String).getTime(); Long ...