DHCP

Note

Nesta demo você irá aprender como configurar um servidor DHCP:

Requisitos:

Antes de tudo você precisa identificar a topologia de rede que será gerada através do código abaixo:

#!/usr/bin/python

"""@author: Ramon Fontes
@email: ramon.fontes@imd.ufrn.br"""

from mininet.log import setLogLevel, info
from mininet.cli import CLI
from mininet.net import Mininet


def topology():

    net = Mininet()

    info("*** Creating nodes\n")
    h1 = net.addHost('h1', mac='00:00:00:00:00:02', ip='0/0')
    h2 = net.addHost('h2', ip='192.168.11.1/24', inNamespace=False)
    s1 = net.addSwitch('s1', failMode='standalone')

    info("*** Creating links\n")
    net.addLink(s1, h1)
    net.addLink(s1, h2)

    info("*** Starting network\n")
    net.start()

    h1.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")

    info("*** Running CLI\n")
    CLI(net)

    info("*** Stopping network\n")
    net.stop()

if __name__ == '__main__':
    setLogLevel('info')
    topology()

Uma vez compreendida a topologia de rede, execute um código com conteúdo exatamente igual ao apresentado acima. Considerando que você tenha salvo o conteúdo acima em um arquivo com nome dhcp.py, execute conforme abaixo:

$ sudo python dhcp.py

Agora, em um novo terminal, edite o arquivo /etc/dhcp/dhcpd.conf de forma que ele possua apenas o conteúdo abaixo:

option domain-name-servers 192.168.11.1;
subnet 192.168.11.0 netmask 255.255.255.0 {
    range 192.168.11.2 192.168.11.254;
    option routers 192.168.11.1;
    default-lease-time 6000;
    max-lease-time 72000;
    INTERFACES="h2-eth0";
}

Finalmente, abra um terminal via xterm para h2, que é o nosso servidor dhcp, e reinicie o serviço dhcp de forma que as configurações realizadas acima sejam aplicadas.

mininet> xterm h2
h2# sudo service isc-dhcp-server restart

Neste momento, o servidor dhcp h2 deve estar operacional. Portanto, caso h1 solicite um endereço IP, este conseguirá obter um através do servidor h2. A solicitação de endereço IP pode ser realizada através da ferramente dhclient, conforme abaixo:

mininet> h1 dhclient

Note

  • Experimente reiniciar o código da topologia do Mininet-WiFi utilizando o wireshark na porta s1-eth1 e, após isso, executar o dhclient mais uma vez a partir de h1. Você conseguirá observar as mensagens do protocolo DHCP.