Monthly Archives: outubro 2015

Suporte a VLAN Trunk em Servidores Linux

redhat_tux
Segue um post de um blog que sigo e tem muita coisa boa também, tem foco cisco mas também várias infos linux, se você como eu segregou sua rede interna com voz/dados/cameras etc essa dica vai te ajudar no dia dia 🙂
Tradicionalmente utilizamos switches multi-layer ou roteadores quando precisamos fazer o roteamento inter-VLAN em ambientes que possuem múltiplas VLANs associadas com suas respectivas sub-redes, uma vez que essas caixas especializadas oferecem suporte nativo ao encapsulamento 802.1q (trunk). Em um dos artigos mais lidos do blog, intitulado “Configuração de Switch Multi-Layer”, explico ao leitor como configurar um switch Cisco para essa finalidade, através da criação de interfaces virtuais vinculadas às suas VLANs, de maneira que essas interfaces podem ser configuradas com um IP que será o gateway de todas as máquinas membros da respectiva VLAN.

Essa mesma tarefa pode ser configurada em um servidor Linux, por isso a topologia apresentada abaixo será utilizada para exemplificar o processo de configuração de roteamento inter-VLAN no Linux. Assim como nos artigos anteriores, estou considerando que o roteador Linux está instalado com a distribuição Debian GNU/Linux (ou seus derivados, como o Ubuntu).

A primeira etapa consiste na instalação do pacote denominado vlan para que, posteriormente, as configurações de rede do Linux ofereçam suporte à criação de interfaces lógicas roteadas (layer-3) do tipo VLAN. Essa tarefa é simples e rápida através do APT:

apt-get install vlan

Agora basta editar o arquivo de configuração das interfaces de rede que fica localizado em “/etc/network/interfaces”. A partir da interface física eth0 (trunk 802.1q), criaremos duas novas interfaces lógicas denominadas eth0.100 (vlan100) e eth0.200 (vlan200).

###— em /etc/network/interfaces

auto eth0
iface eth0 inet manual

   auto eth0.100
   iface eth0.100 inet static
      address 192.168.100.254
      netmask 255.255.255.0

   auto eth0.200
   iface eth0.200 inet static
      address 192.168.200.254
      netmask 255.255.255.0

Na sintaxe eth0.100 fazemos referência à interface física antes do ponto e, depois do ponto, fazemos referência ao número da VLAN vinculada à interface. É somente depois da instalação do pacote vlan que o Linux passa a reconhecer essa sintaxe. Uma alternativa válida seria utilizar uma convenção diferente de nomes em que fazemos referência direta à VLAN na denominação da interface em conjunto com o parâmetro vlan-raw-device para associá-la a sua respectiva VLAN. O exemplo abaixo traz a mesma configuração anterior com essa sintaxe alternativa:

###— em /etc/network/interfaces

auto eth0
iface eth0 inet manual

auto vlan100
iface vlan100 inet static
   vlan-raw-device eth0
   address 192.168.100.254
   netmask 255.255.255.0

auto vlan200
iface vlan200 inet static
   vlan-raw-device eth0
   address 192.168.200.254
   netmask 255.255.255.0

Como o Linux não permite o roteamento entre sub-redes por padrão, é necessário instruir seu kernel a fazê-lo por meio de um dos comandos abaixos, lembrando que a primeira opção é volátil, ou seja, será perdida em caso de boot, enquanto que a segunda opção é persistente:

opção 1) echo “1” > /proc/sys/net/ipv4/ip_forward
opção 2) sysctl -w net.ipv4.ip_forward=1

Obs.: Vale ressaltar que as interfaces lógicas do tipo VLAN são diferentes das tradicionais sub-interfaces lógicas vinculadas às interfaces físicas. A criação de sub-interfaces lógicas é uma técnica simples de virtualização de interfaces físicas nativamente reconhecida pelo Linux, procedimento realizado através da sintaxe ethX:X. Por outro lado, o Linux torna-se capaz de interpretar cabeçalhos 802.1q (trunk) quando utilizamos o pacote vlan para criar interfaces lógicas roteadas do tipo VLAN (sintaxe ethX.X).

Façam seus testes…
Samuel.
Fonte: http://labcisco.blogspot.com.br/2015/07/suporte-vlan-trunk-em-servidores-linux.html

Instalando o Asterisk com suporte a MFC/R2

tux-viking

Fonte na época 2010 http://www.asteriskforum.com.br/

Inclusive vejam bem que deve ter algo mais atualizado já de driver no google, mas a instalação é igual, eu não apanho muito com isso mas vejo vários amigos apanhando, cara se puder use ISDN sério, muda sua vida ehehhehe

 

O Asterisk originalmente não possui suporte a sinalização, utilizada em mais de 90% dos troncos digitais no Brasil, o MFC/R2. Neste tutorial você aprenderá como instalar o Asterisk com suporte a esta sinalização.

Introdução

Há muito pouco tempo atrás, MFC/R2 e Asterisk na mesma frase certamente significava ter que apelar para soluções proprietárias ou usar o Unicall, que nem sempre funcionava bem.Hoje em dia, graças à boa vontade do Moisés Silva, temos suporte nativo ao MFC/R2 no Asterisk. Isso significa que podemos utilizar MFC/R2 em qualquer placa ou dispositivo que seja suportado pelo Zaptel/DAHDI. Nesse tutorial vamos mostrar, passo a passo, a instalação do Asterisk com suporte nativo ao MFC/R2, utilizando o Zaptel. Para utilizar o DAHDI, as adaptações são muito poucas e absolutamente triviais.

Neste tutorial assumo que você está utilizando o Debian. Para outras distribuições Linux o nome dos pacotes das dependências podem ser diferentes.

Dependências

Você vai precisar dos seguintes pacotes:

  • linux-headers (do seu kernel atual)
  • libssl-dev
  • libncurses-dev
  • libtonezone-dev
  • build-essential
  • libnewt-dev
  • autoconf
  • automake
  • subversion
  • fxload*
  • libusb-dev*
  • libhid-dev*

* Estes últimos três somente se você possui um dispositivo Xorcom Astribank.

Instalando os pacotes:

# aptitude install linux-headers-uname -r libssl-dev libncurses-dev libtonezone-dev build-essential libnewt-dev autoconf automake fxload libusb-dev libhid-dev subversion

Asterisk, Zaptel, libopenr2 e libpri

A partir do diretório /usr/src, dispare os seguintes comandos:

# wget http://openr2.googlecode.com/files/openr2-1.1.0.tar.gz
# wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz
# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz
# svn checkout http://svn.digium.com/svn/asterisk/team/moy/mfcr2-1.4 asterisk-1.4-mfcr2

A libpri não é realmente necessária, mas é realmente legal possuir um PBX que pode alternar entre PRI (ISDN) e MFC/R2 somente alterando a configuração, não é mesmo? 😉

Agora vamos instalar isso tudo:

# tar zxvf openr2-1.1.0.tar.gz
# cd openr2-1.1.0
# ./configure –prefix=/usr
# make
# make install
# cd..

# tar zxvf libpri-1.4.9.tar.gz
# cd libpri-1.4.9.tar.gz
# make
# make install
# cd ..

# tar zxvf zaptel-1.4.12.1.tar.gz
# cd zaptel-1.4.12.1
# ./configure
# make
# make install
# make config
# cd..

# cd asterisk-1.4-mfcr2
# ./bootstrap.sh
# ./configure
# make
# make install
# make config
# make samples

Configuração

Agora finalmente vem a parte divertida: colocar tudo pra funcionar! Essa é a configuração que eu tenho rodando em máquinas de produção:/etc/zaptel.conf:

span=1,1,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101
dchan=16
vi /etc/asterisk/zapata.conf:
signalling=mfcr2
mfcr2_variant=br
mfcr2_get_ani_first=no
mfcr2_max_ani=20
mfcr2_max_dnis=4
mfcr2_category=national_subscriber
mfcr2_logdir=span1
mfcr2_call_files=yes
mfcr2_logging=all
mfcr2_mfback_timeout=-1
mfcr2_metering_pulse_timeout=-1
mfcr2_allow_collect_calls=yes
mfcr2_double_answer=no
mfcr2_immediate_accept=yes
mfcr2_forced_release=no
mfcr2_charge_calls=yes
language=pt_BR
echocancel=256
echocancelwhenbridged=no
context=e1
group=1
channel =>1-15,17-31
Não esqueça de reiniciar o Zaptel e o Asterisk após as alterações. Para testar se tudo está funcionando:# asterisk -R
Asterisk 1.4.22, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
=========================================================================
Connected to Asterisk 1.4.22 currently running on pabx (pid = 25728)
Verbosity is at least 3
pabx*CLI> mfcr2 show channels
Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS