Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time


This repo provides a Vagrantfile with provisioning that one can use to quickly get simple vm that routes from a private network using nat.

  |------ NAT Network -------|
                 | Dynamic ip
        | This Router VM |
           |   |   | Static ip ${node_ex_ip}, [DHCPd], [DNSd]
           |   |   |
           |   |   |
  |------ Internal Network3 -------| "private_network", type: "dhcp", virtualbox__intnet: "mylocalnet3"
               |   |
  |------ Internal Network2 -------| "private_network", type: "dhcp", virtualbox__intnet: "mylocalnet2"
  |------ Internal Network --------|
  Connect vms to this net, so they can talk to each
  other and share a dynamic link via nat. To do that, use "private_network", type: "dhcp", virtualbox__intnet: "mylocalnet"



Vagrant Reload Provisioner

As part of the provisioning, the vm is expected to be rebooted. In order to accomplish that, we use the vagrant's reload plugin. Install this by issuing the following command:

$ vagrant plugin install vagrant-reload

Configuration knobs

If you need to tweak the default values, these are the files that you will need to look at:

  • Vagrantfile

    • node_ex_ip: this is the static ip address assigned to the router interface in the internal network
    • this is the internal only network that your clients should use in order to reach the router's interface
  • puppet/hieradata/* : The json files in this directory contain the values used for dhcpd and dns services.

  • Standard Centos 6 distro of dhcp/bind/iptables: with a few online searches you can figure all of them out. :)