菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
162
0

【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果

原创
05/13 14:22
阅读数 96877

当使用Azure Redis高级版时候,为了能更好的保护Redis的安全,启用了虚拟网路,把Redis集成在Azure中的虚拟网络,只能通过虚拟网络VENT中的资源进行访问,而公网是不可以访问的。但是在使用中,有时候会有一些疑惑,大多数的疑惑我们可以在Azure Redis的文档中得到答案,有一些则需要通过自己在使用中得到验证或解释。如:

  • 当集成成功后,为什么通过公网nslookup也可以解析成功Redis 域名呢?
  • 在内网中如何连接Redis呢?通过何种方式来进行测试?
  • Redis的防火墙的白名单起什么作用呢?是否可以设置允许外网的IP地址进行访问呢?

 

如何为高级 Azure Redis 缓存配置虚拟网络, 请见文档:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet特别注意的是,将 Azure Redis 缓存部署到资源管理器 VNet 时,缓存必须位于专用子网中,该子网中只能包含 Azure Redis 缓存实例,而不能包含其他资源。 如果尝试将 Azure Redis 缓存部署到包含其他资源的资源管理器 VNet 子网,部署会失败。

 

我们就通过实验来一一解答.

1) 当集成成功后,为什么通过公网nslookup也可以解析成功Redis 域名呢?

因为在Redis创建号之后,是通过DNS域名来进行的访问(公网与内网的访问方式一样,也可以通过IP地址访问)。而内网中如果我们没有自定义DNS服务器,这需要向外部公网的DNS服务器寻求对次Redis的域名进行解析,如(114.114.114.114,8.8.8.8), 而这是Redis服务在为了不论是在内网,外网的情况下都能解析到Redis DNS而设计的。但是如果构建的内部虚拟网络(VNET)如果不允许想外部发送请求,这必须在自己的DNS服务器上配置该条A记录。

虽然外网能够解析出该Redis 域名,但是解析出的是一个内网IP地址,所以外部网络也是无妨访问此Redis的。

 

2) 在内网中如何连接Redis呢?通过何种方式来进行测试?

首先,需要在内网中找一台虚拟机。通过tcping.ext的小工具来对6379,6380端口进行ping命令并查看返回结果。如果ping的结果正常,则可以使用Redis-cli工具连接到Redis服务。如Windows平台可以https://github.com/microsoftarchive/redis/releases 下载。

使用tcping.ext测试端口命令:

tcping.exe yourcachename.redis.cache.chinacloudapi.cn 6379

tcping.exe yourcachename.redis.cache.chinacloudapi.cn 6380

使用Redis-cli连接到Redis命令:

redis-cli.exe -h yourcachename.redis.cache.chinacloudapi.cn -p 6379 -a YourAccessKey

 

3) Redis的防火墙的白名单起什么作用呢?是否可以设置允许外网的IP地址进行访问呢?

当集成在内部虚拟网络之后,外部公网是不可以继续访问的[VNet 是云中的专用网络。 为 Azure Redis 缓存实例配置了 VNet 后,该实例不可公开寻址,而只能从 VNet 中的虚拟机和应用程序进行访问]。而此时,防火强的白名单的作用对象也变成了内网中的IP地址,即:可以通过设置防火墙白名单,只允许内网中的部分资源访问Redis。

 

[END]

发表评论

0/200
162 点赞
0 评论
收藏
为你推荐 换一批