Aula 2 – Servidor DHCP 2.1 – dhcp DHCP é abreviação de Dynamic Host Configuration Protocol – Protocolo de Configuração de Host (computadores) Dinâmico.Em uma rede baseada no protocolo TCP/IP, todo computador deve possuir um endereço IP distinto (exceto qundo temos um roteador). Isso significa que antes de colocar uma nova estação na rede teríamos que escolher um endereço IP que não esteja sendo utilizado por outra máquina. Em pequenas redes isso é fácil de ser feito, mas em grandes redes isso se torna uma tarefa muito trabalhosa e bastante sujeita a falhas. Para evitar esse problema, foi criado o DHCP, que tem como função principal fornecer um endereço IP dinamicamente a um computador no momento de sua conexão à rede. O servidor de DHCP verifica qual o endereço IP disponível em uma tabela cadastrada previamente dentro deste e informa ao solicitante esse endereço, tornando­o disponível para outras solicitações. Dessa maneira, a administração dos endereços IP é feita automaticamente e não existem problemas de conflito. Quando a máquina solicitante sai da rede, o servidor DHCP torna o endereço IP dessa máquina disponível novamente. O protocolo DHCP (Dynamic Host Configuration Protocol) permite que clientes dentro de uma mesma rede física possam efetuar suas configurações de rede de forma automática. Dessa maneira, com o uso do serviço DHCP, estações podem buscar em um servidor várias informações como, por exemplo: ­ endereços e máscaras de rede (IP); ­ endereço de roteadores (gateways); ­ endereços de servidores de nomes; ­ endereços de servidores de fontes; ­ endereços de servidores WINS (Windows Name Server); ­ endereços de servidores proxy. Outras informações podem ser fornecidas via DHCP, mas essas o mais comum é utilizar um servidor DHCP para compartilhar as três primeiras. Para Linux, existem dois clientes: o dhcpcd, ou o pump. O servidor disponível é o dhcpd da ISC. 2.2 ­ Instalando o dhcp No Debian ou no Ubuntu será preciso instalar o pacote DHCP. Este pacote é desenvolvido e mantido pelo Internet Software Consortium (http://www.isc.org). Além do código fonte é possível também se obter o software no formato binário para outras distribuições GNU/Linux (Red Hat, SuSE, Slackware e outras). Maiores detalhes sobre o estágio atual de desenvolvimento do DHCP podem ser encontrados em: http://www.isc.org/products/DHCP/ O primeiro passo é realizar a instalação do pacote DHCP: # apt­get install dhcp3­server O comando apt­get fará o gerenciamento do software: instalação, verificação, remoção e dependências. 2.3 – Configurando o DHCP A configuração do arquivo do DHCP encontra­se em /etc/dhcp3/dhcpd.conf, poratnto devemos editá­ lo com um editor de texto: # vim /etc/dhcp3/dhcpd.conf Os itens mais importantes do arquivo de configuração são: server­identifier Devemos identificar o nome do nosso servidor já configurado no netconfig. Ex: server­identifier nome do servidor; ddns­update­style ad­hoc Parâmetro que efetua o update (atualização) do DNS da rede interna sincronizando assim com o da rede externa, para o mesmo ser distribuído para toda a rede junto com o IP. subnet Define o endereço da rede interna. Ex: Para uma rede que tem o servidor proxy firewall 192.168.1.1 usaremos 192.168.1.0, para 10.0.0.1 usaremos 10.0.0.0 e 127.0.0.0 para 127.0.0.1, sendo assim: subnet 192.168.1.0. netmask Resolve a máscara de sub­rede. Ex: 255.255.255.0 para uma rede 192.168.0.0, 255.0.0.0 para uma rede 10.0.0.0 e 255.255.0.0 para uma rede 127.0.0.0, ficando da seguinte forma: netmask 255.255.255.0. range Determina o IP inicial e final a ser distribuído na rede local, tomando como base o IP do nosso servidor DHCP. Ex: range 192.168.1.100 192.168.1.150, onde o primeiro IP é o inicial e o segundo o final. option domain­name Nome do domínio do nosso servidor, domínio também definido anteriormente no netconfig: Ex: option domain­name "lotus.local" option domain­name­servers Definição do servidores DNS primário e secundário externos. Ex: option domain­name­servers 200.169.96.11,200.220.199.2, seguindo na mesma ordem do range, onde o primeiro IP é o dns primário e o segundo do dns secundário. option routers Gateway da conexão externa. Ex: option routers 201.23.217.254. option subnet­mask Subnet da rede externa, que pode ser obtida através do comando ifconfig observando­se a placa de rede externa. Para definirmos um IP fixo em um determinado micro usamos a configuração abaixo. host micro1 { hardware ethernet 00:00:00:00:00:00; fixed­address 192.168.1.135; } Onde "hardware ethernet" é o endereço MAC (endereço físico) da placa de rede e fixed­address o endereço IP que deseja­se fixar, por fim sempre que o micro portador da placa de rede com esse endereço MAC definido iniciar, receberá o IP 192.168.1.135. option nis­servers Setamos aqui o IP do servidor de domínio. Ex: option nis­servers 192.168.0.30; option nis­domain Seguindo a mesma linha acima para o nome de domínio. Ex: option nis­domain "lotus" default­lease­time Esse parâmetro nos permite dizer de quanto em quanto tempo o IP vai ser renovado, definido em segundos, mais assumindo o mesmo IP. Ex: default­lease­time 600; concessão de 10 minutos. max­lease­time Seguindo basicamente o parâmetro acima após o tempo determinado ele troca por outro IP. Ex: max­lease­time 7200; após 2 horas irá trocar de IP. shared­network Define qual a placa de rede que será tomada com base para o servidor DCHP. Ex: shared­network eth0 { 2.4 Arquivo de configuração do dhcp Para configurar o servidor DHCP, utiliza­se o arquivo /etc/dhcp3/dhcpd.conf. O arquivo já possui alguns exemplos de redes dhcp pré­definidos, porém caso se queira apagar o seu conteúdo e reescrever utilizando a sua configuração seria um procedimento mais correto. Abaixo segue exemplo comentado da configuração de uma rede dhcp no arquivo /etc/dhcp3/dhcpd.conf: ddns­update­style none; # se a versao do dhcp server for superior a 3.0 ddns­update­style ad­hoc; # efetua atualização do DNS da rede interna sincronizando assim com o da rede externa, para o mesmo ser distribuído para toda a rede junto com o IP. Authoritative; # o servidor quando setado como authoritative, se comunica com os clientes mesmo que estes possuam configurações erradas de rede ou possuam IPs que não sejam da subnet configurada no servidor, se tiver como "not authoritative" ele ignora tais máquinas, se teu servidor for o único DHCP server na rede, acho que vale à pena habilitar esse recurso. # definição da subrede subnet 192.168.254.0 netmask 255.255.255.0 { # faixa de ips que ele vai distribuir, no caso abaixo, de 1 até 200 range 192.168.254.1 192.168.254.200; # servidor de DNS option domain­name­servers 200.165.132.155; # gateway option routers 192.168.254.254; # endereço de broadcast option broadcast­address 192.168.254.255; # tempo padrão de locação de endereço default­lease­time 600; # tempo máximo de locação de endereço max­lease­time 7200; } #caso se queria fixar o IP de algum Hardware na sub­rede host nome_do_host { hardware ethernet 08:00:2b:4c:59:23; fixed­address 192.168.1.6; } Após inserir os dados de sua configuração de dhcp, reinciar o servidor dhcp: # /etc/init.d/dhcp3 restart Feito isso verificar o arquivo de locação (lease) do servidor dhcp para verificar os hosts mapeados e locados pelo dhcp: # cat /var/lib/dhcp3/dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc­dhcp­V3.1.1 lease 192.168.1.100 { starts 4 2009/03/19 09:12:16; ends 4 2009/03/19 09:22:16; tstp 4 2009/03/19 09:22:16; cltt 4 2009/03/19 09:12:16; binding state free; hardware ethernet 08:00:27:40:bb:55; }