NAT
默认方式。虚拟机获取一个私有 IP(例如 192.168.122.0/24 网段的),并通过本地主机的 NAT 访问外网。
创建一个本地网桥 virbr0,包括两个端口:virbr0-nic 为网桥内部端口,vnet0 为虚拟机网关端口(192.168.122.1)。
brctl show
bridge name bridge id STP enabled interfaces virbr0 8000.52540082327e yes virbr0-nic vnet0
虚拟机启动后,配置 192.168.122.1(vnet0)为网关。所有网络操作均由本地主机系统负责。
DNS/DHCP 的实现
本地主机系统启动一个 dnsmasq 来负责管理。
# ps aux|grep dnsmasq nobody 2496 0.0 0.0 12892 572 ? S 2014 0:18 /usr/sbin/dnsmasq --strict-order --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --bind-interfaces --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmas /default.leases --dhcp-lease-max=253 --dhcp-no-override --dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile --addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts
NAT 的实现
主机系统负责进行 SNAT。
# iptables -nvL -t nat Chain PREROUTING (policy ACCEPT 76M packets, 3728M bytes) pkts bytes target prot opt in out sour