Configurando roteador com USB 3G

Procurei na net uma solução fácil para levantar automaticamente um usbstick 3G GSM ZTE quando eu tivesse perda de internet no cabo NET. Posto aqui a solução final que atendeu a necessidade.

[ Hits: 9.486 ]

Por: ismaelteodoro em 16/03/2011


3G VIVO ZTE MF636 automático



No meu caso, quando ficamos sem sinal da NET colocamos o chaveiro 3G na porta USB do roteador e o mesmo passa a compartilhar internet com outros micros.

Dados do roteador:

Linux net-server 2.6.34-gentoo-r6 #13 SMP Fri Feb 25 18:45:39 Local time zone must be set–see zic x86_64 Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz GenuineIntel GNU/Linux


Dados do chaveiro via dmesg:

[217474.944179] usb 1-5: New USB device found, idVendor=19d2, idProduct=0031
[217474.944181] usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[217474.944184] usb 1-5: Product: ZTE CDMA Technologies MSM
[217474.944186] usb 1-5: Manufacturer: ZTE,Incorporated
...
[217474.946444] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB2


Automatizando a configuração e discagem:

Foi criado o arquivo em /etc/udev/rules.d/10-local.rules com o seguinte conteúdo:

# cat /etc/udev/rules.d/10-local.rules

KERNEL=="ttyUSB2", ACTION=="add|change", RUN+="/root/3g-config-start" KERNEL=="ttyUSB2", ACTION=="remove", RUN+="/root/3g-config-stop"

Esta dica foi acessada dia 28/02/2011 do seguinte site:
Com isso quando o chaveiro 3G é espetado na usb e o kernel cria a entrada /dev/ttyUSB2, o arquivo 3g-config-start é chamado. Lembre-se que o kernel deve estar devidamente configurado para reconhecer o hardware novo.

Conteúdo do arquivo 3g-config-start:

# cat /root/3g-config-start

#!/bin/bash
/etc/init.d/net.wan0 stop
/etc/init.d/net.ppp0 start
/usr/bin/wvdial 3g &
/bin/echo "wvdial subindo"
/etc/init.d/squid restart

Este arquivo para a NET cabo e sobe a interface ppp0, depois disca com o wvdial e reinicia o Squid.

Segue a configuração do /etc/conf.d/net:

# cat /etc/conf.d/net

# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!)
config_wan0=( "dhcp" )
config_wan1=( "dhcp" )
config_lan0=( "192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" )
# DNS servers line is only needed if your default servers are slow
# These servers below are from OpenDNS
# dns_servers_ppp0=" '8.8.8.8' '8.8.4.4' "
config_ppp0="ppp"
link_ppp0"=/dev/ttyUSB0"
# plugins_ppp0=""
username_ppp0="vivo"
password_ppp0="vivo"
pppd_ppp0="lock defaultroute noipdefault noauth usepeerdns 460800"
phone_number_ppp0="*99#"
chat_ppp0="
'ABORT' 'BUSY'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'TIMEOUT' '5'
" 'ATZ'
# 'OK' 'AT+CPIN?'
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2'
# 'READY-AT+CPIN=1234-OK' "
# 'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'#8242;
'OK' 'AT+CGDCONT=1,\"IP\",\"zap.vivo.com.br\"'
'OK' 'ATDT\T'
'CONNECT' "
# '~' "

Segue a configuração do wvdial 3g:

# cat /etc/wvdial.conf

[Dialer 3g]
Modem = /dev/ttyUSB2
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
ISDN = 0
Modem Type = Analog Modem

Entao, quando achamos que a NET voltou basta a retirarmos o chaveiro da USB que ele levanta a interface do cabo novamente.

Segue o conteúdo do arquivo 3g-config-stop:

# cat /root/3g-config-stop

#!/bin/bash
/usr/bin/killall -15 wvdial
/etc/init.d/net.ppp0 stop
/etc/init.d/net.wan0 start
/etc/init.d/squid restart

Fiz todos os testes e funcionou perfeitamente em aproximadamente 1 minuto e 30 segundos para fazer o chaveamento. Espero poder contribuir para aqueles que precisam apenas colocar net alternativa em casos raros.

Se você quiser fazer isso de modo constante, ou seja, trabalhar com duas ou mais entradas de internet: Estude balanceamento de link.

Abraço e bom divertimento.

   

Páginas do artigo
   1. 3G VIVO ZTE MF636 automático
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Balanceamento de carga e alta disponibilidade com Bonding Driver e Iproute2

Comportamento das tecnologias WEB e seus meios de acesso

ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

Replicação e balanceamento de carga em servidores usando DNS

Configurando um servidor DNS rápido e fácil

  
Comentários
[1] Comentário enviado por removido em 16/03/2011 - 16:43h

troque a linha:

"/etc/init.d/squid restart"

por

"squid -k reconfigure"


que assume as modificações on-the-fly...


[2] Comentário enviado por julio_hoffimann em 16/03/2011 - 19:27h

Oi Ismael,

Parabéns pela contribuição, é assim que se faz! Encontramos um problema, achamos uma solução e a compartilhamos.

Viva o Linux!

[3] Comentário enviado por mcnd2 em 20/03/2011 - 18:12h

Concerteza problemas são para ser resolvidos. As vezes a solução do problema é ocacionada com o aprendizado de outra.

Parabéns pelo artigo.

Eu tenho internet 'via rádio' aqui.
Um amigo meu já fez uma configuração no roteador para distribuir a conexão para o desk e note (via wireless), mas o mesmo teve problema que nenhum sistema operacional foi capaz de se conectar.
Chamei o suporte da empresa via rádio mais não disse o que tinha feito e eles me disseram que din ha zerado a configuração do modem.
Eu não entendi nada, mais ele depois deixaram funcionando.
Agora vou eu tentar aprender a fazer a configuração do roteador, pois nunca fiz e ver se deixo a minha net compartilhada.

Abraço...

[4] Comentário enviado por ismaelteodoro em 23/03/2011 - 14:52h

Grato a todos e muito obrigado ACVSilva
vou testar esse comando.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts