硬件/软件信息

硬件/软件信息

我一直在尝试使用 LTE 卡 (Sierra Wireless AirPrime EM7455) 作为 WAN 接口在笔记本电脑上设置虚拟路由器。

总结一下我的问题,LTE 卡在主机中工作,但当我将其转发到来宾虚拟机时,我无法上网。

硬件/软件信息

  • 笔记本电脑:运行 Debian 11.7 的 Lenovo Yoga 370 20JJ(运行 i3 的最小网络安装)
  • LTE 调制解调器卡:Sierra Wireless AirPrime EM7455
  • 虚拟化:KVM/QEMU/libvirt + virsh

在主机上

使用 ModemManager 且不使用 NetworkManager(出于偏好),我可以在主机中使用以下命令进行连接:

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 的 ping。相反,我只收到 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获取IPmmcli

--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 的不同版本

我在来宾中尝试过 Debian 11.7 和最新稳定的 Debian (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 集成

我尝试过使用 NetworkManager 与 ModemManager 集成。我安装了一个新的来宾(Debian 12),安装了 NetworkManager 并通过它设置了 GSM 连接。结果我得到了 IP、网关、DNS 服务器等,并且连接显示为“已连接”,但我仍然只收到 RX/TX 错误

防火墙

我已确保该功能nftables已被禁用。系统上不存在其他防火墙,除非有一些我不知道的有关 virsh 和网络的信息。

有人有主意吗?我是 ModemManager 和相关技术的新手。我希望我犯了一些致命的、基本的网络错误。

相关内容