Enunciado:
Crea un escenario usando Vagrant que defina las siguientes máquinas:
  • Servidor: Tiene dos tarjetas de red: una pública y una privada que se conectan a la red local.
  • nodo_lan1: Un cliente conectado a la red local.

Instala un servidor dhcp en el ordenador “servidor” que de servicio a los ordenadores de red local, teniendo en cuenta que el tiempo de concesión sea 12 horas y que la red local tiene el direccionamiento 192.168.100.0/24.

Muestra al profesor el servidor funcionando como router y NAT, de esta forma los clientes tendrán internet.


Solución:
Instalamos y configuramos vagrant/ssh:
apt-get install openssh-client
apt-get install vagrant
mkdir Vagrant
cd ./Vagrant
mkdir escenario-vagrant
cd ./escenario-vagrant
vagrant init
vagrant box add debian/jessie64
nano Vagrantfile

Añadimos el siguiente contenido:


-*- mode: ruby -*-
vi: set ft=ruby :


Vagrant.configure("2") do |config|

config.vm.define :nodo1 do |nodo1|
nodo1.vm.network "private_network", ip: "192.168.100.1", virtualbox_intnet: true, virtualbox__intnet: "redinterna"
nodo1.vm.box = "debian/jessie64"
nodo1.vm.hostname = "Servidor"
nodo1.vm.network :public_network,:bridge=>"eth0"
end
config.vm.define :nodo2 do |nodo2|
config.vm.network "private_network", :type => 'dhcp', virtualbox_intnet: true, virtualbox__intnet: "redinterna"
nodo2.vm.box = "debian/jessie64"
nodo2.vm.hostname = "Cliente1"
end
end

Conectarse por SSH a las máquinas virtuales:

vagrant ssh nodo1
vagrant ssh nodo2


Vamos a instalar el servidor DHCP en nuestra máquina servidor:


apt-get install isc-dhcp-server
nano /etc/default/isc-dhcp-server


Editamos el siguiente parámetro del fichero:


INTERFACES=«eth1» #En nuestro caso la interfaz eth1

Posteriormente editamos el fichero «
nano /etc/dhcp/dhcpd.conf


Añadimos el siguiente contenido:

default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

subnet 192.168.100.0 netmask 255.255.255.0 { #Red
range 192.168.100.20 192.168.100.100; # Rango
option domain-name-servers 192.168.102.2, 8.8.8.8; #DNS primario , DNS secundario
option domain-name "dhcpale.com"; #Nombre de dominio
option routers 192.168.100.1; #Puerta de enlace
option broadcast-address 192.168.100.255; #Broadcast
}

Reiniciamos el servicio isc-dhcp-server:

service isc-dhcp-server restart


Nos dirigimos a la máquina «cliente»:

ip a

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:93:e9:07 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe93:e907/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b9:2e:f8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.20/24 brd 192.168.100.255 scope global eth1
       valid_lft forever preferred_lft forever


Configuramos el servidor para que funcione como router:

Descomentamos la línea «net.ipv4.ip_forward=1» del fichero «/etc/sysctl.conf».


Establecemos las rutas y configuramos el NAT en el servidor:

reboot
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth2 -j MASQUERADE
ip r del default via 10.0.2.2
ip r add default via 172.22.0.1
ping 8.8.8.8


Establecemos las rutas en el cliente:

ip r del default via 10.0.2.2
ip r add default via 192.168.100.1
ping 8.8.8.8