Virtual machine 如何在多机环境下用Vagrant仿真Internet

Virtual machine 如何在多机环境下用Vagrant仿真Internet,virtual-machine,vagrant,simulation,Virtual Machine,Vagrant,Simulation,我正在创建一个vagrant多机配置文件。这里有一块: Vagrant.configure(2) do |config| config.vm.box = "chef/centos-7.0" config.vm.define "radius" do |radius| radius.vm.hostname = "radius-server" end config.vm.define "mysql" do |mysql| mysql.vm.hostname = "

我正在创建一个vagrant多机配置文件。这里有一块:

Vagrant.configure(2) do |config|

  config.vm.box = "chef/centos-7.0"

  config.vm.define "radius" do |radius|
    radius.vm.hostname = "radius-server"
  end

  config.vm.define "mysql" do |mysql|
    mysql.vm.hostname = "mysql-server"
  end
end
如何模拟上述两个虚拟机位于由Internet分隔的不同网络中的情况? 我可以创建两个不同的专用网络,它们具有两个不同的专用ip地址,例如第一个虚拟机的192.168.1.3和第二个虚拟机的192.168.2.3。在这种情况下,机器将位于不同的网络中。但是他们可以互相交谈吗?

是的,他们可以交谈

您需要一个路由器(第三个节点)连接到这两个网络

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.provider "libvirt"

  config.vm.define "rhel7_minion" do |rhel7_minion|
    rhel7_minion.vm.box = "uvsmtid/centos-7.1-1503-gnome"
    rhel7_minion.vm.synced_folder '.', '/vagrant', disabled: true
    rhel7_minion.vm.network 'private_network',
        :libvirt__network_name => 'primary_vagrant_private_net',
        ip: '192.168.1.2',
        :libvirt__netmask => '255.255.255.0',
        :libvirt__forward_mode => 'route',
        :libvirt__dhcp_enabled => true
  end

  config.vm.define "rhel5_minion" do |rhel5_minion|
    rhel5_minion.vm.box = "uvsmtid/centos-5.5-minimal"
    rhel5_minion.vm.synced_folder '.', '/vagrant', disabled: true
    rhel5_minion.vm.network 'private_network',
        :libvirt__network_name => 'secondary_vagrant_private_net',
        ip: '192.168.2.3',
        :libvirt__netmask => '255.255.255.0',
        :libvirt__forward_mode => 'route',
        :libvirt__dhcp_enabled => true
  end

end
路由器充当(小型)互联网:

A=[192.168.1.3] <=> [*.*.1.1]=router=[*.*.2.1] <=> [192.168.2.3]=B
注意:从技术上讲,因为网络使用私有IP地址,所以它们不能在Internet上路由(好吧,真正的Internet路由器会丢弃带有这些私有IP地址的数据包,而家庭路由器会NAT它们)

工作
Vagrant
文件 使用
libvirt
提供程序测试示例。 请注意,虚拟机连接到两个不同的网络

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.provider "libvirt"

  config.vm.define "rhel7_minion" do |rhel7_minion|
    rhel7_minion.vm.box = "uvsmtid/centos-7.1-1503-gnome"
    rhel7_minion.vm.synced_folder '.', '/vagrant', disabled: true
    rhel7_minion.vm.network 'private_network',
        :libvirt__network_name => 'primary_vagrant_private_net',
        ip: '192.168.1.2',
        :libvirt__netmask => '255.255.255.0',
        :libvirt__forward_mode => 'route',
        :libvirt__dhcp_enabled => true
  end

  config.vm.define "rhel5_minion" do |rhel5_minion|
    rhel5_minion.vm.box = "uvsmtid/centos-5.5-minimal"
    rhel5_minion.vm.synced_folder '.', '/vagrant', disabled: true
    rhel5_minion.vm.network 'private_network',
        :libvirt__network_name => 'secondary_vagrant_private_net',
        ip: '192.168.2.3',
        :libvirt__netmask => '255.255.255.0',
        :libvirt__forward_mode => 'route',
        :libvirt__dhcp_enabled => true
  end

end