我们可以看到169.254.169.254的下一跳为10.0.0.66。10.0.0.66这个IP是什么呢?我们通过Neutron的port信息查看下:
- # neutron port-list -c network_id -c device_owner -c mac_address -c fixed_ips -f csv | grep 10.0.0.66
- "2c4b658c-f2a0-4a17-9ad2-c07e45e13a8a","network:dhcp","fa:16:3e:b3:e8:38","[{u'subnet_id': u'6f046aae-2158-4882-a818-c56d81bc8074', u'ip_address': u'10.0.0.66'}]"
可看到10.0.0.66正好是网络2c4b658c-f2a0-4a17-9ad2-c07e45e13a8a的dhcp地址,可以进一步验证:
- # ip netns exec qdhcp-2c4b658c-f2a0-4a17-9ad2-c07e45e13a8a ifconfig
- tap1332271e-0d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
- inet 10.0.0.66 netmask 255.255.255.192 broadcast 10.0.0.127
- inet6 fe80::f816:3eff:feb3:e838 prefixlen 64 scopeid 0x20<link>
- ether fa:16:3e:b3:e8:38 txqueuelen 1000 (Ethernet)
- RX packets 662 bytes 58001 (56.6 KiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 410 bytes 55652 (54.3 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
由此,我们可以得出结论,OpenStack虚拟机访问169.254.169.254会路由到虚拟机所在网络的DHCP地址,DHCP地址与虚拟机IP肯定是可以互通的,从而解决了虚拟机内部到宿主机外部的通信问题。那DHCP又如何转发到Nova Metadata服务呢,下一节将介绍如何解决这个问题。
3.2 Metadata请求第一次转发
前面介绍了虚拟机访问Metadata服务地址169.254.169.254,然后转发到DHCP地址。我们知道Neutron的DHCP port被放到了namespace中,我们不妨进入到虚拟机所在网络的namespace:
- ip netns exec qdhcp-2c4b658c-f2a0-4a17-9ad2-c07e45e13a8a bash
首先查看该namespace的路由:
- # route -n
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 0.0.0.0 10.0.0.126 0.0.0.0 UG 0 0 0 tap1332271e-0d
- 10.0.0.64 0.0.0.0 255.255.255.192 U 0 0 0 tap1332271e-0d
- 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tap1332271e-0d
从路由表中看出169.254.0.0/16是从网卡tap1332271e-0d发出去的,我们查看网卡地址信息:
- # ip a
- 18: tap1332271e-0d: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000
- link/ether fa:16:3e:b3:e8:38 brd ff:ff:ff:ff:ff:ff
- inet 10.0.0.66/26 brd 10.0.0.127 scope global tap1332271e-0d
- valid_lft forever preferred_lft forever
- inet 169.254.169.254/16 brd 169.254.255.255 scope global tap1332271e-0d
- valid_lft forever preferred_lft forever
- inet6 fe80::f816:3eff:feb3:e838/64 scope link
- valid_lft forever preferred_lft forever
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|