ago 25

iptables com layer7

Comentários desativados

Como ativar um firewall Linux (iptables), com suporte ao layer7.

Geralmente quando pensamos em firewall sempre olhamos para a camanda 4 que, ou seja, TCP ou UDP, portas de origem ou destino.Mas será que isso é suficiente? E os programas específicos como jogos, p2p, msn, gtalk, irc e outros? Será que pega? A soluçao em vez de voce ficar se matando em correr atras de portas é bloquear a conexão por templates baseadas nesses softwares específicos.

Vamos implementar no kernel o suporte ao layer 7 para que o iptables (e sua camada netfilter), tenha suporte ao sistema baseado no flag -m layer7 –l7proto XXXX“, onde XXXX é o protocolo desejado.

Exemplo de uma regra do iptables COM SUPORTE AO LAYER 7: iptables -I INPUT -m layer7 –l7proto msn -j DROP.

que neste caso qualquer conexão com qualquer programa que use o protocolo msnp, serão derrubados e usar tambem o
L7-Filter em conjkunto com a ferramenta tc para fazer controle da banda baseado em layer 7.

http://l7-filter.sf.net -> Site do projeto.

Geralmente vc tera que baixar 2 arquivos necessarios, o netfilter-layer7-vX.X.X.tar.gz que contem os modulos nec
essários para ativar o layer 7 no kernel (suporte a camada do netfilter) e l7-protocols-YYYY_MM_DD.tar.gz que co
ntem as definições de protocolos baseado em data de alterações que SEMPRE são atualizados.

Para realizar essa tarefa entre no seu /usr/src/linux onde se encontra o seu kernel compilado e adcione os patch
s do suporte ao layer 7 com o comando patch -p1 < ../netfilter-layer7-vX.X.X/kernel-2.6-layer7-X.X.X.patch. Apos
patch do kernel entre no seu kernel pelo make menuconfig e va em Device Drivers > Networking Support > Network
Options > e marque a opcao Network Packet Filtering > Netfilter Configuration > e marque LAYER 7 match suypport
(leia o help das outras opções, valem a pena).

Caso vc queira usar o CBQ ou o HTB para LIMITAR A BANDA (o rate, download, upload e outros), va em Device Driver
s >> NEtworking Support > Networking Options > QoS and/or fail queueing
e selecione TUDO.

COMPILE o kernel e boot na nova imagem com suporte ao layer7.
NOTA: Instale ou compile nova versão do iptables com o suporte ao layer7, veja os procedimentos abaixo:

# cd DIRETORIO DO SOURCE
# tar jxvf iptables-x.x.xx.tar.bz2
# cd iptables-x.x.xx
#apt-get remove iptables –purge

Vamos adcionar o patch ao source do iptables:
# patch -p1 < /opt/layer7/netfilter-layer7-v2.1/iptables-1.4-for-kernel-2.6.20forward-layer7-2.21.patch
# chmod 755 extension/.layer7-test

Instale e compile o novo iptables ja com o suporte.
# make KERNEL_DIR=/usr/src/linux-<VERSAO DO SEU KERNEL> BINDIR=/sbin LIBDIR=/lib
# make install KERNEL_DIR=/usr/src/linux-<VERSAO DO SEU KERNEL> BINDIR=/sbin LIBDIR=/lib
#iptables -n -L

# iptables -n -L -t nat –> para apenas verificar as tabelas.

Entao vamos verificar o diretorio /lib/iptables/*layer7*

Vamos instalar os pacotes de protocolos do layer7, baixe os protocolos definidos direto do source em http://sourceforge.net/projects/l7-filter/. Descompacte e compile com make install para ser criado em /etc/i7-protocols/protocols.

Vamos testar? Mas antes carregue o módulo ipt_layer7 do iptables com o modprobe e coloque em /etc/rc.local (no SuSE em /etc/rc.d/boot.local) ou /etc/modules para ser automaticamente iniciado no boot.
NOTA: Caso vc tenha um kernel ja pronto e otimizado com o suporte ao layer 7 use entao os seguintes exemplos de -m layer 7 –l7proto.

#modprobe ipt_layer7

Bloqueando o MSN pelo nome da aplicação:
#iptables -A FORWARD -m layer7 –l7proto msnmessenger -j DROP

Caso vc queira ver a lista de procolos suportados (que podem ser adcionados), veja o site abaixo:
http://l7-filter.sourceforge.net/protocols

Voce tambem pode usar geradores de gráficos para ver o consumo de cada protocolo.

mai 22

Fetchmail em Linux e FreeBSD

Comentários desativados

O Fetchmail é um utilitario para Linux e Unix usado para funcionar como uma espécie de cliente de email, ele recebe os emails de uma conexão remota baseada no lixo do POP3 e no poderoso IMAP e tb em ETRN e ODMR servers. O Fetchmail é uma das unicas soluções para resolver problemas de maquinas UNIX desde muito e conexões a servidores de email com IPs dinamicos com conexões SLIP ou PPP Dialup.

Ele tem a mesma função de um cliente de email, ele baixa os emails se conectando ao servidor e mantém no mailbox do usuario seja ele em .MailDir OU /var/mail (/var/spool/mail) do usuario e mantem a mensagem no servidor. Ele depende do uso do sendmail ou postfix em funcionando.

Como configurar? Vamos la…

No Linux:

(debian/ubuntu)# apt-get install fetchmail -y

(redhat/CentOS/Fedora)# yum install fetchmail -y

(suse11/opensuse11)#zypper in fetchmail -y

Como instalar no FreeBSD
NOTA: vc vai usar o ports para isso, silêncio, falei ports, isso sim é um gerenciador de pacote e source code. OU entao usar o pkg_add para o pacote direto do site do projeto do FreeBSD de acordo com a sua arquitetura de pacotes.

# cd /usr/ports/mail/fetchmail
#make install
#make clean

Configuração tanto no Linux como no FreeBSD.

Caso vc venha usar um usuario com o arquivo de configuração do fetchmail local no seu diretorio de configuração aonde vc mesmo pode instruir-lo a fazer, edite o arquivo ~/.fetchmailrc é interessante que este arquivo possua a permissao 0600 ou (rw——-), pois somente o usuario deve editar.

O interior do arquivo possui o seguinte conteudo:

poll mail.gmail.com with proto POP3
user d12356 there with password “password” is “vivek” here

Vamos enteder o que eu coloquei acima?

poll mail.gmail.com with proto POP3 -> diz que eu vou usar o servidor XX (no caso um alias para o MX), e proto POP3 que é o protocolo usado.
user USER -> usuario do email
password “password” -> a senha utilizada.
“vivek” here -> o nome do mailbox que vai ser gerado.

NOTA: verifique sempre o usuario dono do arquivo .fetchmail

Quando o usuario se logar basta o usuario executar o comando:

#fetchmail -a

E entao sera criado no arquivo /var/spool/mail/USER todos os emails que o seu cliente de email vai usar pra baixar os seus emails. Maneiro né?

Aprígio Simões
aprigio@linuxstudent.com.br

abr 11

Converter ext3 para ext4

Comentários desativados

Convertendo o sistema de arquivo EXT3 para EXT4.

Hoje o sistema de arquivos ext4 que ja estava com suporte ao kernel do Linux desde a muito tempo nao tinha ganhado a confiança dos administradores ainda.Sua terminalogia so tem a falar bem dele e o ext4 que esta passando por um grande período de desenvolvimento ja teve e ja gerou (o que é normal), grandes problemas no decorrer do seu desenvolvimento ate o kernel 2.6.29. Realmente vc nao confiaria o seu servidor de arquivos com um sistema que ainda procede no seu desenvolvimento. Mas antes era e dava na mesma coisa quando o ext3 foi lancado e quando seus problemas de limite de arquivo no journaling foram corregidos com o tempo.

Distribuições como Ubuntu 10.04 LTS (desde do 9.04) , Debian sid/testing, Fedora e openSUSE ja vem definindo o sistema de arquivos ext4 como padrao ja a bastante tempo como testes que podem ser seleciocionados na propria instalação no seu esquema de particionamento como o Ubiquity do Ubuntu, Debian installer do Debian, Anaconda do Fedora e AutoYAST do openSUSE. Lembrando que estas distribuições sao mantidas pela comunidade e são considerada INSTAVEIS em comparação ao RHEL, SEL11 e Debian Stable.

Vc pode consultar informações diretamente da fonte sobre o desenvolvimento do ext4 em https://ext4.wiki.kernel.org/index.php/Ext4_Howto

O sistema de arquivos ext4 possui um desempenho e  redimento MUITO melhor do que o ext3 alem do seu grande suporte a tamanho de armazenamento, ao contrario do bom e velho ext3.

Seu sistema de arquivos atual é o ext3?Posso converter para o ext4 ? SIM! Vamos la..

Para que isso seja possivel vc precisa confirmar que os modulos ext4dev e ext4 estao ativos no seu kernel (e lembre-se que na compilaçao do kernel eles sao visualizados como experimental o que é super normal). OU para se certificar que vc ja possui o sistema de arquivos ext4 ja em funcionamento junto ao seu kernel, consulte com o cat ou pg o arquivo do kernel /proc/filesystems.

NOTA: O sistema de arquivos ext4 ainda possui muitos BUGS e correções presentes entao não é acoselhavel que vc coloque o diretorio /boot formatado com ext4 e sim com ext3. Caso vc esteja convertendo um sistema de arquivos de ext3 para ext4 de uma particao montada em /boot é necessario que vc edite o arquivo do grub1 que fica em /boot/grub/menu.lst ou grub2 (que é muito melhor) em /etc/default/grub e adcione na linha kernel ou linux: rootfstype=ext4

Convertendo (PROCEDIMENTOS)

PARA CONVERTER

# tune2fs -O extents,uninit_bg,dir_index /dev/dev-name (note que o suporte ao ext4 é os atributos extents,uninit_bg,dir_index sendo que podem ser visualizados pelo comando tune2fs -l, nao se esqueca de DESMONTAR o seu dispositivo antes de converter).

(exemplo)# tune2fs -O extents,uninit_bg,dir_index /dev/sda5

RODE O FSCK PARA ARRUMAR AS COISAS.

# fsck -pf /dev/PARTITION (cuidado com suas particoes montadas, caso seja a sua raiz entre no modo de emergencia pelo grub sem suporte a escrita e faca o mesmo)

E ENTAO MONTE O SEU DISPOSITIVO NORMALMENTE:

#mount -t ext4 /dev/PARTITION /path

#mount -t ext4 /dev/disk/by-uuid/YOUR-PARTITION-UUID /share

Nao se esqueca se vc quiser usar o identificador universal UUID vc pode usar o comando blkid com:
#sudo blkid

Infelizmente somente no dia em que a Red Hat colocar no desatualizado Red Hat Enterprise entao todos vao confiar.

aprigio@linuxstudent.com.br

mar 24

YUM

Comentários desativados

O gerenciador de pacotes YUM é o gerenciador de pacote padrão do Red Hat, Fedora, CentOS e derivados. Antes criado e utilizado no Yellow Dog Linux que é uma distribuicao baseada em Red Hat e que so funciona em maquinas com o processador PowerPC ou derivados como o Cell. O Yellow Dog era a distro para quem usava maquinas da Apple com os processadores homologados de G4 e G5 que na verdade eram os processadores PowerPC, hoje é utilizado em Playstations 2 e 3. Apesar de quem nunca viu um Linux instalado em um PS2 e PS3, procure ver, vai ser uma supermaquina.

O Yellow Dog Update Manager é utilizado para atualizar toda a sua distro com o gerenciamento muito próximo do APT do Debian e Ubuntu e derivados. O yum realmente foi escolhido pela Red Hat depois de ja acompanhar o Fedora para entrar no lugar do antigo u2pdate que era o utilitario que  atualizava o Red Hat Enterprise 4 (AS/ES/WS).

A sinapse do comando é muito parecida com a do apt-get, seguindo: yum <opcoes> comando. A Novell para nao utilizar o yum por se tratar que de todas as distros baseadas em Red Hat usam o yum, resolveu se basear no yum e criar o bom zypper que gerencia agora todos os repositorios adcionados no modulo “repositories” do YaST.

Lembrando que o yum nao instala nada e sim resolve dependencias do rpm com os downloads armazenando o diretorio de cache.

O yum funciona assim:

#yum install pacote  (para instalar)

#yum remove pacote (para remover, podendo ser utilizado tb o erase)

#yum search titulo (busca pacotes por nomes , similar ao apt-cache search)

#yum info pacote (verifica o status e descricao do pacote)

#yum repolist (verifica a lista de repositorios para o YUM, como o base, updates, EPEL, RPMFORGE, LIVNA e outros)

#yum list (lista os nomes dos pacotes que vc pode baixar e permite filtragem por pacotes por sugestoes)

#yum provides arquivo (consulta pelo pacote responsavel pelo arquivo justificado, como o smb.conf)

#yum check-updates (consulta se existe atualizacoes)

#yum update (atualiza todos os pacotes instalados)

#yum upgrade (atualiza determinado pacote e os obsoletos)

#yum reinstall pacote (reinstala um pacote, o mesmo que –reinstall do apt-get)

#yum clean all (limpa todo o cache, simplismente recomendado)

#yum help (ajuda)

Os arquivos de configuracao do YUM se encontram no diretorio /etc/yum/ e os repositorios se encontram no diretorio /etc/yum.repos.d que é muito similar ao /etc/apt/sources.list.d do Ubuntu. Pois seria possivel a centralizacao de tudo tb no /etc/yum/yum.conf. Vamos ver:

/etc/yum/yum.conf

[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1

cachedir
Diretório onde yum deve armazenar seu cachê e arquivos de banco de dados. O padrão é /var/cache/yum .

keepcache
1 ou 0. Determina se yum mantém ou não o cache de cabeçalhos ou pacotes após uma instalação com sucesso. O padrão é ‘1’( mantém os arquivos).

debuglevel
Nível de mensagem de saída de debug. “Intervalo Prático” é 1-10 . O padrão é 2.
logfile
Diretório completo e nome do arquivo onde yum deve escrever seu arquivo de log.

exactarch
1 ou 0. Definindo 1 faz a atualização de yum, apenas atualizanado a arquitetura dos pacotes que você instalou. Observação: Com a opção ativada yum não instalará um pacote i686 para um i386. O padrão é 1.

obsoletes
Esta opção é afetada apenas durante o update . Isto habilita o processamento lógico obsoleto do Yum. Útil quando faz a distribuição de níveis de atualização. Veja também a documentação do comando “yum update” para mais detalhes  Opção de linha de comando: –obsoletes

Ja todos os repositorios ficam no diretorio /etc/yum.repos.d sendo um arquivo para cada repositorio. SO que no yum vc nem precisa muito em se preocupar com a configuracao deste arquivo, apenas quando vc se interessa por um novo repositorio de pacotes , basta pegar o seu arquivo .rpm e instalar com rpm -ivh ou rpm -Uvh e automaticamente será instalado o arquivo repositorio que aponta para um novo servidor para a instalacao de pacotes. Sendo que alguns destes vc vai precisar entrar com o vim e habilitar o servidor nas opcoes enable=0 colocando =1 para ativar o repositorio. Pois alguns repositorios que vc pode adcionar como em muitos casos no CentOS possuem uma demanda de pacotes muito mais novo que os atuais fazendo entao vc por conta propria.

Dentros dos arquivos de repositorio vamos ver opcoes sendo diferenciadas por [ ] que determinam uma opçao para o repositorio como o caso de [name] que aponta para o nome do repositorio. [baseurl] que aponta para o servidor “fixo”de onde vc vai baixar pacotes, mas por padrao ele vem comentado e desabilitado para nao ser interpretado pelo yum pois a opcao [mirrorurl] aponta para uma variavel que distingue varios servidores, caso um fique indisponivel vc possui um outro ja pronto para entrar em açao. [gpgcheck] que permite chegar se vc possui a chave publica gpg do servidor para que a assinatura de pacote seja feita com seguranca e nao anonima e [gpgkey] que identifica a chave que ao executar o primeiro comando “yum update”ele vai simplismente baixar a chave sozinha pra vc e instalar. É possivel usar proxy com os atributos [proxy], [proxy_username] e [proxy_password] normalmente. Interessante é a opcao [bandwidth] que vc pode limitar a quantidade de download de sua banda sendo que o valor padrao sempre sera igual a 0 caso nao seja oferecido em atributos do yum.conf.

Existem os aplicativos GUI para o yum tb como o gnome-yum e o yum-extender que tb sao boas opcoes para quem usa o Fedora como Desktop. Com o pacote yum-utils podemos utilizar o yumdownloader para fazer downloads dos pacotes rpm e seus sources.

Vale lembrar que o yum consulta sempre consulta o arquivo /etc/redhat-release para entender a qual versao da distro ele vai baixar pacotes sendo que o root pode usar do pacote pre-releases ou alterar na mao para a versao e codnome para fazer uma possivel migracao da distribuicao nova lancada sem a necessidade de usar um “linux updates”na instalacao pelo anakonda que é o instalador padrao do Red Hat e Fedora (incluimos o CentOS tb).

Na instalacao do fedora é possivel instalar o apt e no Debian e Ubuntu vc tb pode instalar o yum pelo apt-get para estudos.

Abraços a todos;

E lembre-se, Linux é o poder.

Aprígio Simões
aprigio@linuxstudent.com.br

mar 24

Configuração de rede no OpenBSD

Comentários desativados

OpenBSD – configuração dos adaptadores de rede e serviços.

O OpenBSD é diferente do FreeBSD nas questões de configuração de rede e principalmente na utilização dos daemons.  Nao trata o diretorio /etc/rc.d como de pratica do FreeBSD mediante a utilização dos daemons.Na configuração dos adaptadores de rede ele lembra muito o Solaris  que centraliza a configuração estatica de um dispositivo ethernet em /etc/hostname.ETHER.Toda a configuração do sistema esta em /etc/rc.conf OU /etc/rc.conf.local (que sempre tem preferencia), como no FreeBSD mas com opções diferentes.  Por exemplo, a configuração da placa de rede nao é no rc.conf como de pratica do FreeBSD mas sim nos arquivos /etc/hostname.DISPOSITIVO por exemplo, as interfaces de rede xl0,bge0,rl0,rl1 e outros dispositivos que podem ser apresentados de formas diferentes de acordo com a placa de rede, são configurados da seguinte maneira:

configuração do adaptador xl0 (quase que um padrão do obsd).

/etc/hostname.xl0 –> cujo dentro deste arquivo vc vai adcionar o IP e MASK e configuração de padrões ether.

#vi /etc/hostname.xl0
10.0.0.4  255.255.255.0 NONE

Ja o hostname da maquina, ou melhor dizendo, o nome de nó é configurado nos arquivos /etc/myname.
A rota padrao geralmente é configurada no arquivo /etc/mygate.

Vale lembrar que os comandos netstat e route possuem diferencas do Linux.

$ route show
Routing tables

Internet:
Destination      Gateway            Flags
default          10.0.0.1           UG
127.0.0.0        LOCALHOST          UG
localhost        LOCALHOST          UH
10.0.0.0         link#1             U
10.0.0.1         aa:0:4:0:81:d      UH
10.0.0.38        LOCALHOST          UGH
BASE-ADDRESS.MCA LOCALHOST          U

O COmando route que é utilizado para definir as rotas estáticas possui as seguintes opções:
#route show –> visualiza as rotas
#route add default 10.0.0.1 –> adciona uma rota padrao, assim como no Unix Bsd e Solaris existe uma diferenca entre a opcao “gw” que é de pratica dos sistemas Linux.

Ja existe uma grande diferença entre sistemas Linux e BSD quando se trata a utilização de servviços que iniciam os daemons de rede, no sistema Linux baseado em Debian apos a edição do arquivo /etc/network/interfaces deve-se reiniciar o daemon /etc/init.d/networking e em distribuições baseadas em Red Hat como o CentOS e Fedora vc precisaria editar o arquivo /etc/sysconfig/network-scripts/ifcfg-DISPOSITIVO e então reiniciar o daemon /etc/rc.d/init.d/network . No caso do OpenBSD não existe o diretorio /etc/rc.d como no FreeBSD mas existe dentro do /etc um script chamado netstart que recarrega as interfaces de rede. por exemplo:

#sh /etc/netstart

Então espere alguns segundos e então ta la!

O OpenBSD tambem trabalha com o ports do FreeBSD que na verdade vem da herança BSD. A portabilidade de pacotes é boa pois trabalha tambem com cliente e servidor a nível de um repositorio de informações de onde vem o source codee então procede a compilação. Assim que sua rede estiver configurada vc pode instalar um pacote atras de sua fonte, compilando-o em /usr/ports/GRUPO EM QUE O PACOTE ESTA RELACIONADO. O procedimento é o mesmo de uma compilação. Ao entrar no diretorio correspondente é so aplicar o make install e pronto! O ports baixa o fonte e compila sozinho pra vc ;)

#cd /usr/ports/net/tcpdump
#make install

Nota que o firewall do openBSD é o PF um ÓTIMO firewall e super tranquilo! Eu acho muito mais facil que o IPTABLES porem isso é assunto para outro post. O PF trata a sua configuração dentro do arquivo /etc/pf.conf e o utilitario que carrega as regras é o pfctl que deve ser utilizado com a opção -f que define qual o arquvo ele deve carregar.

#pfctl -f /etc/pf.conf

Eu repeito muito o OpenBSD ate mesmo por causa do seu nativo ssh que é super seguro. O kernel é muito bem otimizado e muito tranquilo no seu processo de boot, mas acho que o projeto do FreeBSD tem ganhado muito mais adéptos por causa da sua praticidade ser muito próxima do Linux e tambem por causa da sua compatibilidade com o sistema do pinguim. Ja o FreeBSD podemos utilizar o ABI Linux ( linux compatibily = yes ), que nos permite compilar programas de Linux no fBSD dentro do diretorio /var/compat/linux , que possui uma distro praticamente instalada para a simulação perfeita. Bom, seja o FreeBSD, netBSD e o OpenBSD implementado na sua empresa, vc pode ter certeza que vc fez uma ótima opção.

Abraços;

Aprígio Simões
aprigio@linuxstudent.com.br

fev 28

Bonding no Linux

Comentários desativados

Bonding no Linux (ALTA DISPONIBILIDADE DOS LINKS)

Estive muitos dias sem escrever no meu blog porque estou envolvido em alguns projetos que provavelmente irei postar aqui algumas coisas interessantes para todos estudarem. Principalmente o que diz respeito a virtualização com XEN e integração com o exchange usando o postfix e o dovecot.

Mas hoje eu quero falar de BONDING no Linux, tantos em sistemas baseados em RHEL como o CentOS e em Debian como o Ubuntu. Para quem não conhece, bonding é a capacidade que temos de ter 2 links agregados a um único canal de dados que permite maior velocidade e disponibilidade dos links em uso de acordo com as normas IEEE 802.3ad OU IEEE 802.3.

Em uma distribuição Linux vamos precisar carregar o modulo bounding com os seus parametros que vai criar um adaptador de rede virtual chamado bounding que vai agregar os seus 2 adaptadores de rede, sendo um virtua ou ajato (poder), por exemplo ou um embratel (poder), e outro oi (eca/sux).

Entao vamos simular que vc possui o seguinte cenário:

eth0 -> 10.0.0.100 (embratel)

eth1 -> 10.0.0.200 (ajato)

ENTAO VAMOS CARREGAR O MODULO BONDING:

# modprobe bonding -o bound0 miimon=1000 mode=1

Essa linha carrega o módulo de bounding, define a velocidade da interface em 1000 e indica o modo de trabalho, no caso, o número 1 é referente ao modo backup.

ou apenas

#modprobe bonding

AO CARREGAR O MODULO bonding ele vai criar o bond0 sendo um dispositivo para bonding, o bond0.

Vamos zerar as interfaces de rede? Porque? Porque vamos colocar cada uma delas cujo onde esta funcionando seus links para ser escravo da placa bond0, ou seja toda informação de pacote que chega ou sai nas 2 placas de redes (eth0 ou eth1), será encaminhada para a placa bonding (ou bond0).

#ifconfig eth0 0.0.0.0

#ifconfig eth1 0.0.0.0

Entao vamos definir um enderecamento de IP para o bond0.

#ifconfig bond0 10.0.0.2 netmask 255.255.255.0 up

veja abaixo a saida de um ifconfig:

bond0  Encapsulamento do Link: Ethernet  Endereço de HW 00:19:B9:CC:D8:57
inet end.: 10.0.0.2  Bcast:10.0.0.255  Masc:255.255.255.0
UP BROADCASTRUNNING MASTER MULTICAST  MTU:1500  Métrica:1
RX packets:3667 errors:0 dropped:0 overruns:0 frame:0
TX packets:973 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:497097 (485.4 KiB)  TX bytes:150203 (146.6 KiB)

Próximo passo é definir a sua rota padrão como vc faz normalmente no seu Linux.

#route add default gw 10.0.0.1

(vale lembrar que em sistemas FreeBSD ou em outras versões do UNIX o parametro gw não deve ser colocado).

PROXIMO E ULTIMO PASSO é configurar como SLAVE as 2 outras placas de rede físicas onde estao fisicamente conectados links como do virtua, ajato, embratel, oi, e outros. Podemos utilizar o comando ifenslave que permite agregar 2 adaptadores em 1.

# ifenslave bond0 eth0   #(definimos que a eth0 será SLAVE da interface bond0)
# ifenslave bond0 eth1    #(definimos que a eth1 será SLAVE da interface bond0)

Pronto, ja esta funcionando, veja a saida do meu ifconfig:

# ifconfig
bond0      Encapsulamento do Link: Ethernet  Endereço de HW 00:19:B9:CC:D8:57
inet end.: 10.0.0.2 Bcast:10.0.0.255  Masc:255.255.255.0
UP BROADCASTRUNNING MASTER MULTICAST  MTU:1500  Métrica:1
RX packets:3667 errors:0 dropped:0 overruns:0 frame:0
TX packets:973 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:497097 (485.4 KiB)  TX bytes:150203 (146.6 KiB)

eth0       Encapsulamento do Link: Ethernet  Endereço de HW 00:19:B9:CC:D8:57
UP BROADCASTRUNNING SLAVE MULTICAST  MTU:1500  Métrica:1
RX packets:2383 errors:0 dropped:0 overruns:0 frame:0
TX packets:951 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:298041 (291.0 KiB)  TX bytes:148124 (144.6 KiB)
IRQ:169 Memória:f4000000-f4011100

eth1       Encapsulamento do Link: Ethernet  Endereço de HW 00:19:B9:CC:D8:57
UP BROADCASTRUNNING SLAVE MULTICAST  MTU:1500  Métrica:1
RX packets:1284 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:199056 (194.3 KiB)  TX bytes:2079 (2.0 KiB)
IRQ:169 Memória:f8000000-f8011100

Vc nunca deve esquecer de configurar no /etc/modprobe.conf para que o seu Linux sempre levante o determinado modulo e o seu dispositivo bond0. Apenas faça o seguinte:

#vi /etc/modprobe.conf (e adcione)

alias bond0 bonding
options bond0 miimon=1000 mode=1

NOTA: caso o seu dispositivo nao tenha funcionado com a taxa de velocidade mii adaptada somente para 1000 entao vc nem precisa colocar a segunda linha.

Em sistemas Debian não se esqueça de usar o arquivo /etc/network/interfaces para adcionar as informações dos adaptadores de rede voltados para o seu cenário utilizando o “up” na frente de cada comando. Não esquecer de configurar o hostname (opcional) .

Em sistemas baseados em Red Hat como o Fedora ou CentOS vc precisa editar a configuracao dos seguintes arquivos dentro de /etc/sysconfig/network-scripts/ LEMBRANDO QUE NO SUSE FICA EM /etc/sysconfig/network/

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.0.0
NETMASK=255.255.255.0
IPADDR=10.0.0.2
USERCTL=no
NOZEROCONF=yes (em caso de dhcp)

Ajustes as configurações das interfaces eth0 e eth1:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

Para exibir informações do dispositivo de acesso bond0 vc pode usar o proprio /proc do kernel. E então MONITORAR usando e combinando o comando com o watch -n 1.

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:19:b9:cc:d8:59

Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:19:b9:cc:d8:57

Lembre-se que vc pode usar normalmente o iproute2 no Debian /Ubuntu como no RHEL/SUSE para fazer tal operacao normalmente.

Nao devemos esquecer também que os adaptadores como vao ser escravo do bond0 entao o seu link deve estar funcionando para que tudo de certo. Caso nao, podemos utilizar no debian o post-up e no RHEL o arquivo de rotas e adcionar suas rotas com: route add -net REDE netmask MASCARA gw GATEWAY dev bond0, e tambem do outro adaptador.

Em alguns casos como no debian é bom remover o pacote dhcp3-server. Sendo que o mesmo pode junto ao network-manager ferrar toda a sua configuração.

# ip addr add 10.0.0.2/24 brd + dev bond0

# ip link set dev bond0 up

# ifenslave bond0 eth0 eth1

Falow galera: aprigio@linuxstudent.com.br

Tags 

 
preload preload preload
Wordpress advanced ticket system from l'autre monde