LPIC-02 pass

Dear Candidate,

LPI ID: LPI000116018

Congratulations on obtaining your LPIC-2 certification.

Exams

Exam Date Grade Details
101 2006-08-05 00:00:00 pass details
102 2006-08-05 00:00:00 pass details
201 2010-10-21 15:17:57 pass details
202 2010-10-22 15:31:35 pass details

No dia 19 de Dezembro vou fazer a prova 301, necessária para a Senior Level Linux Professional (LPIC-3).

Overview of Tasks: to pass LPIC-3 “Core” someone should:

  • Have several years experience with installing and maintaining Linux on a number of computers for various purposes
  • Have integration experience with diverse technologies and operating systems
  • Have professional experience as, or training for, an enterprise level Linux professional. (Including having experience as a part of another role)
  • Know advanced and enterprise levels of Linux administration including installation, management, security, troubleshooting and maintenance
  • Be able to use open source tools to measure capacity planning and troubleshoot resource problems
  • Have professional experience using LDAP to integrate with Unix services and Windows services, including Samba, PAM, email, Active Directory
  • Be able to plan, architecture, design, build and implement a full environment using Samba and LDAP as well as measure the capacity planning and security of the services
  • Be able create scripts in Bash or Perl or has knowledge of at least one system programming language (such as C)

Como a prova praticamente aborda integração com OpenLDAP estou tomando como material de estudos o livro “OpenLDAP – Uma abordagem integrada” de Clodonil Honório Trigo, que a meu ver aborda todos os tópicos descritos na sessão objetivos detalhados do da prova 301. Como adição tenho lido também o material disponibilizado em http://www.rootkit.nl/files/book_lpic-3_301.html.

Coincidentemente, no momento estou trabalhando em um projeto de centralização, integração e single SignOn da base de usuários entre vários sistemas e serviços.

Para o exame LPIC-02 utilizei o livro Certificação Linux LPI: Nível 2 Exames 201 e 202 de Steven Pritchard, O’Reilly. Um bom livro que abordou bem todos os tópicos cobrados no meu exame.

Aumentando o limite de interfaces de rede do qemu.

Quem utiliza o Linux KVM como plataforma de virtualização e utiliza VM’s com muitas interfaces de rede (notavelmente gateways acessando várias VLANS) já deve ter se deparado com um erro do qemu dizendo que se ultrapassou o número máximo de interfaces de rede permitido.

O número máximo de interfaces de rede é definido em tempo de compilação em um header (qemu/net.h)  do qemu. Para aumentarmos esse limite será necessário o código-fonte do qemu:

Ocorre o seguinte erro ao iniciarmos uma VM com mais de 8 interfaces de rede:

qemu: Too Many NICs

Tomando como base um sistema Debian GNU/Linux:

mkdir /usr/src/qemu
cd /usr/src/qemu

Baixe o fonte do qemu:

apt-get source qemu
cd qemu-0.9.1/

edite o arquivo net.h

vim net.h

Altere a constante MAX_NICS de 8 para o valor que vc deseja. (Testei com 12 NIC's e não tive problemas.):

#define MAX_NICS 12

Compile o pacote qemu: (execute o comando de dentro do diretório qemu-0.9.1)

dpkg-buildpackage -rfakeroot -uc -b

Nesse ponto tive que instalar algumas dependências tanto do ambiente quanto do qemu, isso varia de ambiente para ambiente, entretanto resolvi as minhas dependências intalando:

apt-get install libsdl1.2-dev apt-get install debhelper debhelper quilt nasm gcc-3.4 fakeroot
apt-get install libx11-dev  zlib1g-dev texi2html libgnutls-dev libasound2-dev libgpmg1-dev libbrlapi-dev

Desinstalar o qemu original:

apt-get purge qemu

Depois de compilado o pacote .deb será construído em um diretório acima (/usr/src/qemu no meu caso):

cd ..
apt-get install qemu_0.9.1-10lenny1_amd64.deb

Fornecendo rotas estáticas – classless static routing – a clientes pelo protocolo DHCP

Esta solução é bastante interessante, e um tanto pouco documentada, quando se utiliza roteamento inter-vlans em um switch nível 3 por exemplo. Ao invés do gateway da rede fazer o roteamento entre todas as vlans podemos utilizar o próprio switch e fornecer  estas rotas às estações através do dhcpd.

O dhcpd por padrão fornece um mecanismo de fornecer rotas estáticas (option static-routes), porém não são permitidas rotas para redes inteiras, apenas para hosts.

Desta forma é mostrada uma solução que permite fazer roteamento para redes com máscaras não cheias (classless).

Nas definições globais do dhcpd.conf adicione as linhas:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes         code 249 = array of unsigned integer 8;

As linhas definem a RFC3442 (The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4) sendo o code 121 a implementação RFC e o code 249 a implementação Microsoft desta RFC (no caso de clientes dhcp Windows.

Depois de definidas estas opções, podemos definir as rotas dentro de cada  bloco subnet:

option rfc3442-classless-static-routes 24, 10, 1, 2, 10, 1, 1, 254;
option ms-classless-static-routes 24, 10, 1, 2, 10, 1, 1, 254;

As linhas adicionam uma rota para a rede 10.1.2.0/24 utilizando o gateway 10.1.1.254. Para tal, usa-se a seguinte regra de produção:

[netmask, network address byte 1, network address byte 2, network address byte 3, route byte 1, route byte 2, route byte 3, route byte 4]

Exemplo:

dhcpd.conf: (estou mostrando apenas as opções relevantes ao assunto, insira os parâmetros pertinentes ao seu cenário)

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes         code 249 = array of unsigned integer 8;

subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.100 10.1.1.200;
option broadcast-address 10.1.1.255;
option routers 10.1.1.1;
option rfc3442-classless-static-routes 24, 10, 1, 2, 10, 1, 1, 254,
24, 10, 1, 3, 10, 1, 1, 254,
24, 10, 1, 4, 10, 1, 1, 254,
24, 10, 1, 5, 10, 1, 1, 254,
24, 10, 1, 6, 10, 1, 1, 254,
24, 10, 1, 7, 10, 1, 1, 254;
option ms-classless-static-routes 24, 10, 1, 2, 10, 1, 1, 254,
24, 10, 1, 3, 10, 1, 1, 254,
24, 10, 1, 4, 10, 1, 1, 254,
24, 10, 1, 5, 10, 1, 1, 254,
24, 10, 1, 6, 10, 1, 1, 254,
24, 10, 1, 7, 10, 1, 1, 254;
}

Criamos rotas para as subnets 10.1.2.0/24, 10.1.3.0/24, 10.1.4.0/24, 10.1.5.0/24, 10.1.6.0/24, 10.1.7.0/24 utilizando o gateway 10.1.1.254 (nossa switch nível 3 em questão) ao invés do gateway padrão 10.1.1.1.

Obs: Descobri que equipamentos rodando Android (2.3.5) não conseguem setar corretamente o gateway padrão em uma rede que use este recurso. Tive que definir a rota padrão manualmente no dispositivo para que ele pudesse conectar-se à Internet.