AirOS Configurando vários SSIDs no mesmo equipamento

Share Button

English title: AirOs (ubiquiti) Configuring multiple SSIDs in the same device

A algum tempo atras publiquei um artigo AQUI mostrando como configurar vários SSIDs em um equipamento rodando AirOS da Ubiquiti. Porem após a versão 5 do AirOS não é mais possível criar esse SSIDs da mesma maneira, sendo assim irei demostrar uma maneira diferente porem mais simples para isso.

Inicialmente editaremos o arquivo /etc/persistent/rc.poststart

#vi /etc/persistent/rc.poststart

Insira as seguintes linhas

ssid="YOUR-SSID";
wlanconfig ath create wlandev wifi0 wlanmode ap
iwconfig ath1 essid "$ssid"
brctl addif br0 ath1
ifconfig ath1 up

Na variável ssid deve ser configurada conforme o SSID a ser configurado.

Após a configuração é necessário salvar a configuração para que após o boot do dispositivo as configurações funcionem.

Use o comando.

#cfgmtd -w -p /etc/;

Pronto agora é necessário um reboot no equipamento.

#reboot

Filtro para PPPOE – APC-5M Intelbras / Deliberant

Share Button

English title: How to do PPPOE filter in Deliberant APC radios

Recentemente testando equipamentos da linha APC-5M Intelbras tive a necessidade de criar filtros de protocolo, no meu caso como utilizo somente PPPOE filtro todos os outros protocolos e deixo passar somente o protocolo PPPOE-DISCOVERY e PPPOE-SESSION.
Lembrando que desta mesma maneira é possível realizar qualquer filtro na camada 2 utilizando EBTABLES. Os comando servem para qualquer radio da linha APC Intelbras ou Deliberant.

Acesse o radio via ssh

#ssh 192.168.2.66 -l admin

Após o login é necessário acessar o modo shell para que possamos editar os arquivos de configuração

FIRM-5.94>shell

Para isso é necessário editar o aquivo /tmp/system.cfg.

#vi /tmp/system.cfg

Insira as seguintes linhas no final do aquivo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# @customConfigStart
ebtables.status = enabled
ebtables.rule.4.chain=FORWARD
ebtables.rule.4.protocol=0x8863
ebtables.rule.4.status=enabled
ebtables.rule.4.table=filter
ebtables.rule.4.target=ACCEPT
ebtables.rule.5.chain=FORWARD
ebtables.rule.5.protocol=0x8864
ebtables.rule.5.status=enabled
ebtables.rule.5.table=filter
ebtables.rule.5.target=ACCEPT
ebtables.filter.FORWARD.policy=DROP
# @customConfigStop

E para finalizar salve o arquivo com o comando.

#sysconf -w

Pronto agora é só reiniciar o equipamento para que as alterações sejam executadas.

CALCULANDO SUBNETS IPv6 COM SIPCALC

Share Button

Muito se tem falado em IPv6 com o esgotamento do IPv4. Para muitos o IPv6 ainda é um grande enigma pelo fato de ser “novo” e a primeira vista bem diferente do IPv4.

Para auxiliar a calcular sub-redes em IPv6 recentemente conheci uma ferramente que achei muito interessante, e particularmente a adotei para meus estudos e para meu dia a dia no trabalho.

O sipcalc é um projeto livre sobre licença GPL/BSD, que pode ser instalado na maioria dos sistemas operacionais derivados do UNIX, sua versão atual do pacote é 1.1.6.

Você poderá baixar o sipcalc AQUI ou instala-lo via apt-get em sistemas debian com o comando:

#apt-get install sipcalc.

Além do sipcalc também realizar calculo de subnet IPv4 como o conhecido ipcalc ele também disponibiliza de cálculos em IPv6.

Opções para IPv6:

IPv6 options:
  -e, --v4inv6			IPv4 compatible IPv6 information.
  -r, --v6rev			IPv6 reverse DNS output.
  -S, --v6split=MASK		Split the current network into subnets
				of MASK size.
  -t, --v6-standard		Standard IPv6. (default)

Visualizando uma classe IPv6

root@jorge:/home/jorge# sipcalc 2001:0DB8::/32 
-[ipv6 : 2001:0DB8::/32] - 0

[IPV6 INFO]
Expanded Address	- 2001:0db8:0000:0000:0000:0000:0000:0000
Compressed address	- 2001:db8::
Subnet prefix (masked)	- 2001:db8:0:0:0:0:0:0/32
Address ID (masked)	- 0:0:0:0:0:0:0:0/32
Prefix address		- ffff:ffff:0:0:0:0:0:0
Prefix length		- 32
Address type		- Aggregatable Global Unicast Addresses
Network range		- 2001:0db8:0000:0000:0000:0000:0000:0000 -
			  2001:0db8:ffff:ffff:ffff:ffff:ffff:ffff

-
root@jorge:/home/jorge#

Dividindo uma classe IPv6

root@jorge:/home/jorge# sipcalc -S /33 2001:0DB8::/32 
-[ipv6 : 2001:0DB8::/32] - 0

[Split network]
Network			- 2001:0db8:0000:0000:0000:0000:0000:0000 -
			  2001:0db8:7fff:ffff:ffff:ffff:ffff:ffff
Network			- 2001:0db8:8000:0000:0000:0000:0000:0000 -
			  2001:0db8:ffff:ffff:ffff:ffff:ffff:ffff

-
root@jorge:/home/jorge#

Com a opção -S podemos subdividir nossa classe /32 em quantas classes forem necessárias, vejamos o exemplo abaixo:

root@jorge:/home/jorge# sipcalc -S /64 2001:0DB8::/32
-[ipv6 : 2001:0DB8::/32] - 0

[Split network]
Network			- 2001:0db8:0000:0000:0000:0000:0000:0000 -
			  2001:0db8:0000:0000:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0001:0000:0000:0000:0000 -
			  2001:0db8:0000:0001:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0002:0000:0000:0000:0000 -
			  2001:0db8:0000:0002:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0003:0000:0000:0000:0000 -
			  2001:0db8:0000:0003:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0004:0000:0000:0000:0000 -
			  2001:0db8:0000:0004:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0005:0000:0000:0000:0000 -
			  2001:0db8:0000:0005:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0006:0000:0000:0000:0000 -
			  2001:0db8:0000:0006:ffff:ffff:ffff:ffff
Network			- 2001:0db8:0000:0007:0000:0000:0000:0000 -
			  2001:0db8:0000:0007:ffff:ffff:ffff:ffff

Nesse caso teremos mais de 65 mil classes possíveis contendo mais de 4 Bilhoẽs de endereços ao todo, ou seja um IPv4 todo.

Com esses resultados conseguimos visualizar onde a rede se inicia e termina, lembrando que no IPv6 não existe porção de rede e porção de host.

Podemos também gerar endereços para DNS reverso da seguinte maneira.

root@jorge:/home/jorge# sipcalc -r 2001:0DB8::/32
-[ipv6 : 2001:0DB8::/32] - 0

[IPV6 DNS]
Reverse DNS (ip6.arpa)	-
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.

-
root@jorge:/home/jorge#

O sipcalc também disponibiliza opção para integração IPv4 com IPv6 em casos de utilização de tuneis 6to4.

root@jorge:/home/jorge# sipcalc -e 2001:0DB8:: 
-[ipv6 : 2001:0DB8::] - 0

[V4INV6]
Expanded v4inv6 address	- 2001:0db8:0000:0000:0000:0000:0.0.0.0
Compr. v4inv6 address	- 2001:db8::0.0.0.0

-
root@jorge:/home/jorge#

Mais sobre o projeto SIPCALC AQUI

Também não deixe de ler ESSE artigo sobre endereçamento IPv6 disponibilizado pelo ipv6.br

Script – Backup de VMs no XEN / XCP com Shell Script

Share Button

Esse script faz backup das VMs sem necessidade de reboot ou shutdown, permitindo um backup sem a queda do servidor.

O backup consiste em:
-Procurar cada VM pegando seu LABEL e UUID
-Criar um Snapshot
-Exportar o snapshot como uma VM .xva
-Apagar o snapshot criado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

#Destino onde ficara guardado o backup
dir="/mnt/usb/";
#Quantidade de cópias diárias que o backup deve permanecer na unidade.
dias=5;
 
#Pegando nomes das maquinas
uuids=$(xe vm-list is-control-domain=false is-a-snapshot=false power-state=running | grep "uuid" | awk '{ print $'5'}');
labels=$(xe vm-list is-control-domain=false is-a-snapshot=false power-state=running | grep "name-label" | awk '{ print $'4' $'5' $'6' $'7' $'8' $'9' $'10'}');
qvms=$(echo "$uuids" | wc -l);
 
#Loop para backup de cada VM
for i in `seq 1 $qvms`
do
uid=$(echo $uuids | awk '{ print $'$i'}');
label=$(echo $labels | awk '{ print $'$i'}');
 
nuid=$(xe vm-snapshot uuid=$uid new-name-label=$label-backup)
xe template-param-set is-a-template=false ha-always-run=false uuid=$nuid
xe vm-export vm=$nuid filename=$dir$label-backup.xva
xe vm-uninstall uuid=$nuid force=true
 
done
 
#Apagando arquivos mais antigos que a variável (dias)
find /mnt/usb/ -ctime +$dias -name "*.xva" -exec rm -rvf {} \;

Como importar a vm?
xe vm-import filename=nome-do-arquivo.xva sr-uuid=UUDI-DE-SEU-SR

Adicionando VLANs para gerencia no AirOs – Ubiquiti

Share Button

É muito comum a utilização de equipamentos Ubiquiti em redes com VLAN, e mesmo o equipamento possuindo uma interface WEB que disponibilize a criação de VLANs e atribuição de IPs, não é possível por essa interface inserirmos uma VLAN apenas para gerencia sem que o trafego seja tagueado.

Utilizo muito essa configuração para passar o trafego entre dois switches usando portas trunk, ou simplesmente para ter uma interface separada no equipamento apenas para gerencia.

Vejá o diagrama ilustrativo dessa utilização.
Diagrama2

Para isso incluo um script dentro do arquivo /etc/persistent/rc.poststart.

Para isso é necessário inicialmente configurar um IP qualquer no equipamento, podendo até ser o IP default, pois a interface WEB não aceita ter os campos IP GW e Mascara em branco. Feito isso basta alterar os dados do script abaixo conforme sua necessidade acessar o equipamento por ssh e colar o script no terminal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
echo "#------------CONFIGURACAO DAS VARIAVEIS----------------
 
VLAN="100"
IP="10.10.10.100"
MASC="255.255.255.0"
GW_NEW="10.10.10.254"
#-------------CONFIGURACAO DO GATEWAY ANTIGO-----------
GW_OLD="192.168.1.2" #aqui é necessário colocar o mesmo gateway que foi inserido na interface web
 
 
#----------------CONFIGURANDO VLANS--------------------
vconfig add br0 \$VLAN
ifconfig br0.\$VLAN \$IP netmask \$MASC
route del default gw \$GW_OLD
route add default gw \$GW_NEW" > /etc/persistent/rc.poststart;
cfgmtd -w -p /etc/;

Feito todos esses procedimento é apenas necessário dar um reboot no equipamento, preferencialmente a partir do terminal, já que você estará conectado a ele.