Azure 用户自定义路由 (User Defined Route)
在公有云环境中,用户创建了一个Vnet,添加了若干个网段后,这几个网段是全联通的状态。
如果希望在Vnet中添加一些功能性的设备,比如防火墙、IPS、负载均衡设备等,就需要进行用户自定义路由的配置。
下图就是UDR的一个应用场景:

被保护网络的所有流量需要经过中间的防火墙、IPS等设备。
本文设定的一个简单场景是两个网段,Subnet-1和Subnet-2。有一台设备VM1有两个网卡,跨接了两个网段。另外两台设备VM2和VM3各在一个网段。如下图:

如果不设置UDR,10.1.1.5访问10.1.2.5的流量都通过10.1.1.1->10.1.2.1,不会经过VM1设备。
对每个网段设置一条UDR:
- 在Subnet-1定义UDR:到10.1.2.0/24的流量都发给10.1.1.4
- 在Subnet-2定义UDR:到10.1.1.0/24的流量都发给10.1.2.4
定义好这两条路由后,这两个网段间互相访问的流量都会经过VM1了。
具体配置如下:
1. 创建VM。
VM2和VM3的创建就是普通的创建方式,在Portal页面上操作即可,这里就不描述了。
VM1的创建需要考虑到双网卡,设置静态内网地址等,需要通过PowerShell创建,其命令为:
New-AzureVMConfig -Name hwudr01 -InstanceSize Large -ImageName $vmimage.ImageName | Add-AzureProvisioningConfig -Linux -LinuxUser hengwei -Password password | Set-AzureSubnet -SubnetNames Subnet-1 | Set-AzureStaticVNetIP -IPAddress 10.1.1.4 | Add-AzureNetworkInterfaceConfig -Name nic2 -SubnetName Subnet-2 -StaticVNetIPAddress 10.1.2.4 -IPForwarding Enabled | New-AzureVM -ServiceName hwudr01 -Location "China North" -VNetName hwudr
2. 创建UDR
a. 创建路由表
New-AzureRouteTable -Name hwudrvlan01 -Location "China North" -Label hwudrvlan01
New-AzureRouteTable -Name hwudrvlan02 -Location "China North" -Label hwudrvlan02
b. 设置路由
Get-AzureRouteTable -Name hwudrvlan01 | Set-AzureRoute -RouteName hwudrvlan01 -AddressPrefix 10.1.1.0/24 -NextHopType VirtualAppliance -NextHopIpAddress 10.1.2.4
Get-AzureRouteTable -Name hwudrvlan02 | Set-AzureRoute -RouteName hwudrvlan02 -AddressPrefix 10.1.2.0/24 -NextHopType VirtualAppliance -NextHopIpAddress 10.1.1.4
c. 把路由表关联到网段上
Set-AzureSubnetRouteTable -VirtualNetworkName hwudr -SubnetName Subnet-1 -RouteTableName hwudrvlan02
Set-AzureSubnetRouteTable -VirtualNetworkName hwudr -SubnetName Subnet-2 -RouteTableName hwudrvlan01
d. Enable IP Forwarding
只有开启了IP Forwarding模式,被配置的虚拟机才能进行数据包的转发,否则只能接受目标地址是自己的IP包。
开启的命令如下:
Get-AzureVM -Name hwudr01 -ServiceName hwudr01 | Set-AzureIPForwarding -Enable
配置工作完成。此时在10.1.1.5中ping 10.1.2.5,同时在VM1上抓包,可以看到ICMP的双向数据包都经过了VM1。
Azure 用户自定义路由 (User Defined Route)的更多相关文章
- Azure通过Vnet Peering和用户自定义路由(UDR)实现hub-spoken连接
Azure的Vnet Peering可以把Azure中不同的Vnet连接起来的技术.底层是通过对NVGRE的租户标签进行修改,实现了不同租户间的互通.这种技术非常类似传统网络中MPLS/VPN不同租户 ...
- vue路由对象($route)参数简介
路由对象在使用了 vue-router 的应用中,路由对象会被注入每个组件中,赋值为 this.$route ,并且当路由切换时,路由对象会被更新. so , 路由对象暴露了以下属性: 1.$rout ...
- react 中的路由 Link 和Route和NavLink
route是配置,link是使用 https://blog.csdn.net/chern1992/article/details/77186118(copy) 嵌套路由一般使用Route,类似于vue ...
- 路由配置(route IP
转载于:http://blog.csdn.net/chenlycly/article/details/52141854 使用下面的 route 命令可以查看 Linux 内核路由表. # route ...
- Angular入门到精通系列教程(13)- 路由守卫(Route Guards)
1. 摘要 2. 路由守卫(Route Guards) 2.1. 创建路由守卫 2.2. 控制路由是否可以激活 2.3. 控制路由是否退出(离开) 3. 总结 环境: Angular CLI: 11. ...
- 路由信息相关 route 网卡
目录 route命令 1.查看路由表 2.管理路由 基本网络配置 添加网卡地址 修改网卡UUID route命令 路由表管理命令,路由表主要构成: Destination: 目标网络ID,表示可以到达 ...
- 一个类似backbone路由的纯净route ( 前端路由 客户端路由 backbone路由 )
大家用backbone.angular,可能都习惯了内置的路由,这两个框架的路由都是非常优秀的,强大而简单. 客户端(浏览器)路由原理其实比较简单,其实就是监听hash的变化. 在之前的架构探讨中,说 ...
- 路由信息对象Route之属性query和params的区别
query的使用 第一步:在<router-link/>标签中配置如下 <router-link :to="{name:'beijing',query:{id:1,user ...
- Asp.net core (学习笔记 路由和语言 route & language)
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1 https://doc ...
随机推荐
- java.util包下面的类---------01---示意图
一直在使用util包下面的这些类,甚至有些没用过的,想要都去认识认识他们!也许在未来的一天可以用到! 图太大不好截图!部分没有截全!
- Python小练习(持续更新....)
最近一直在学习python,这些小练习有些是书上的,有些是别人博客上的! # 1.题目1# 给一个字符串,统计其中的数字.字母和其他类型字符的个数:# 比如输入“124mid-=”,输出:数字=3,字 ...
- 【python】-- 初识python
Python 安装 windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机 ...
- Android笔记之GridView
完整Demo链接:https://pan.baidu.com/s/1d_G9aCwBxpiYQcdQhwSDDw,提取码:5deh 效果图 activity_main.xml <?xml ver ...
- CF451E Devu and Flowers(容斥)
CF451E Devu and Flowers(容斥) 题目大意 \(n\)种花每种\(f_i\)个,求选出\(s\)朵花的方案.不一定每种花都要选到. \(n\le 20\) 解法 利用可重组合的公 ...
- 图形数据库(GraphDB)
Date: 2016-01-27 Title: 图形数据库-1 Published: true Type: post Excerpt: Category: GraphDB 图形数据库(GraphDB) ...
- Java注释Override、Deprecated、SuppressWarnings
在J2SE5.0的java.lang包中预定义了三个注释:Override.Deprecated和SuppressWarnings Override 这个注释的作用是标识某一个方法是否覆盖了它的父类的 ...
- 深入理解利用new创建对象的执行过程以Person p=new Person("张三",20);为例
代码如下: class Person { private String name="haha"; private int age; private static String co ...
- php关于<<<的用法
Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术.但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实 ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...