Huawei E3372s + Linux (Rasbian), problema de conexões entrantes

6

Eu tenho um sistema operacional baseado em Linux (Rasbian) rodando em Raspberry Pi 2+ e ele está usando o Huawei E3372s 4G / LTE USB Stick para conexão com a internet.

Todas as minhas conexões de saída funcionam perfeitamente (o modo USB da Huawei foi alterado usando usb_modeswitch-ruling e Udev / rules.d), mas não consigo receber nenhum tipo de conexão de entrada para o Raspi. A entrada simplesmente não está funcionando .

Eu não posso receber nenhum pacote ou conexão, que eu tenha rastreado em tempo real e de logs usando ferramentas fornecidas por distribuições de pacotes Raspbian.

Eu já confirmei com o meu provedor 4G que o serviço estendido que permite o tráfego bidirecional é habilitado, redefinido e muito do seu conhecimento, para minha assinatura 3G / 4G, funcionando perfeitamente do seu final, mas não consigo receber quaisquer pacotes com o Raspi.

O Huawei E3372s (diferente da maioria dos bastões antigos que usam discagem como wvdial ) usa o sistema de driver CDC_ETH que cria um dispositivo tipo ethernet para o sistema (ETH1 neste caso) e deve trabalhar neste caso na perfeição.

Limpei, criei novamente, testei, modifiquei, limpei novamente e executei todas as tarefas necessárias com o IPTables, verifiquei, modifiquei e testei o Route várias vezes, além de confirmar que não há sistemas de bloqueio conhecidos que impeçam a conexão por meio do Huawei USB-stick, mas ainda não consigo receber até mesmo Ping para o meu sistema, embora existam serviços totalmente funcionais em execução.

Também verifiquei áreas mais simples e diretas, como regras de permissão / negação de hosts e não tive sorte com elas. Não é o nome da APN porque todas as configurações com a configuração interna da Huawei foram definidas corretamente usando sua interface web.

No entanto, encontrei em algumas ocasiões de fóruns aleatórios, que a solução CDC_ETH da Huawei pode ter falhas no manuseio de conexões de entrada com o driver.

Neste momento, estou no nível desesperado de tentar descobrir porque não consigo receber ligações recebidas.

Se algum de vocês tem experiência com problemas de conexão de entrada Debian / Rasbian / Linux com Huawei E3372s ou produto USB 3G / 4G relativo que usam CDC_ETH e encontraram solução para este problema, quaisquer dicas e ajuda serão muito apreciadas.

    
por Janne Honkonen 03.07.2015 / 01:12

4 respostas

4

Você não precisa de uma atualização de firmware, mas precisa de um interruptor de modos, que você encontrou e um marcador, que você não encontrou. Os seguintes arquivos de configuração, tirados de material de redes de virtualização, virtualização e data center da NVDC podem funcionar imediatamente. Se não usar cada um como modelo e ajustar até começar a funcionar:

/etc/usb_modeswitch.conf

DefaultVendor=0x12d1
DefaultProduct=0x14fe

TargetVendor=  0x12d1
TargetProduct= 0x1506

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

/etc/wvdial.conf

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","internet.t-mobile.cz"
Stupid Mode = 1
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
Phone = *99***#
Modem = /dev/gsmmodem
Username = { }
Password = { }
Baud = 9600

Uso

  1. Crie um link de /dev/gsmmodem para /dev/ttyUSB2 , que é o modem.
  2. Disque o mundo exterior. Note que você deve fazer isso sempre:

    wvdial >/dev/null 2>&1 &
    
  3. Adicione o seguinte à área de script de inicialização local do seu sistema:

    MODEM_STORAGE="12d1:14fe"
    MODEM_MODEM="12d1:1506"
    
    # 0 = storage, 1= modem
    MODEM_MODE=0
    
    check_modem_mode () {
     echo -n "Checking modem presence... "
    
     lsusb | grep --quiet "$MODEM_STORAGE"
    
     if [ $? -eq 0 ]; then
      MODEM_MODE=0
      echo "OK: modem in mass storage mode"
     else
      lsusb | grep --quiet "$MODEM_MODEM"
      if [ $? -eq 0 ]; then
       MODEM_MODE=1
       echo "OK: modem in modem mode"
      else
       echo "ERROR: modem not found"
       exit 1
      fi
     fi
    }
    
    set_modem_mode () {
     while [ $MODEM_MODE -eq 0 ]
     do
      echo -n "Setting modem mode... "
      usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf     >/dev/null 2>&1
      lsusb | grep --quiet "$MODEM_MODEM"
      if [ $? -eq 0 ]; then
       MODEM_MODE=1
       echo "OK"
      else
       echo "FAILED"
      fi
     done
    }
    

Explicação

Como expliquei em um post anterior , um Modem GSM sempre tem duas ou mais partes, neste caso, 3 partes.

  • Uma área de armazenamento, semelhante a um dispositivo USB.
  • Um adaptador Ethernet sem fio para conectar vários dispositivos a ele.
  • Um discador de PPP, para que seu provedor de serviços sem fio saiba que você é um cliente pagante e pode cobrar por excedentes conforme necessário. Como você pode provar que é um cliente pagante, como o PPPoE exige autenticação, você pode usar o endereço IP negociado para acessar a Internet.

Os marcadores 1 e 2 são controlados pelo arquivo etc/modeswitch.conf config. 12d1 é o endereço MAC do fornecedor, por assim dizer. Usando o script local, o restante do endereço MAC é criado. 12:D1:14:FE , acaba sendo o dispositivo de armazenamento, e 12:D1:15:06 acaba sendo o modem. Se não estiver usando o script local, emita usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf

Nota: Por padrão, ou seja, sem o modo de alternância, o Linux só vê o dispositivo de armazenamento, e é por isso que o OP não pode ver ou usar o discador PPP ou o dispositivo sem fio .

Quando o modem é ligado usando o modo de modos, o wvdial , ou uma de suas muitas substituições, controla o acesso ao mundo exterior. Com o modem no Modem Mode, você finalmente verá uma saída similar a:

wwan0     Link encap:Ethernet  HWaddr 58:2c:80:13:93:13
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.83.249.176  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4265 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6699 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:506706 (494.8 KiB)  TX bytes:600991 (586.9 KiB)

ao emitir ifconfig

    
por 04.07.2015 / 20:12
1

Eu acho que isso é um problema NAT. Mesmo que o ISP não esteja ligando as conexões, a Huawei está usando NAT para a interface eth1 .

A Huawei tem basicamente dois modos:

  • hi-link , que usa NAT e fornece uma interface Ethernet.
  • non hi-link , onde o PPP ou NDIS é usado para conectar-se ao provedor de serviços móveis.

Existem muitos tutoriais sobre como mudar entre os dois modos, exibindo outro firmware. No entanto, como você pode bloquear seu modem durante esse processo, estou me abstendo de postar um link específico.

    
por 14.04.2016 / 15:47
1

No meu caso eu descobri que isso é o que eu preciso para a configuração usb_modeswitch

cat /etc/usb_modeswitch.d/huawei_e3372.conf 
# modeswitch config file for the huawei e3372

DefaultVendor=0x12d1
DefaultProduct=0x1f01

TargetVendor=  0x12d1
TargetProduct= 0x14dc

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

Com este comando para executar e fazer o modem funcionar.

sudo usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.d/huawei_e3372.conf
    
por 03.05.2017 / 12:15
0
sudo usb_modeswitch -v 12d1 -p 1f01 -V 12d1 -P 14DC -J 

-J, --huawei-new-mode apply a special procedure

Isso funciona para mim para mudar para o dispositivo de modem

lsub
Bus 001 Device 028: ID 12d1:14dc Huawei Technologies Co., Ltd. E33372 LTE/UMTS/GSM HiLink Modem/Networkcard

Do dispositivo de armazenamento em massa

Bus 001 Device 027: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)

Este é o sistema em que estou trabalhando

uname -a                                                                                                                                                                          
Linux aaron-pc 4.9.63-1-MANJARO #1 SMP PREEMPT Sat Nov 18 14:12:41 UTC 2017 x86_64 GNU/Linu
    
por 22.11.2017 / 23:32