DHCP e VLANs no CentOS 6.5 – Instalação e configuração

vconfig / VLANs e interfaces

Instalar o pacote vconfig

1. Primeiro, vamos instalar o pacote vconfig para gerenciar as VLANs:

# yum -y install vconfig

2. Agora, vamos editar o arquivo /etc/sysconfig/network:

# vim /etc/sysconfig/network

Dentro do arquivo, vamos ativar o suporte para VLAN, colocando o seguinte parâmetro:

VLAN=YES

3. Algo bom fazer, é verificar se o módulo de encapsulamento 8021q está ativo no kernel.

Verificando se o módulo está ativo:

# lsmod | grep 8021q

Para ativar: 

# modprobe 8021q

4. Configurando a placa de rede no arquivo /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=”eth0″
BOOTPROTO=”static”
HWADDR=”B6:48:E2:AE:5C:9A”
NM_CONTROLLED=”no”
ONBOOT=”yes”
TYPE=”Ethernet”
IPADDR=”192.168.0.1″
NETMASK=”255.255.255.0″
BROADCAST=”192.168.0.255″
GATEWAY=”192.168.25.1″

Pronto, já foi configurado o módulo e a placa de rede.

Criando as VLANs e interfaces

5. Agora, vamos criar a estrutura de VLANs. Para isso, vamos dar uma olhada no seguinte diagrama:

Linux: DHCP e VLANs no CentOS 6.5 - Instalação e configuração

6. Neste exemplo, vamos criar três VLANs se comunicando via trunk, através de nosso servidor e um Swicth.

Então, vamos começar criando as VLANs:

# vconfig add eth0 10
# vconfig add eth0 20
# vconfig add eth0 30

Pronto!

7. Agora, vamos configurar nossos escopos no DHCP e vincular com nossas VLANs.

Primeiro, vamos modificar o arquivo /etc/dhcp/dhcpd.conf, colocando a seguinte configuração:

# DHCP SERVER ISESC
authoritative;
ddns-updates off;
log-facility local7;
default-lease-time 7200;
max-lease-time 14400;

## IPS DOS DNS E DO NTP
option domain-name-servers 192.168.0.123, 192.168.0.2;
option ntp-servers 192.168.0.10, 192.168.10.10;
##PLACA PRINCIPAL DHCP ETH0
subnet 192.168.1.0 netmask 255.255.255.0 {
}

## LAB1 VLAN 10
subnet 192.168.1.10 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name “ISESC”;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.255;
option routers 192.168.10.1;
}

## LAB2 VLAN 20
subnet 192.168.1.20 netmask 255.255.255.0 {
range 192.168.20.10 192.168.20.254;
option domain-name “ISESC”;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.20.255;
option routers 192.168.20.1;
}

## LAB3 VLAN 30
subnet 192.168.1.30 netmask 255.255.255.0 {
range 192.168.30.10 192.168.30.254;
option domain-name “ISESC”;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.30.255;
option routers 192.168.30.1;
}

Pronto! Os escopos estão criados.

Mas, temos que configurar as interfaces e indicar ao serviço DHCP por onde tem que sair.

Vinculando VLANs / Roteamento

Vinculando as VLANs com os escopos

8. Por default, quando criamos as VLANs é criado também um arquivo de configuração com o sufixo da ID da VLAN, no diretório /etc/sysconfig/network-scripts/.

Exemplo: se nosso arquivo é ifcfg-eth0 e nossa VLAN criada tem ID 10, então, ele vai criar um arquivo ifcfg-eth0.10. Caso ele não foi criado, devemos criar um.

Exemplo do ifcfg-eth0.10:

DEVICE=eth0.10    # AQUI ESTAMOS VINCULANDO A INTERFACE
TYPE=Ethernet
VLAN=yes    # AQUI ESTAMOS INDICANDO O MODO VLAN
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLED=no
IPADDR=192.168.10.1
BROADCAST=192.168.10.255

Exemplo do ifcfg-eth0.20:

DEVICE=eth0.20    # AQUI ESTAMOS VINCULANDO A INTERFACE
TYPE=Ethernet
VLAN=yes
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLED=no
IPADDR=192.168.20.1
BROADCAST=192.168.20.255

Exemplo do ifcfg-eth0.30:

DEVICE=eth0.30    # AQUI ESTAMOS VINCULANDO A INTERFACE
TYPE=Ethernet
VLAN=yes
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLED=no
IPADDR=192.168.30.1
BROADCAST=192.168.30.255

Já criamos nossas interfaces e vinculamos com as VLANs.

9. Falta algo importante: vamos indicar ao nosso servidor, quais interfaces irão trabalhar como DHCP. Temos que editar o arquivo /etc/sysconfig/dhcpd:

DHCPDARGS=”eth0.10 eth0.20 eth0.30″;

Agora, já quase acabamos. Vamos reiniciar o serviço DHCP e as interfaces:

# service network restart
# service dhcpd restart

Roteamento entre VLANs

Para fazer uma rota, devemos usar o comando route.

Exemplo: vamos criar uma rota com toda uma subnet:

# route add -net 10.10.10.0/24 gw 192.168.0.1

E para apagar essa rota, seria:

# route del -net 10.10.10.0/24 gw 192.168.0.1

No caso de ser só um host, então, fica:

# route add -host 10.10.10.45 gw 192.168.0.1

Ou, para apagar, seria:

# route del -host 10.10.10.45 gw 192.168.0.1

Outro caso que pode acontecer, é colocar um gateway como padrão do sistema:

# route add default gw 192.168.0.1

Ou, para apagar, seria:

# route del default gw 192.168.0.1

Tudo Ok! Mas, se queremos que essas rotas fiquem guardadas no boot, devemos criar um arquivo route.ethX no diretório /etc/sysconfig/network-scripts.

No caso, o X será o número da interface desejada, por exemplo: route.eth0.

Dentro deste arquivo, coloque as rotas no seguinte formato:

GATEWAY0=192.168.0.7
NETMASK0=255.255.252.0
ADDRESS0=192.168.5.0

GATEWAY1=192.168.0.6
NETMASK1=255.255.252.0
ADDRESS1=192.168.4.0

Observe que é possível adicionar diversas rotas no mesmo arquivo.

Desta forma, as rotas serão carregadas automaticamente no boot, eliminando a necessidade de usar o route add no rc.local.

As rotas também serão carregadas no caso de um service network restart.

Obs.: trecho baseado na dica:

Conclusão

Se tiverem dúvidas, é só perguntar. Ou, se não sabem como vincular as VLANs via trunk com um Swicth, é só falar que a gente ajuda.

Como falei no início, sou um novato e, de novato para novato, a gente se ajuda! (rsrsrsr)

Se tiverem algo que apontar, por favor, fiquem à vontade.

Rolar para cima