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

当使用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]

posted @ 2020-08-23 15:14  路边两盏灯  阅读(301)  评论(0编辑  收藏  举报