在VNET上的ACI上运行的容器无法访问Internet地址(出站连接)

时间:2019-07-31 23:33:31

标签: azure azure-virtual-network azure-container-instances

我们有一个在VNET上通过ACI运行的容器,该容器最近已停止访问Internet地址(google.com,Azure SQL数据库等)。我在VNET以及由“ az container create”命令创建的全新VNETS中调出了其他几个容器,它们都显示相同的行为。我已经测试了股票ubuntu和高山图像(除了我们原始的自定义图像),甚至尝试了Microsoft的Hello World图像。在任何情况下(我尝试过的每个vnet和区域),对任何外部地址的ping操作都会失败(但内部地址不会),但DNS确实可以解析。我们获得以下网络接口(eth0获得VNET /子网本地地址)

eth0      Link encap:Ethernet  HWaddr 36:57:E0:61:78:DF
          inet addr:10.202.94.4  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::3457:e0ff:fe61:78df/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:936 (936.0 B)  TX bytes:936 (936.0 B)
eth1      Link encap:Ethernet  HWaddr C2:DB:44:D5:48:5D
          inet addr:169.254.0.4  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::c0db:44ff:fed5:485d/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:50 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3835 (3.7 KiB)  TX bytes:2392 (2.3 KiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我们得到以下路由表(同样是eth0上的vnet)

default via 169.254.0.1 dev eth1
10.0.0.0/8 via 10.202.94.1 dev eth0
10.202.94.0/24 dev eth0  src 10.202.94.4
169.254.0.0/16 dev eth1  src 169.254.0.4
172.16.0.0/12 via 10.202.94.1 dev eth0
192.168.0.0/16 via 10.202.94.1 dev eth0

对于Google和我们的一个数据库,traceroute的结果如下所示

/ # traceroute google.com
traceroute to google.com (216.58.193.78), 30 hops max, 46 byte packets
 1  169.254.0.1 (169.254.0.1)  0.007 ms  0.008 ms  0.005 ms
 2  *
# traceroute [ourdb].database.windows.net
traceroute to [ourdb].database.windows.net (xxx.xx.xxx.xxx), 30 hops max, 46 byte packets
 1  169.254.0.1 (169.254.0.1)  0.008 ms  0.008 ms  0.005 ms
 2  *  *  *
 3  *  *  *
 4  *

我用来自动创建带有实例的vnet的示例。

az container create --resource-group rg-dev-aci --image alpine:latest --vnet vnet-dev-aci-east2  --subnet subnet-aci --subscription [my subscription id] --name test-alpine-networking-autovnet --command-line "tail -f /dev/null" --location "East US 2" --vnet-address-prefix 10.201.0.0/16 --subnet-address-prefix 10.201.94.0/24

似乎ACI(在VNET上)网络配置发生了某些变化,或者ACI发生了其他变化。我知道这是ACI的预览功能,但我认为不会阻止在VNET中运行的容器连接到Internet地址。

任何人对于我们可能做错了什么或我们可以做些什么来改变事情(例如默认路由的网关)都有任何想法。还有其他人看到同样的问题吗?

0 个答案:

没有答案