惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
GbyAI
GbyAI
B
Blog RSS Feed
H
Help Net Security
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Cloudflare Blog
Security Latest
Security Latest
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
P
Privacy & Cybersecurity Law Blog
J
Java Code Geeks
博客园 - 【当耐特】
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threatpost
Schneier on Security
Schneier on Security
T
Tenable Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Latest news
Latest news
P
Proofpoint News Feed
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Know Your Adversary
Know Your Adversary
W
WeLiveSecurity
G
GRAHAM CLULEY
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
博客园_首页
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threat Research - Cisco Blogs
T
Tor Project blog
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
月光博客
月光博客

轶哥博客

blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog
blog
2021-03-02 · via 轶哥博客

通过给ESXi宿主机安装USB驱动,可以实现兼容虚拟机无法驱动的硬件。如果虚拟机本身已经兼容了该硬件,可以参考《ESXI+爱快+OpenWRT 使用2.5G USB网卡 RTL8156》设置USB芯片组直通,获得更好的性能体验。

驱动下载地址: https://flings.vmware.com/usb-network-native-driver-for-esxi

注: 根据官网说明,flings是实验性的,不应该用于生产环境。

支持的ESXi版本:6.5.0,6.7.0,7.0.0,7.0.1。建议升级到ESXi 7.0 Update 1以获得最佳体验(参考《ESXi 7.0.0 升级到 ESXi 7.0 Update 1》)。低版本可能导致重启后USB网卡无法正常工作且无法恢复。

Linux系统参考《Linux 2.5G USB网卡驱动安装RTL8156/8156B》。

支持的网卡型号

  • ASIX USB 2.0千兆网络ASIX88178a
  • ASIX USB 3.0千兆网络ASIX88179
  • Realtek USB 3.0千兆网络RTL8152 / RTL8153
  • Aquantia AQC111U

具体支持的型号远不止以上列出的。根据Realtek官网给出的RTL8152 USB NIC驱动,可以看到RTL8156也是被支持的(在绿联2.5G usb网卡实测通过)。可以确定兼容型号:

  • RTL8150
  • RTL8152 / RTL8152B (10/100M Fast Ethernet > USB 2.0)
  • RTL8154 / RTL8154B (10/100/1000M Gigabit Ethernet > USB 2.0)
  • RTL8153 / RTL8153B (10/100/1000M Gigabit Ethernet > USB 3.0)
  • RTL8156 / RTL8156B (2.5G Gigabit Ethernet > USB 3.0)
  • AX8817x

(2021年03月14日,LEDE正式支持RTL8152)

根据上述驱动中的r8152.c文件部分代码,推测还支持以下型号(未实测)。查询USB网卡实际芯片型号,参见文章《Linux安装无线网卡驱动通用方法》。

/* table of devices that work with this driver */
static const struct usb_device_id rtl8152_table[] = {
    /* Realtek */
    {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8050)},
    {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)},
    {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
    {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8155)},
    {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8156)},

    /* Microsoft */
    {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)},
    {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)},

    /* Samsung */
    {REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},

    /* Lenovo */
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3052)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3054)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3057)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3069)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3082)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3098)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7205)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x720a)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x720b)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x720c)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7214)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x721e)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x8153)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0xa359)},
    {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0xa387)},

    /* TP-LINK */
    {REALTEK_USB_DEVICE(VENDOR_ID_TPLINK, 0x0601)},

    /* Nvidia */
    {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA,  0x09ff)},

    /* LINKSYS */
    {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)},

    {}
};

安装方法

参考https://flings.vmware.com/usb-network-native-driver-for-esxi#instructions进行安装,不再赘述。

需要注意的是:

  • esxcli software component apply -d后面必须跟着绝对路径,否则将导致驱动安装失败。esxcli software vib install -d也一样。
  • 必须参考Persisting USB NIC Bindings进行配置。否则重启后USB网卡无法正常工作

绑定到OpenWRT

以绑定到LEDE为例,说明当虚拟机不兼容USB网卡的时候,如何通过ESXi驱动该网卡。

添加虚拟交换机

image.png

将USB网卡添加到虚拟交换机。

添加端口组

image.png

在上一步添加的虚拟交换机的基础上,添加端口组。

新建网络适配器

image.png

将虚拟机关机,然后添加网络适配器,选择对应的端口组。

检查适配器状态

image.png

重新打开OpenWRT虚拟机。在lan口可以看到多出来了几个网卡。其中前几个就是虚拟网卡。添加新的网络适配器会打乱OpenWrt的以太网适配器顺序,可以进入SSH通过ifconfig -a查询Mac地址来识别网卡。

默认虚拟网卡的速率是万兆的。虚拟交换机搭建起了虚拟万兆网卡和USB网卡通讯的桥梁。

其它

需要特别注意的是,如果你有一张或多张网卡,在进行Persisting USB NIC Bindings设置的时候,需要相应改写代码。如果是参考上述内容进行了虚拟交换机设置,则启动时还需要以代码的方式控制虚拟交换机端口组。参考代码:

if [ "${vusb0_status}" = "Up" ]; then
        esxcfg-vswitch -L vusb0 vSwitch1
        esxcfg-vswitch -M vusb0 -p "VM USB0" vSwitch1
fi

请注意,无论是官方给出的Persisting USB NIC Bindings操作,还是上述示例代码,都必须添加到done代码之前。