8.2. 将虚拟机连接到默认 pod 网络
				您可以通过将其网络接口配置为使用 masquerade 绑定模式,将虚拟机连接到默认的内部 pod 网络。
			
在实时迁移过程中,通过网络接口到默认 pod 网络的流量会中断。
8.2.1. 从命令行配置伪装模式
您可以使用伪装模式将虚拟机的外发流量隐藏在 pod IP 地址后。伪装模式使用网络地址转换 (NAT) 来通过 Linux 网桥将虚拟机连接至 pod 网络后端。
启用伪装模式,并通过编辑虚拟机配置文件让流量进入虚拟机。
先决条件
- 虚拟机必须配置为使用 DHCP 来获取 IPv4 地址。
流程
- 编辑虚拟机配置文件的 - interfaces规格:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 端口 49152 和 49153 保留供 libvirt 平台使用,这些端口的所有其他传入流量将被丢弃。 
- 创建虚拟机: - oc create -f <vm-name>.yaml - $ oc create -f <vm-name>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
8.2.2. 使用双栈(IPv4 和 IPv6)配置伪装模式
您可以使用 cloud-init 将新虚拟机配置为在默认 pod 网络上同时使用 IPv6 和 IPv4。
					虚拟机实例配置中的 Network.pod.vmIPv6NetworkCIDR 字段决定虚拟机的静态 IPv6 地址和网关 IP 地址。virt-launcher Pod 使用它们将 IPv6 流量路由到虚拟机,而不在外部使用。Network.pod.vmIPv6NetworkCIDR 字段在无类别域间路由(CIDR)标记中指定一个 IPv6 地址块。默认值为 fd10:0:2::2/120。您可以根据网络要求编辑这个值。
				
当虚拟机运行时,虚拟机的传入和传出流量将路由到 IPv4 地址和 virt-launcher Pod 的唯一 IPv6 地址。virt-launcher pod 随后将 IPv4 流量路由到虚拟机的 DHCP 地址,并将 IPv6 流量路由到虚拟机的静态设置 IPv6 地址。
先决条件
- OpenShift Container Platform 集群必须使用为双栈配置的 OVN-Kubernetes Container Network Interface (CNI) 网络插件。
流程
- 在新的虚拟机配置中,包含具有 - masquerade的接口,并使用 cloud-init 配置 IPv6 地址和默认网关。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在命名空间中创建虚拟机: - oc create -f example-vm-ipv6.yaml - $ oc create -f example-vm-ipv6.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 要验证 IPv6 是否已配置,启动虚拟机并查看虚拟机实例的接口状态,以确保它具有 IPv6 地址:
oc get vmi <vmi-name> -o jsonpath="{.status.interfaces[*].ipAddresses}"
$ oc get vmi <vmi-name> -o jsonpath="{.status.interfaces[*].ipAddresses}"8.2.3. 关于巨型帧支持
使用 OVN-Kubernetes CNI 插件时,您可以在默认 pod 网络上连接的两个虚拟机 (VM) 之间发送未分片的巨型帧数据包。巨型帧有一个大于 1500 字节的最大传输单元 (MTU) 值。
虚拟机自动获得集群网络的 MTU 值,由集群管理员设置,如下所示:
- 
							libvirt:如果客户机操作系统具有 VirtIO 驱动程序的最新版本,该驱动程序可通过模拟设备中的 Peripheral Component Interconnect (PCI) 配置寄存器来解释传入的数据。
- DHCP :如果客户机 DHCP 客户端可以从 DHCP 服务器响应中读取 MTU 值。
						对于没有 VirtIO 驱动程序的 Windows 虚拟机,您必须使用 netsh 或类似的工具手动设置 MTU。这是因为 Windows DHCP 客户端没有读取 MTU 值。