理解 virbr0 - 每天5分钟玩转 OpenStack(11)
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。
virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。
下面我们演示如何使用 virbr0。
在 virt-manager 打开 VM1 的配置界面,网卡 Source device 选择 “default”,将 VM1 的网卡挂在 virbr0 上。
启动 VM1,brctl show 可以查看到 vnet0 已经挂在了 virbr0 上。
# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 virbr0 8000.fe540075dd1a yes vnet0
用 virsh 命令确认 vnet 就是 VM1 的虚拟网卡。
# virsh domiflist VM1 Interface Type Source Model MAC ------------------------------------------------------- vnet0 network default rtl8139 52:54:00:75:dd:1a
virbr0 使用 dnsmasq 提供 DHCP 服务,可以在宿主机中查看该进程信息
# ps -elf|grep dnsmasq
5 S libvirt+ 2422 1 0 80 0 - 7054 poll_s 11:26 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf
在 /var/lib/libvirt/dnsmasq/ 目录下有一个 default.leases 文件,当 VM1 成功获得 DHCP 的 IP 后,可以在该文件中查看到相应的信息
# cat /var/lib/libvirt/dnsmasq/default.leases 1441525677 52:54:00:75:dd:1a 192.168.122.6 ubuntu *
上面显示 192.168.122.6 已经分配给 MAC 地址为 52:54:00:75:dd:1a 的网卡,这正是 vnet0 的 MAC。之后就可以使用该 IP 访问 VM1 了。
# ssh 192.168.122.6 root@192.168.122.6's password: Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic x86_64) Last login: Sun Sep 6 01:30:23 2015 root@VM1:~# ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:75:dd:1a inet addr:192.168.122.6 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe75:dd1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:61 errors:0 dropped:0 overruns:0 frame:0 TX packets:66 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7453 (7.4 KB) TX bytes:8649 (8.6 KB)
Ping一下外网。
root@VM1:~# ping www.baidu.com PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data. 64 bytes from 180.97.33.107: icmp_seq=1 ttl=52 time=36.9 ms 64 bytes from 180.97.33.107: icmp_seq=2 ttl=52 time=119 ms 64 bytes from 180.97.33.107: icmp_seq=3 ttl=52 time=88.5 ms 64 bytes from 180.97.33.107: icmp_seq=4 ttl=52 time=38.0 ms 64 bytes from 180.97.33.107: icmp_seq=5 ttl=52 time=122 ms
没有问题,可以访问外网,说明 NAT 起作用了。
需要说明的是,使用 NAT 的虚机 VM1 可以访问外网,但外网无法直接访问 VM1。 因为 VM1 发出的网络包源地址并不是 192.168.122.6,而是被 NAT 替换为宿主机的 IP 地址了。
这个与使用 br0 不一样,在 br0 的情况下,VM1 通过自己的 IP 直接与外网通信,不会经过 NAT 地址转换。
下节我们讨论 vlan 在 linux bridge 中的实现
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
关于Docker你不知道的事——什么是Docker
(提示:对Docker感兴趣的朋友可以加我微信:ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里。) 之前谈虚拟化历史就说过,Docker实际是源自于dotCloud的一个项目,在2013年开源后就飞速发展。我们今天要谈的是,什么是Docker? Docker-engine 通常我们提Docker的时候,都指的是Docker-engine,docker-engine就是运行在主机上的一个守护进程,类似于于Hyper-V的管理程序。Docker-engine是C/S的架构,daemon就是它的server,我们通常使用的docker命令有两层功能,一层是作为daemon运行,一层是作为client运行。daemon可以监听在某一个socket端口上,也可以监听到unix本地socket之上,而client也可以操作本机的daemon和远程的daemon。当操作远程daemon的时候,需要在client后面跟IP、端口以及TLS证书。 容器是什么 谈到容器,很多人会把它当成是一个主机。这其实是错误的。容器在主机上就是一个进程,但是它有不同于普通的进程。普通的进...
- 下一篇
阿里云容器服务体验: 部署 ShellPays 条码支付整合服务平台 -- (一)系统概要与环境准备
此平台系统已在多种计算环境上进行部署,并且投入生产。本文所述方案是为了参与阿里云容器服务公测。如要投入实际使用,需要跟据实际计算环境调整相关参数,并且需要与支付服务机构签订收单协议,比如:支付宝钱包,微信支付等。还会产生阿里云的资源租用费。 系统概要 此平台系统在于帮助用户,快速、低成本、方便的统一接入多种条码支付收单业务。平台系统采用了多种技术手段的整合,比如:动静分离、OSGi、容器服务等。注:系统架构超过了当前所承载业务的需求 环境准备 1. 注册阿里云账号,并创建 AccessKey 创建 AccessKey 请参考如何获取Access ID和Access Key 2. 安装Docker ToolBox 请参考Docker Toolbox 3. 安装阿里云Docker Machine ECS驱动 请参考阿里云Docker Machine ECS驱动文档 4. 检查客户端软件安装情况 Docker Machine $ docker-machine -v docker-machine version 0.6.0, build e27fb87 Docker $ docker -v D...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池