Servidor dhcp com suporte a múltiplas redes
terça-feira, 29 de julho de 2008Esta é a primeira de três partes sobre a criação de servidor para distribuição de internet. Mostrarei agora como configurar o servidor dhcp para atender a requisições das estações, fornecendo sempre os mesmos ips . A diferença fica pelo fato de o servidor dhcp oferecer ips em redes diferentes para cada host, dessa forma, reduzindo o broadcast em caso de pequenos grupos de computadores e atuando como uma maneira simples de fazer com que as máquinas não se vejam na rede. Vale lembrar que não há muito o que se possa fazer para impedir que micros se vejam quando estão dentro de uma mesma rede fisica, sem um servidor entre elas ou um switch com suporte a vlan, o que não é o meu caso.
Antes de mais nada, devemos observar que para termos várias redes, precisamos de vários dispositivos ethernet. Nosso servidor possui apenas 2 interfaces reais: eth0, que servirá à rede interna e eth1, que será conectada ao modem, ou seja, quem nos conectará à internet. Utilizaremos diversas interfaces virtuais para o serviço. O intuito é demonstrar que é possível utilizar um único servidor para várias redes diferentes.
A criação das interfaces virtuais é bem simples: vá até /etc/network e abra o arquivo interfaces.
root@server:# vi /etc/network/interfaces
Para isso, dê um ip fixo. Neste exemplo, ficaria assim:
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.0.0
network 192.168.0.0
broadcast 192.168.0.255
Desta forma, temos a interface eth0 respondendo pelo ip 192.168.1.1/255.255.255.0.
A partir daí é só ir criando as outras interfaces. A vantagem está em criar redes totalmente diferentes da eth0, seguindo o seguinte padrão:
auto eth0:2
iface eth0:2 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
auto eth0:3
iface eth0:3 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
E assim por diante. Desta forma, criamos várias interfaces virtuais, cada uma respondendo por uma faixa diferente. Deixaremos o segundo ip da rede para corresponder ao servidor, ou seja, No caso de uma rede 192.168.X.0/255.255.255.0, o primeiro ip corresponde a rede, que é 192.168.X.0, o segundo, nós definimos como sendo o ip do servidor e o ultimo, obrigatóriamente é o endereço do broadcast, que é 192.168.X.255
Agora que já temos as subredes configuradas, vamos ao servidor dhcp.
A sua instalação é feita via apt:
root@server:# apt-get install dhcp3-server
Uma vez instalado, vamos configurar a primeira parte do dhcp.conf. Começaremos inserindo as configurações globais:
root@server:# vi /etc/dhcp3/dhcpd.conf
ddns-update-style none;
default-lease-time 8600;
max-lease time 7200;
authoritative;
subnet 192.168.0.0 netmask 255.255.0.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option domain-name-servers 192.168.0.2;
range 192.168.1.101 192.168.1.199;
}
Acabo de dizer ao servidor dhcp que ele ele irá responder em uma subrede de classe b(subnet 192.168.0.0 netmask 255.255.0.0) , e após isto dará ips de classe C para os terminais (option subnet-mask 255.255.255.0) , começando em 192.168.1.101 até 192.168.1.199, além disso receberão o dns 192.168.0.2 (option domain-name-servers 192.168.0.2), que ainda vamos configurar mais à frente.
Após editarmos este arquivo, vamos salvar, reiniciar o servidor dhcp e colocar uma máquina na rede.
root@server:# invoke-rc.d dhcp3-server restart
Se tudo ocorreu bem, teremos os computadores pegando ips entre 192.168.1.101 e 192.168.1.199, gateway 192.168.1.1 e dns 192.168.0.2
Agora vamos compreender a configuração individual de cada host. Volte ao dhcpd.conf. Iremos definir ips fixos para cada computador, baseando-se no mac.
Logo abaixo das linhas que escrevemos anteriormente, adicione o seguinte:
host computador1 {
hardware-ethernet 00:00:00:00:00:00;
fixed-address 192.168.10.2;
option routers 192.168.10.1;
}
Com essas linhas eu adicionei o computador “computador1″, na linha abaixo, é informado o mac, depois o ip que ele receberá sempre e por último, o gateway, que é o ip que demos à interface virtual responsável pela rede 192.168.10.0, que é 192.168.10.1
Teste novamente inserindo os dados conforme escrito e reinicie o dhcp.
Atençao para o “{” e “}” da seção “subnet 192.168.0.0 netmask 255.255.0.0″. O “{” começa nesta linha e “}” deve ser a última coisa no arquivo de configuração, de forma que essas configurações de ips amarrados ao mac, ficam logo acima do “}”
Olhe abaixo um exemplo do dhcpd.conf com 1 cliente dhcp fixo cadastrado.
ddns-update-style none;
default-lease-time 8600;
max-lease time 7200;
authoritative;
subnet 192.168.0.0 netmask 255.255.0.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option domain-name-servers 192.168.0.2;
range 192.168.1.101 192.168.1.199;
host computador1 {
hardware-ethernet 00:00:00:00:00:00;
fixed-address 192.168.10.2;
option routers 192.168.10.1;
}
}
O script que desenvolveremos no final irá aproveitar toda esta configuração, exceto as configurações de dhcp fixo. Então não perca tempo adicionando todo mundo agora, pois iremos fazer isso de maneira mais automatizada. Faça apenas um para testar se está funcionando.
BANCO DE DADOS
Para fecharmos esta parte, vamos criar o nosso “banco de dados”. Trata-se de um arquivo de texto simples, que conterá todas as informações que a princípio são necessárias para configurarmos tanto o dhcp quanto tudo que veremos à frente.
Crie o arquivo clientes.bdt (bdt de” banco de dados de texto”… apenas uma convenção que uso para saber que se trata de um arquivo que atua como banco de dados…)
root@server:# vi clientes.bdt
Dentro do arquivo, iremos inserir a primeira linha que será assim:
#cod!nome!endereco!tel1!tel2!email!obs!mac!bandaup!bandadown!ip!ativo
Esta linha é nosso referencial para preenchermos os dados abaixo, que serão assim:
2!jeferson!rua sen nome!9999-9999!9999-9999!jefersondossantos@gmail.com!eu mesmo!00:00:00:00:00:00!300!150!192.168.10.3!s
Note que cada campo é demarcado por um “!”. Este é o nosso separador, de forma que não deve haver nenhuma exclamação que não sejam estas, caso contrário o script quebra, pois passa a pegar a informação no campo errado.
Alguns campo não são necessários à principio, como endereço, telefone, obs… Estes campos existem pois farão parte de um sistema de cadastro de usuários. Este sistema foge do escopo deste tutorial, mas será utilizado em outros, logo
em breve. Sendo assim alguns campos podem ser deixados vazios. Caso deseje, pode deixar assim:
2!jeferson!!!!!!00:00:00:00:00:00!300!45!192.168.10.3!s
Agora que reduzi o número de campos, irei explica-los:
2- é apenas um código crescente. Apesar deste não ser necessário para este tutorial, por favor, mantenha-o, para facilitar as coisas.
jeferson - nome do usuário. Super importante, pois irá constar na listagem do squid e como nome do host no dhcp
00:00:00:00:00:00 - coloque aqui o mac da placa de rede
300 - Para o cbq controlar download
45 - Para o cbq controlar upload
192.168.10.3 - O ip que será dado a este micro
s - Deverá ser marcado “s” para computadores ativos e “n” para computadores inativos. Os computadores inativos não terão acesso aos recursos do servidor.
basta alimentar o banco de dados com estas informações, que serão futuramente usadas.
O nosso próximo passo é configurar o servidor proxy. Aguardem…






Olá, eu gostaria muito de ter acesso as outras duas
Allison | quinta-feira, 30 de outubro de 2008Olá, eu gostaria muito de ter acesso as outras duas partes que você menciona no inicio do tutorial. Já estou procurando sobre esse assunto há alguns dias. Esse foi um ótimo tutorial. Amanhã já vou testá-lo.
Ola gostei muito do tutorial, mas se fosse possivel estou
Fernando | sexta-feira, 2 de janeiro de 2009Ola gostei muito do tutorial, mas se fosse possivel estou precisando do restante do tutorial, se tiver algum custo, nao tem problema,