【问题标题】:Virtual WiFi / 802.11 interface similar to VETH on Linux [closed]虚拟 WiFi / 802.11 接口类似于 Linux 上的 VETH [关闭]
【发布时间】:2016-01-10 13:37:52
【问题描述】:

我正在寻找一种在单个设备上设置纯虚拟(即没有实际信号)802.11 网络的方法 - 用于测试目的,以提供与此类似的功能:

  • 创建多个接入点接口(例如,ap0ap1..)
    • 设置它们的基本参数(ssid ...)
    • 在每一个上设置 dhcp 服务器,
    • 使用 shell 命令管理他们的信号强度 (iw?)
    • 允许加密管理(更改密码、加密方法等)
  • 创建单一接入点客户端接口 (wifi0),这将
    • 查看特定接入点(或所有接入点)
    • 允许我在 NetworkManager 等工具的帮助下连接到特定接口

实际上,它非常基本,看到 veth 驱动程序如何与 ip link 协同工作给了我很多希望。

iw 工具有可能吗?如果是这样 - 我该怎么做?

如果不是,如果我需要执行此操作,我通常会如何处理此问题?通过创建一个提供数据的假 wpa_supplicant 驱动程序?

我将不胜感激有关此事的任何提示和指示。

【问题讨论】:

    标签: linux virtual wireless


    【解决方案1】:

    我不能回答你所有的问题,但我可以给你一个提示。

    你可以使用iw来创建一个虚拟网络接口,但是要小心,因为你的wifi卡的驱动可能会受到厂商的限制。

    尝试使用以下命令检查“有效接口组合”(之前选择正确的“phy”):

    iw phy phy0 info
    

    并检查接口的最大数量和这些的组合。

    我不确定,但也许你可以直接使用 wpa_supplicant 创建一个虚拟接口(就像这个软件为 wi-fi direct 所做的那样)。 如果您需要有关 wpa_supplicant 的帮助,我建议您使用此邮件列表:http://lists.shmoo.com/pipermail/hostap/

    还有一个小例子。我使用了带有 Android 和 wpa_supplicant 的 Nexus 5。我为Android编译了iw,结果是:

    > iw phy phy0 info
    Supported interface modes:
                  * IBSS
                  * managed
                  * AP
                  * P2P-client
                  * P2P-GO
         software interface modes (can always be added):
         valid interface combinations:
                  * #{ managed } <= 2, #{ P2P-client, P2P-GO } <= 2, #{ IBSS } <= 1,
                    total <= 3, #channels <= 2
    
    
     >iw dev
         phy#0
         Interface p2p1
                 ifindex 24
                 type managed
         Interface wlan0
                 ifindex 21
                 type managed
         Interface p2p0
                 ifindex 20
                 type managed
    

    显然,如果您使用的是装有 linux 的 PC,则接口的数量可以更多。这是一款驱动有限的智能手机。

    最后,要小心,因为就像 wpa_supplicant 的创建者向我解释的那样,如果你想要一个完全支持 802.11 的 veth,你应该选择正确的类型,例如,使用驱动程序 nl80211 而不是带有 ip 链接的 macvtap。

    【讨论】:

      【解决方案2】:

      我尝试按照 Stefano Cappa 发布的提示进行操作,但运气不佳。我的界面一直报告No valid interface combinations,这表明我应该被卡住(但不是)。

      虚拟WIFI可以借助

      • mac80211_hwsim 内核模块
        • 模块可通过radios参数进行配置,表示虚拟物理卡的数量(phy#)。
        • 每个phy# 可以模拟一个独立的无线射频卡。
        • 每张phy# 卡都有一个关联的局域网接口 (wlan#)。
        • 模块还带来了一个hwsim# 接口,可用于监听所有无线卡之间发生的pseudo-wifi流量。
      • hostapd 能够将任何无线电(包括模拟无线电)变成接入点的工具,
      • wpa_supplicant 工具,可用于扫描该区域以查找接入点或连接到这些接入点。

      我最终想出了一个仅依赖于这三件事的解决方案(花了我一段时间,因为我正在尝试使用 Android 来实现)。这些工具将使用nl80211 驱动程序与伪硬件通信。

      我的简单配置文件如下所示:

      hostapd.conf(请注意,此文件的设置比要求的要多,但我在此处发布了我的所有设置)

      interface=wlan1
      driver=nl80211
      logger_syslog=-1
      logger_syslog_level=2
      logger_stdout=-1
      logger_stdout_level=2
      ctrl_interface_group=0
      ssid=Vamonos Pest
      country_code=US
      hw_mode=g
      channel=1
      beacon_int=100
      dtim_period=2
      max_num_sta=255
      rts_threshold=2347
      fragm_threshold=2346
      macaddr_acl=0
      auth_algs=3
      ignore_broadcast_ssid=0
      wmm_enabled=1
      wmm_ac_bk_cwmin=4
      wmm_ac_bk_cwmax=10
      wmm_ac_bk_aifs=7
      wmm_ac_bk_txop_limit=0
      wmm_ac_bk_acm=0
      wmm_ac_be_aifs=3
      wmm_ac_be_cwmin=4
      wmm_ac_be_cwmax=10
      wmm_ac_be_txop_limit=0
      wmm_ac_be_acm=0
      wmm_ac_vi_aifs=2
      wmm_ac_vi_cwmin=3
      wmm_ac_vi_cwmax=4
      wmm_ac_vi_txop_limit=94
      wmm_ac_vi_acm=0
      wmm_ac_vo_aifs=2
      wmm_ac_vo_cwmin=2
      wmm_ac_vo_cwmax=3
      wmm_ac_vo_txop_limit=47
      wmm_ac_vo_acm=0
      eapol_key_index_workaround=0
      eap_server=0
      own_ip_addr=127.0.0.1
      

      wpa_supplicant.conf

      network={
          ssid="Vamonos Pest"
          key_mgmt=NONE
          priority=16
      }
      

      终于推出了两个:

      hostapd -d hostapd.conf 
      wpa_supplicant -Dnl80211 -iwlan0 -d -csupplicant.conf
      

      成功了。 wpa_supplicant 能够扫描网络区域并找到所有虚拟 wifi 接入点。如果 hwsim 模块使用两个以上的无线电,则可以创建更多。从这里开始,剩下的就很简单了——在 wlan1 上启动 dhcp 服务器,在 wlan0 上启动 dhcp 客户端,然后你就完成了。

      【讨论】:

        猜你喜欢
        • 2021-06-30
        • 2016-03-23
        • 2010-11-06
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-08
        • 1970-01-01
        相关资源
        最近更新 更多