Azure函数的IP地址超出VNet的范围

mqkwyuun  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(140)

我有一个使用Premium Plan的Azure功能-我需要它来将其与Azure上的虚拟网络集成。我已经将我的应用与地址范围为172.24.2.0/26的VNet子网集成。
当我通过SSH进入Azure函数并运行ip a命令时,我看到:

root@2a5f00591f61:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: eth0@if36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 82:4d:fd:69:94:37 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 169.254.129.3/24 brd 169.254.129.255 scope global eth0
       valid_lft forever preferred_lft forever
5: vnet009kd8d60@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 62:6b:44:d9:b5:11 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet 169.254.254.3/24 brd 169.254.254.255 scope global vnet009kd8d60
       valid_lft forever preferred_lft forever

我不明白为什么列出的IP都不在我的子网范围内。我在高级计划中创建功能的原因是为了将其放在VNet中。我的用例是我有一个服务,该服务仅接受来自选定VNet的请求-包括我的功能使用的VNet。如何使我的功能的IP在子网范围内?
//EDIT我的函数在其配置中有WEBSITE_VNET_ROUTE_ALL = 1

fhg3lkii

fhg3lkii1#

这是设计行为,当您在VNet集成后从Azure功能访问SSH工具时,我也得到了相同的结果。正如我所看到的,在VNet内集成Azure功能后,Azure将Dynamic Configuration of IPv4 Link-Local Addresses分配给SSH主机。
实际上,我们可以通过Kudu控制台UI中的环境变量WEBSITE_PRIVATE_IP检查分配给示例的私有IP。
分配给示例的专用IP通过环境变量WEBSITE_PRIVATE_IP公开。Kudu控制台UI还显示Web App可用的环境变量列表。此IP从集成子网的地址范围分配。对于区域VNet集成,WEBSITE_PRIVATE_IP的值是委派子网地址范围中的IP,对于网关所需的VNet集成,该值是在虚拟网络网关上配置的点到站点地址池的地址范围中的IP。这是Web App将用于通过虚拟网络连接到资源的IP。
对于Linux应用程序服务计划,

对于Windows应用服务计划,

在这种情况下,如果您的服务只接受来自选定VNet的请求,则可以通过添加应用程序设置WEBSITE_VNET_ROUTE_ALL=1强制将所有出站流量发送到您的VNet,并且可以使用网络安全组规则限制该VNet中的流量。

相关问题