因为现在路由器就在计算节点上,所以我们只需要在 Namespace 内完成路由就行了,这和以前在网络节点上是一样的。但是会出现多个计算节点上会存在同一子网的网关,怎么办?解决方案是为每一个计算节点生成唯一的DVR MAC 地址,在对外发出数据包之前,将原有 MAC 替换成 DVR MAC,保证双向通信的正常进行。
OK,我们解决了问题,但也引入了新的问题:
因为现在 ARP 应答无法跨计算节点,像 Allowed address pair 这样的扩展也无法工作了(回应非 Port 自己本身绑定的 IP 的 ARP 请求)。