理解 virbr0 - 每天5分钟玩转 OpenStack(11)

网友投稿 1127 2023-03-14

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

理解 virbr0 - 每天5分钟玩转 OpenStack(11)

virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。

virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。

下面我们演示如何使用 virbr0。

在 virt-manager 打开 VM1 的配置界面,网卡 Source device 选择 “default”,将 VM1 的网卡挂在

启动 VM1,brctl show 可以查看到 vnet0 已经挂在了 virbr0 上。

# brctl showbridge name     bridge id               STP enabled     interfacesbr0             8000.000c298decbe       no                    eth0virbr0          8000.fe540075dd1a       yes                   vnet0

# brctl showbridge name bridge id STP enabled interfacesbr0 8000.000c298decbe no eth0virbr0 8000.fe540075dd1a yes vnet0

用 virsh 命令确认 vnet 就是 VM1 的虚拟网卡。

# virsh domiflist VM1Interface  Type       Source     Model       MAC-------------------------------------------------------vnet0      network    default    rtl8139     52:54:00:75:dd:1a

# virsh domiflist VM1Interface Type Source Model MAC-------------------------------------------------------vnet0 network default rtl8139 52:54:00:75:dd:1a

virbr0 使用 dnsmasq 提供 DHCP 服务,可以在宿主机中查看该进程信息

# ps -elf|grep dnsmasq5 S libvirt+  2422     1  0  80   0 -  7054 poll_s 11:26 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib

# ps -elf|grep dnsmasq5 S libvirt+ 2422 1 0 80 0 - 7054 poll_s 11:26 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib

在 /var/lib/libvirt/dnsmasq/ 目录下有一个 default.leases 文件,当 VM1 成功获得 DHCP 的 IP 后,

# cat /var/lib/libvirt/dnsmasq/default.leases1441525677 52:54:00:75:dd:1a 192.168.122.6 ubuntu *

# cat /var/lib/libvirt/dnsmasq/default.leases1441525677 52:54:00:75:dd:1a 192.168.122.6 ubuntu *

上面显示 192.168.122.6 已经分配给 MAC 地址为 52:54:00:75:dd:1a 的网卡,这正是 vnet0 的 MAC

Ping一下外网。

没有问题,可以访问外网,说明 NAT 起作用了。

需要说明的是,使用 NAT 的虚机 VM1 可以访问外网,但外网无法直接访问 VM1。

因为 VM1 发出的网络包源地址并不是 192.168.122.6,而是被 NAT 替换为宿主机的 IP 地址了。

这个与使用 br0 不一样,在 br0 的情况下,VM1 通过自己的 IP 直接与外网通信,不会经过 NAT 地址转换。

下节我们讨论 vlan 在 linux bridge 中的实现

上一篇:14 个 grep 命令的例子
下一篇:智能运维包括哪些内容(智能运维包括哪些内容和职责)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~