PRÁTICA DE DHCP - LINUX Este exercício prático pode ser desenvolvido utilizando o ambiente espec através do Vnc ou as imagens fornecidas no DVD. 1. APRESENTAÇÃO DO CENÁRIO 1 sudo /etc/init.d/conftap.sh sudo iptables -F sudo service sshd restart Crie a primeira máquina virtual para representar o gateway G1: linux32.redes G1 login: root Execute o seguinte procedimento na VM: ifconfig eth0 20.0.13.14 mkdir dhcp scp [email protected]:dhcp/* dhcp Lembre-se que se você estiver no servidor remoto, o login é o mesmo que você usou para conectar-se via SSH ou VNC. Se estiver usando a imagem do DVD, o login é rss e a senha é pucpos. Neste primeiro cenário, será necessário criar três máquinas virtuais, conforme indicado na figura. A VM G1 atua ao mesmo tempo como roteador e como servidor DHCP (o que é uma prática comum em muitos sistemas). 3. CONFIGURAÇÃO DO SERVIDOR DHCP 2. CRIAÇÃO DAS VMS PARA O CENÁRIO 1 Baixe o pacote com os arquivos necessários para realização dessa prática no seu diretório home: wget espec.ppgia.pucpr.br/jam_pacotes/dhcp.tar.gz tar -xzf dhcp.tar.gz Como nos exercícios anteriores é necessário tomar cuidado para não haver conflito com os endereços de outras VMs sendo executadas na espec. Para isso, supondo que seu código de estudante é (101) 11 12 13 14 –x , escolha os seguintes endereços: G: 20.0.13.14 H1: 20.1.13.14 H2: 20.2.13.14 Primeiro, abra um terminal na espec, e crie um diretório em sua área para armazenar as máquinas virtuais: mkdir praticadhcp cd praticadhcp Caso esteja utilizando a imagem do DVD, digite o comando abaixo (a senha é pucpos). A figura ilustra como será feita a distribuição de endereços para o cenário 1. Observe que as subredes 13.14.0.0/24 e 13.14.1.0/24 foram definidos em função do código de matricula usado como exemplo (101) 11.12.13.14-x. Você deve substituir o prefixo 13.14 pelo equivalente do seu código de matrícula. O seguinte procedimento deverá ser executado na VM G1. No diretório dhcp, criado quando você descompactou o arquivo dhcp.tar.gz você vai encontrar o arquivo dhcpd.conf. Edite este arquivo utilizando o vi, alterando os endereços de acordo com o seu código de matrícula. Após fazer essas alterações, copie o arquivo dhcpd.conf para o diretório /etc: cd /root/dhcp cp dhcpd.conf /etc/dhcp vconfig add eth0 2 Crie as VLANs e atribua os endereços IP para as interfaces do roteador. Execute o cliente dhclient e veja o IP obtido: vconfig add eth0 2 ifconfig eth0.2 13.14.0.1/24 vconfig add eth0 3 ifconfig eth0.3 13.14.1.1/24 sysctl -w net.ipv4.ip_forward=1 dhclient eth0.2 ifconfig Para liberar o endereço IP obtido, digite: dhclient eth0.2 -r Execute o servidor dhcpd com o seguinte comando: dhcpd Se você receber alguma mensagem de erro, será necessário corrigir o arquivo /etc/dhcpd.conf e reiniciar o servidor dhcpd. Você precisará reiniciar o servidor dchpd também se fizer alguma alteração no arquivo dhcpd.conf. service dhcpd restart A mensagem sobre eth0 não é um erro, e pode ser ignorada (ela simplesmente informar que não há sub-rede para interface eth0). 4. CONFIGURAÇÃO DOS HOSTS Não é necessário ter o cliente dhclient instalado em uma host a fim de pode usar o DHCP. Cada interface do host pode ser configurada automaticamente na inicialização do sistema operacional, se houver um script de inicialização ifcfg-ethX no diretório /etc/sysconfig/network-scripts. Para o host H2, vamos utilizar essa estratégia para obter o endereço. Caso ainda não tenha feito, crie a máquina virtual para representar o host H2: linux32.redes H2 Execute o seguinte procedimento na VM: login: root ifconfig eth0 20.2.13.14 Caso ainda não tenha feito, crie a máquina virtual para representar o host H1: Crie a interface de VLAN do host H2 linux32.redes H1 vconfig add eth0 3 Execute o seguinte procedimento na VM: Crie um arquivo de configuração para a interface eth0.3: login: root ifconfig eth0 20.1.13.14 cd /etc/sysconfig/network-scripts vi ifcfg-eth0.3 Crie a interface de VLAN do host H1: Edite o arquivo ifcfg-eth0.3 para que ele fique com o seguinte conteúdo: DEVICE=eth0.3 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet Crie e edite o arquivo ifcfg-eth0 da seguinte forma (pois não há dhcp para eth0): vi ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=20.2.13.14 NETMASK=255.0.0.0 ONBOOT=yes No cenário 2, será testado o conceito de agente relay, conforme ilustrado na figura. Crie a máquina virtual para representar o agente relay G2: linux32.redes G2 O próximo passo usualmente não é necessário em ambiente Linux não virtualizado. A imagem foi criada sem interface física real, então alguns arquivos de configuração de rede ficaram faltando na instalaçãose. Crie o arquivo /etc/sysconfig/network na máquina UML: Execute o seguinte procedimento na VM: login: root ifconfig eth0 20.3.13.14 vi /etc/sysconfig/network Crie a interface de VLAN do gateway G2 O arquivo precisa conter apenas a linha abaixo: vconfig add eth0 3 ifconfig eth0.3 13.14.1.2/24 vconfig add eth0 4 ifconfig eth0.4 13.14.2.1/24 sysctl -w net.ipv4.ip_forward=1 NETWORKING=yes Reinicialize o serviço de rede do computador e verifique os endereços IP: service network restart ifconfig Ative o agente relay para redirecionar as requisições DHCP para G1: dhcrelay 13.14.1.1 5. APRESENTAÇÃO DO CENÁRIO 2 Comandos para a VM G1: É preciso incluir uma rota em G1 para a subrede da VLAN 4 route add -net 13.14.2.0/24 gw 13.14.1.2 Comandos para a VM Host 2: Agora, é necessário remover o host 2 para VLAN 4 e obter o novo IP. vconfig rem eth0.3 vconfig add eth0 4 dhclient -r (encerra a instância anterior do cliente dhcp) dhclient eth0.4 6. RELATÓRIO A SER ENTREGUE NO EUREKA Nesse relatório você deverá incluir as informações de dois arquivos do servidor DHCP (isto é, a VM G1): O arquivo de configuração: /etc/dhcpd.conf O arquivo de leasings ativos: /var/lib/dhcpd/dhcpd.leases Para isso transfira ambos os arquivos para seu diretório na espec e crie um arquivo texto ou .pdf com essas informações. scp /etc/dhcpd.conf [email protected]:. scp /var/lib/dhcpd/dhcpd.leases [email protected]:. MÉTODO ALTERNATIVO PARA TRANSFERIR ARQUIVOS PARA A MÁQUINA HOST O roteiro sugere utilizar o comando scp para transferir arquivos entre o ambiente guest (UML) e o ambiente host (espec). Contudo, existe um método alternativo, que pode ser utilizado. Digite o seguinte comando na máquina UML (DVD): mkdir /espec mount none /espec -t hostfs -o /home/rss O diretório /espec está agora montado com o diretório na espec. Você pode transferir os arquivos usando cp. Por exemplo: cp vlan.cap /espec O arquivo vai aparecer no diretório padrão (/home/rss) no ambiente host. O mapeamento pode ser feito também no ambiente servidor espec. Nesse caso, contudo, é melhor você verificar primeiro o seu diretório padrão na espec. Digite o comando abaixo em um terminal: pwd Substitua o caminho após o parâmetro "-o", conforme indicado a seguir: mkdir /espec mount none /espec -t hostfs -o caminho_pwd