《智能路由器开发指南》——2.5 VirtualBox虚拟机网络设置

2.5 VirtualBox虚拟机网络设置

VirtualBox提供了7种网络接入模式,最常用的网络模式有以下4种。

1.网络地址转换(Network Address Translation,NAT)模式

如果你想使用虚拟机浏览网站、下载文件和查看邮件,这个模式最适合。NAT模式是实现虚拟机上网的最简单的方式。

2.桥接模式

VirtualBox连接你的真实网卡并和真实网卡直接交换数据,这是高级网络需求,例如在虚拟机中直接对外提供服务。相当于一个网卡有两个MAC地址。

3.内部网络模式

这个模式通常用于创建不同的软件虚拟网络,这些网络可以为不同的虚拟机所使用。但这些网络不能被宿主机或外部网络所应用。

4.仅主机网络模式(Host-Only)

这个模式应用于创建包含主机和一组虚拟机之间的网络,不需要主机的物理网卡,而是创建一个虚拟网卡以提供虚拟机和宿主机之间的网络互联。

2.5.1 网络地址转换模式

如果你想使用虚拟机浏览网站、下载文件和查看邮件,这个模式最适合。NAT模式是实现虚拟机上网的最简单的方式,不需要经过特别配置。虚拟机不占用局域网的IP地址,仅分配到连接宿主机的内部地址,如果需要上网就要经过地址转换到宿主机再去访问网络。你可以这样理解:虚拟机就相当于是家庭网络内部的一台计算机,主机就是家庭网络外部的计算机,VirtualBox就是运行中的路由器,虚拟机访问网络的所有数据都通过路由器,家庭网络内的计算机不真实存在于网络中,宿主机与网络中的任何机器都不能查看和访问到虚拟机。这种分割也最大程度地保证了虚拟机的安全。

虚拟机默认可以通过网卡访问到宿主机和网络。网络地址转换模式的最大劣势在于,虚拟机在外部网络不可访问,除非你设置端口转发规则。宿主机无法通过网络访问到虚拟机,是因为虚拟机的IP地址是私有地址,宿主机不会路由到虚拟机中。通过设置端口转发规则,宿主机就可以访问到虚拟机中的服务,例如,宿主机需要访问虚拟机中的HTTP服务,设置为80端口转发,如图2-7所示,就可以将访问宿主机127.0.0.1的请求转发到虚拟机中的80端口上。

实际上虚拟机分配到的IP地址通常为10.0.2.15,网关地址为10.0.2.2。虚拟机将设置一个默认路由指向下一跳地址为网关地址。NAT方案的特点是,默认情况下,虚拟机即获取到IP地址,可以通过这个IP地址访问宿主机和网络。宿主机经过设置之后也可以访问虚拟机上的服务。

NAT使用受到一些限制,主要有以下3个限制。

(1)ICMP协议限制。一些经常使用的网络调试工具(如ping和traceroute等)使用ICMP发送和接收消息。ICMP支持在VirtualBox已经增加,但其他工具可能不支持。

(2)接收UDP广播不可用。虚拟机为了节省资源不接收广播。

(3)协议例如GRE不支持。TCP及UDP以外的协议不支持。这意味着一些VPN产品(例如微软的PPTP)不能使用。仅使用TCP及UDP的VPN产品可以使用。这个限制不影响标准网络的使用。

2.5.2 桥接网络模式

桥接网络就相当于两个网卡组织为两个交换机接口,虚拟机和宿主机同时接在一个交换机的两个网口上。它就是通过主机网卡,架设了一条桥,直接连入到网络中。因此,它使得虚拟机能被分配到一个网络中独立的IP地址,所有网络功能完全和在网络中的真实机器一样。宿主机通过网卡发送数据给虚拟机,接收数据也通过这个网卡。这意味着你可以设置虚拟机和网络之间的路由或桥接。

通过图形用户接口“设置→网络”,设置“启动网络连接”,从“连接方式”下拉框中选择“桥接网卡”,然后选择自己系统的网卡即可。注意不要选择无线网卡,因为大多数无线网卡无法设置为混杂模式。

该模式存在以下缺点:需要接入网络并分到网络中的IP地址才能相互访问;如果网络中对IP及MAC地址接入有限制,则无法分配到IP地址,不能工作。

2.5.3 内部网络模式

内部网络模式在和外部通信方面和桥接网络模式相似,不过这个外部仅限于同一个主机上连接同一个内部网络的其他虚拟机。虚拟机与宿主机和外网完全断开,只实现虚拟机与虚拟机之间的网络连接模式。

在技术上内部网络模式所能完成的工作,桥接网络也可以完成,但内部网络有安全优势。在桥接网络模式中,所有流量均通过宿主机的物理接口,通过包探测器可以记录所有的网络流量。因此如果你想让自己的数据保密,就不能使用桥接模式。

内部网络在设置时会自动创建,没有也不需要中心配置。每一个内部网络根据名称来区分。一旦有一个以上的活动虚拟网卡具有相同的内部网络ID,VirtualBox支持驱动程序会自动将它们接到同一个网络交换机上。VirtualBox支持驱动程序实现了一个完整的以太网交换机,包含支持广播/组播帧和混杂模式等。通过以下方式进行设置:通过图形用户接口“设置→网络”设置“启动网络连接”,从“连接方式”下拉框中选择“内部网络”。

2.5.4 仅主机网络模式

仅主机(Host-Only)网络模式被认为是桥接网络和内部网络模式的混合体:与桥接网络相似,虚拟机和宿主机可以互相通信,宿主机和它们通过一个物理以太网交换机连接。同样,作为内部网络,不需要存在一个物理网卡;虚拟机无法跟外面世界通信,因为它们没有连接到一个物理网络接口上。

使用这个模式,VirtualBox将在宿主机上创建一个新的软件接口。就像一个本地回环接口一样,VirtualBox在主机中模拟出一张专供虚拟机使用的网桥,所有虚拟机都是连接到该网桥上的。当实体机运行多个虚拟应用程序时,例如一个虚拟机运行Web服务,另外一个运行数据库,两个虚拟机就可以通过仅主机适配器网络相互进行通信,Web服务器再通过网桥对外提供服务,数据库服务器不能被外部访问,数据不会泄露到外部。通过以下方式进行设置:通过图形用户接口“设置→网络”设置“启动网络连接”,从“连接方式”下拉框中选择“仅主机Host-only适配器”。

虚拟机默认分到的IP为192.168.56.101,主机的IP地址为192.168.56.1,两者可以通过IP相互访问。其他虚拟机默认都分到192.168.56.X的IP地址,虚拟机之间通过IP可以相互访问。和主机本身的网卡是否启用没有关系。

2.5.5 网络模式比较

每一种网络模式均有自己的使用场景,对VirtualBox的4种网络设置的比较如表2-6所示。

2.5.6 组建路由器实验环境

如图2-8所示,将虚拟机1当作智能路由器,安装OpenWrt软件,并创建两个网卡,NAT网卡用于连接互联网,内部网络用于连接家庭网个人计算机。虚拟机2当作家庭PC使用,自动从OpenWrt网关处分配IP地址。这样我们就可以模拟常见的路由器场景,例如上网、防火墙和DNS代理等功能,任何家庭网的数据流量均通过路由器来转发到外部网络。

时间: 2024-10-28 21:12:55

《智能路由器开发指南》——2.5 VirtualBox虚拟机网络设置的相关文章

《智能路由器开发指南》——导读

前 言 OpenWrt成功的秘密 可以实现路由器功能的开源软件很多,为什么只有OpenWrt成功了?OpenWrt软件成功的关键在于3个方面:领导者.基础设施以及实现软件的技术.通常领导者是最重要的,因为领导者决定着社区的规则和技术方向,但是每个人都是独特的而且是无法复制的,因此通常无法借鉴.基础设施和实现软件的技术则是可以借鉴的. OpenWrt社区采用六大基础设施工具支撑整个社区的运转,这六大基础设施工具分别是代码管理工具Git.邮件列表.自动构建工具buildbot.文档管理工具WiKi.

《智能路由器开发指南》——第2章 开发环境及编译分析 2.1 安装编译环境

第2章 开发环境及编译分析 如果你想从事智能路由器OpenWrt开发,首先必须掌握如何编译OpenWrt.本章将从搭建环境,到编译代码,再到安装部署运行以及VirtualBox虚拟网络环境的搭建,一步一步地教你如何进入到OpenWrt大门. OpenWrt是一个针对嵌入式设备的Linux发行版.OpenWrt提供了非常方便的开发环境,使用流行的Linux操作系统Ubuntu即可搭建好编译环境.OpenWrt有非常多的平台适应性,可以运行在ARM/MIPS/X86平台上,因此我们的研发网络部署也可

《智能路由器开发指南》——第1章 智能路由器概述 1.1 OpenWrt简介

第1章 智能路由器概述 近年来,智能路由器领域越来越火,但这方面的开发资料却很少,并且不成体系.因此,本书针对智能路由器领域的开发进行了详细介绍,也可以用于指导其他智能家庭设备的开发. 接入网络的家庭用户终端越来越多,路由器控制越来越复杂,因此需要一个智能网关来管理家庭的设备.另外,这个智能网关直接连在互联网上,需要隔离家庭网和互联网的连接,因此需要带有防火墙功能.智能路由器就像智能手机一样,其定义并非其字面含义所表现出的那样(可以智能地选择路由),而是其带有可扩展功能,用户自己可以安装软件进行

《智能路由器开发指南》——2.1 安装编译环境

2.1 安装编译环境 2.1.1 Ubuntu安装 首先安装Linux操作系统Ubuntu 14.4.个人机器多为Windows 操作系统,为了方便使用及节省硬件资源,我们采用虚拟机VirtualBox来安装编译软件环境.如果是实体机安装Linux操作系统,则可略过安装虚拟机这一步.硬件设备只需要一台连接互联网的计算机.软件从互联网下载.建议使用VirtualBox虚拟机来搭建编译环境及开发调试. 下载和安装VirtualBox和ubuntu 14.04.3.下载地址分别为: http://do

《智能路由器开发指南》——1.3 开源嵌入式操作系统比较

1.3 开源嵌入式操作系统比较 开源嵌入式操作系统,其字面意思有3点,即开放源代码.嵌入式和操作系统,但实质上其流行的关键在于其可扩展性. 开源是指开放源代码,是指软件在开放源代码许可证下发布软件,保障软件用户自由查看软件源代码的权利.这同时也保障了用于修改.复制和再分发的权利,但仍需遵守开源许可协议中的一些约束.开放源代码不仅仅指开放源代码的软件,也是一种软件开发模式. "许可证"是指授权条款,是指使用.修改.复制和再分发的条款和条件的法律文件.最常见的开源许可证有几种:GNU GP

《智能路由器开发指南》——1.2 整体功能组件

1.2 整体功能组件 1.2.1 整体架构 路由器的典型架构划分为管理平面.控制平面和数据转发平面,如图1-1所示. 管理平面是提供网络管理人员使用UCI.Web.SNMP和TR069等方式来管理路由器,以及执行这些管理功能所需的配置命令等,管理平面提供了控制平面正常运行所需的配置参数. 控制平面用于控制和管理所有网络协议的运行,例如ARP.DHCP.DNS及组播协议的管理和控制. 转发平面用于处理和转发不同网络接口上各种类型的数据,例如进行网络地址转换.路由.ACL等.典型路由器在数据转发平面

《智能路由器开发指南》——2.3 使用VirtualBox部署

2.3 使用VirtualBox部署 首先将编译完成的安装文件openwrt-x86-generic-combined-ext4.img.gz解压缩,然后将解压后的img文件复制出来并转换为VirtualBox支持的vdi文件. zhang@zhang-laptop:~/cc/bin/x86$ gunzip openwrt-x86-generic-combined- ext4.img.gz zhang@zhang-laptop:~/cc/bin/x86$ cp openwrt-x86-gener

《智能路由器开发指南》——1.1 OpenWrt简介

1.1 OpenWrt简介 OpenWrt是一个嵌入式设备的Linux发行版,以GPL许可协议发行. OpenWrt项目始于2004年1月,其第一个版本采用了LinkSys的源码.在LinkSys的代码收费后,改为采用正式发布的Linux内核来集成,并将OpenWrt完全模块化,不断推出补丁和驱动.OpenWrt的主要特点在于其高扩展性,并且文件系统可写,开发者无需在每一次修改后完全重新编译,只要编译自己的软件包即可,这样就加快了开发的进度.另外OpenWrt提供了SDK,每个运行软件均能够以S

《智能路由器开发指南》——2.2 编译脚本分析

2.2 编译脚本分析 2.2.1 顶层目录概述 OpenWrt代码有8个固定的顶层目录及6个编译时创建的临时目录,顶层的固定目录含义如表2-3所示. 目录config是编译配置文件目录,是OpenWrt 15.05的新增目录,是将一些编译选项配置文件分类放在这里,包含全局编译设置.开发人员编译设置.目标文件格式设置和内核编译设置等4部分. 目录include和scripts包含各种脚本和Makefile.目录target是指目标嵌入式设备,针对不同的平台有不同的特性代码.针对这些平台特性,"ta