하드웨어/소프트웨어 정보

하드웨어/소프트웨어 정보

저는 LTE 카드(Sierra Wireless AirPrime EM7455)를 WAN 인터페이스로 사용하여 노트북에 가상 라우터를 설정하려고 했습니다.

제 문제를 요약하자면, LTE 카드가 호스트에서는 작동하지만 게스트 VM으로 전달하면 온라인에 접속할 수 없습니다.

하드웨어/소프트웨어 정보

  • 노트북: Debian 11.7을 실행하는 Lenovo Yoga 370 20JJ(i3을 실행하는 최소 네트워크 설치)
  • LTE 모뎀 카드: Sierra Wireless AirPrime EM7455
  • 가상화: KVM/QEMU/libvirt + virsh

호스트에서

NetworkManager를 사용하지 않고(선호하지 않음) ModemManager를 사용하면 호스트 시스템에서 다음 명령을 사용하여 연결할 수 있습니다.

mmcli -m 0 --enable
mmcli -m 0 --simple-connect="user=3,apn=data.tre.se,ip-type=ipv4"

그런 다음 다음과 같이 네트워크를 수동으로 구성합니다.

ip link set wwan0 up
ip addr add [IP/PREFIX] dev wwan0
ip link set dev wwan0 arp off
ip link set dev wwan0 mtu [MTU]
ip route add default dev wwan0 metric 200

연결을 설정할 수 있습니다. 똑같이 효과적입니다. 인터넷 등을 검색할 수 있어요.

손님 중에

게스트에서는 포워딩 LTE 모뎀(USB 장치로 표시됨)을 사용하고 있습니다 virsh attach-device. 호스트 시스템에서 사용되는 위 명령을 복사하면 인터넷에 연결할 수 없습니다. 게이트웨이 IP에 대한 핑을 포함하여 어떤 패킷에도 응답이 없습니다. 대신 TX 및 RX 오류만 발생합니다.

user@modem:~$ ip -c -s link show wwan0
3: wwan0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 66:24:85:3c:8e:fb brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast           
             0       0  20621       0       0       0 
    TX:  bytes packets errors dropped carrier collsns           
             0       0      9       0       0       0

그런데 나에게 가장 이상한 점은그래요할 수 있었다:

1. APN을 통해 IP 획득mmcli

--simple-connect게스트에서 명령을 실행하면 호스팅 설정이 나타나고 모뎀이 "연결됨"으로 표시됩니다. 모뎀 정보와 베어러 정보의 출력을 별도로 봅니다.

$ sudo mmcli -m 0
  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: [REDACTED]
  --------------------------------
  Hardware |         manufacturer: Sierra Wireless, Incorporated
           |                model: Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
           |    firmware revision: SWI9X30C_02.33.03.00
           |       carrier config: default
           |         h/w revision: EM7455
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: [REDACTED]
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:05.7/usb1/1-4
           |              drivers: cdc_mbim
           |               plugin: sierra
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (mbim), wwan0 (net)
  --------------------------------
  Status   |                 lock: sim-pin2
           |       unlock retries: sim-pin2 (3)
           |                state: connected
           |          power state: on
           |          access tech: lte
           |       signal quality: 74% (recent)
  --------------------------------
  Modes    |            supported: allowed: 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 3g, 4g; preferred: 4g
           |                       allowed: 3g, 4g; preferred: 3g
           |              current: allowed: 3g, 4g; preferred: 4g
  --------------------------------
  Bands    |            supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, 
           |                       eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                       eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-41
           |              current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, 
           |                       eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, 
           |                       eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-41
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: [REDACTED]
           |        enabled locks: fixed-dialing
           |          operator id: 24002
           |        operator name: hallon
           |         registration: home
           | packet service state: attached
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |       sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                       slot 2: none
  --------------------------------
  Bearer   |                paths: /org/freedesktop/ModemManager1/Bearer/0
$ sudo mmcli -m 0 -b 0
  ------------------------------------
  General            |           path: /org/freedesktop/ModemManager1/Bearer/0
                     |           type: default
  ------------------------------------
  Status             |      connected: yes
                     |      suspended: no
                     |    multiplexed: no
                     |      interface: wwan0
                     |     ip timeout: 20
  ------------------------------------
  Properties         |            apn: data.tre.se
                     |        roaming: allowed
                     |        ip type: ipv4
                     |           user: 3
  ------------------------------------
  IPv4 configuration |         method: static
                     |        address: A.B.C.58
                     |         prefix: 30
                     |        gateway: A.B.C.57
                     |            dns: 80.251.201.178, 80.251.201.177
                     |            mtu: 1500
  ------------------------------------
  Statistics         |     start date: 2023-08-11T10:16:31Z
                     |       duration: 30
                     |   uplink-speed: 50000000
                     | downlink-speed: 300000000
                     |       attempts: 1
                     | total-duration: 30

(일부 정보가 삭제되었습니다)

2. 다음을 통해 손님의 문자 메시지를 내 휴대폰으로 보낼 수도 있습니다.mmcli

나에게 문제는 모뎀이 셀 타워에 연결되는 것이 아니라 내 네트워크 구성이나 하드웨어가 가상 머신으로 전달하는 방식에 더 제한됩니다. 어쩌면 펌웨어 문제일까요?

문제 해결을 시도해보세요

ModemManager와 Debian의 다양한 버전

나는 게스트에서 데비안 11.7과 최신 안정 데비안(12.X)을 사용해 보았습니다. ModemManager의 다양한 버전(각각 1.14.12 및 1.20.4)이 함께 제공됩니다. 눈에 띄는 차이는 없습니다. 내 호스트는 Debian 11.7 mmcli 1.14를 실행하고 있지만 Debian 12에서 오류가 발생하면 다음을 실행해야 했습니다.

$ mmcli -m 0 -e
error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Retry: Invalid transition'

$ sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

NetworkManager 및 ModemManager 통합

ModemManager와 통합된 NetworkManager를 사용해 보았습니다. 새 게스트(Debian 12)를 설치하고 NetworkManager를 설치한 후 이를 통해 GSM 연결을 설정했습니다. 결과적으로 IP, 게이트웨이, DNS 서버 등을 얻었고 연결은 "연결됨"으로 표시되지만 여전히 RX/TX 오류만 나타납니다.

방화벽

해당 기능이 비활성화되어 있는지 확인했습니다 nftables. 내가 모르는 virsh 및 네트워킹에 관한 내용이 없으면 시스템에 다른 방화벽이 존재하지 않습니다.

누구든지 아이디어가 있나요? 저는 ModemManager 및 관련 기술을 처음 사용합니다. 제가 치명적이고 기본적인 네트워킹 실수를 저지르고 있기를 바랍니다.

관련 정보