Předávání zařízení USB po síti pomocí brány USB Network Gate.

Dobré odpoledne, amigos, jsem rád, že jste se podívali na můj web, dnes budeme uvažovat o takové otázce, jak organizovat usb přes síť a jak ji používat ve virtualizaci. Téma je docela relevantní a s tímto problémem se setkáváme stále častěji.

uSB přes síť

Jak již víte, virtualizace vstoupila do našeho života na dlouhou dobu a na dlouhou dobu. Kapacity serverů rostou a přirozeně se objevily technologie pro jejich racionální využití, což znamená izolaci a normální využití zdrojů, což vedlo k vzniku virtuálních strojů, které se již používají v hostování a datových centrech. O tom všem jsem už mluvil, pokud máte zájem, podívejte se na odkazy vlevo a nahoře.

Jak víte, někdy některé licencované programy vyžadují pracovat usb klíč. Dříve v klasické verzi, kdy existovaly pouze fyzické servery, nebyly problémy s fungováním takového schématu, ale s příchodem virtualizace se vynořilo.

Některé hypervizory bohužel nemají schopnost předávat dále přímo ze serveru USB zařízenía. Příkladem je Hyper-V od Microsoftu, který od roku 208 stále nemá takovou příležitost, na rozdíl od vMvare, který to umožňuje, a již jsem popsal, jak předat USB modem na vmware esxi.

Nespěchejte, abyste se rozrušili, přívrženci Redmondského obra, technologie vám přijde na pomoc USB přes IP nebo kdekoli USB. USB over IP umožňuje připojení uSB přes síť.

AnywhereUSB je malý síťový USB rozbočovač. Níže jsou uvedeny příklady modelů na trhu.

  • Kamkoli USB / 2 - 2 USB porty


  • Kamkoli USB / 5-5 USB portů


  • Kdekoli USB / 14 - 14 USB portů



Konfigurace AnywhereUSB

Pojďme se podívat na to, jak je hardware nakonfigurován, aby byl přístupný přes síť.

Tak to bude vypadat.


Pro konfiguraci a správu zařízení je k dispozici několik rozhraní:
• webové rozhraní pro konfiguraci, monitorování a správu;
• AnywhereUSB konfigurační nástroj;
• Rozhraní příkazového řádku Telnet;
• Simple Network Management Protocol (SNMP).

Při konfiguraci zařízení považujte webové rozhraní - za nejpohodlnější a nejjednodušší možnost.

Správa IP adres

Existuje několik možností, jak přiřadit adresu IP AnywhereUSB:
• Statická IP adresa;
• Dynamické přiřazení IP - pomocí protokolu DHCP (Dynamic Host Configuration Protocol);
• Auto Private IP Addressing (APIPA), nejlépe známý jako Auto-IP;

Jak si dokážete představit, nejsprávnějším způsobem je statická adresa IP. Nastavuje se v položce Konfigurace sítě.


Ve stejné nabídce je velmi výhodné nastavit dostupné síťové služby.



Na kartě Správa připojení můžete vidět aktuální připojení.



Nyní, co je třeba udělat na virtuálním stroji, je všechno neuvěřitelně logické, musíte nainstalovat ovladače z AnywhereUSB a nastavit IP adresu zařízení. Jak vidíte, již jsem jej připojil a má interní IP adresu.


Pomocí speciálního nástroje Anywhere View můžete zkontrolovat dostupnost a obsazenost všech zařízení. Možná jde o nejjednodušší a nejspolehlivější metodu předávání tokenů, flash disků a různých modemů na vaše virtuální stroje, samotná zařízení stojí jinak, ale pokud jste již utratili peníze za software a hypervisory, myslím, že je-li to nutné, kupte si toto :).


USB Network Gate je program, který umožňuje uživatelům připojit zařízení USB připojená k jiným počítačům pomocí kanálů IP.

Na trhu existují různé implementace vzdálené připojení Zařízení USB, hardware i software. Některé z nich vyžadují určité znalosti a dovednosti od uživatelů; v některých případech může nastavení trvat dlouho. USB Network Gate mě překvapil svou jednoduchostí. Stáhl jsem program, nainstaloval ho, stiskl tlačítko Sdílet a zařízení je okamžitě k dispozici pro připojení na vzdáleném počítači s nainstalovaným klientem.

USB Network Gate může být nepostradatelný například při použití USB tokeny na serveru RDP vám program umožňuje nakonfigurovat exkluzivní přístup k zařízením pro jednotlivého uživatele vzdálené plochy a izolovat ho od ostatních uživatelů. Program lze také použít ve virtuálním prostředí, pokud z nějakého důvodu nelze zařízení připojit přímo. Existují verze pro Windows, Linux (balíčky RPM a Deb), Apple OS X a nejzajímavější pro Android. Nyní o tom, jak to funguje.

Server

Program je serverem i klientem. Při spuštění ve výchozím nastavení zobrazuje všechna zařízení USB připojená k počítači. Můžete však zobrazit a nakonfigurovat sdílení všech portů.

Je možné nakonfigurovat připojení samostatně pro každé zařízení nebo port, povolit připojení pouze pro konkrétní adresu. K ochraně připojení je poskytována autorizace a šifrování.


Klient

Když používáte USB Network Gate jako klienta, aplikace skenuje místní síť pro přítomnost serverů zobrazí všechna zařízení dostupná pro připojení. Pokud je server v jiné podsíti, například při připojení přes VPN, můžete jej přidat pomocí tlačítka „Přidat server“. Poté, co jsem otevřel přístup k tiskárně, objevil se v seznamu dostupných pro připojení na mém MacBooku. Kromě tiskárny jsem připojil USB hDD s oddíly HFS + se také připojilo, ale oddíly byly připojeny asi tři minuty, zjevně kvůli jejich velkému objemu.

souhrn

Zkušební verze umožňuje otevřít přístup pouze k jednomu registrovanému zařízení - v závislosti na úrovni licencí, od jednoho za $89, 95 až neomezeně pro $699,95 ... Pokud potřebujete rychle připojit zařízení k síti, potřebujete USB Network Gate, zejména pokud nemáte dostatečné znalosti počítačového hardwaru.

Tyto pokyny jsou správné počínaje verzí 2.

Zdá se, proč bych jinak měl něco psát, když existuje oficiální pokyn? Je tu však něco, co tam není.

Existují dvě možnosti přenosu zařízení USB na hosta:

  • přenést určité zařízení na „hosta“;
  • přeneste port USB, ke kterému je toto zařízení připojeno.

Přesměrování zařízení USB

Pokud je k dispozici USB klíč, nebo externí úložiště, je pohodlnější přenášet samotné zařízení přímo do systému hosta, bez ohledu na to, ke kterému portu USB je toto zařízení fyzicky připojeno. Koneckonců, při servisu jej můžeme příště zapojit do jiného konektoru.

# lsusb Bus 002 Zařízení 002: ID 8087: 8000 Intel Corp. Bus 002 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087: 8008 Intel Corp. Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b: 0003 Linux Foundation 3.0 root hub Bus 003 Device 004: ID 051d: 0002 American Power Conversion Uninterruptible Power Supply Bus 003 Device 003: ID 051d : 0002 American Power Conversion Uninterruptible Power Supply Bus 003 Device 002: ID 046d: c00c Logitech, Inc. Optická myš Mouse Bus 003 Zařízení 001: ID 1d6b: 0002 Root hubu Linux Foundation 2.0

Vyhledáme zařízení, které potřebujeme, a vezmeme jeho ID, které budeme používat.

Měl jsem za úkol předat UPS.
(Situace ve skutečnosti není typická, ale spíše ze série by neměla být: Na serveru a síťový hardware dodala 2 nejjednodušší nepřerušitelné zdroje napájení pro pracovní stanice. Ukázalo se, že jednotky UPS jsou jemné a začaly naříkat s nebo bez důvodu. Abychom rychle přerušili hlas a ještě se nezabývali správou UPS z Debianu, bylo rozhodnuto připojit dva nepřerušitelné zdroje napájení pro hosty Windows.)

V této fázi jsem zjistil, že obě zařízení, která jsem potřeboval, mají stejné ID ... Ale zkusme to.

Předaná zařízení jsou zaregistrována v konfiguračním souboru příslušného virtuálního počítače.

# nano /etc/pve/qemu-server/101.conf usb0: host \u003d 051d: 0002

Restartováno. Zařízení se zvedlo, zdá se, že je vše v pořádku. Ale tady si pamatujeme, že druhé zařízení se stejným identifikátorem. Jak je můžete rozeznat? Zkušenosti skutečně ukázaly, že pokud je dvěma virtuálním strojům přiřazen jeden identifikátor, po zapnutí budou navzájem přijímat stejné zařízení. Navzdory skutečnosti, že hostitelský systém má několik zařízení USB s tímto identifikátorem.

Právě zde si pamatujeme, že existuje další způsob předávání.

Přesměrování USB portu

Je nutné určit, ke kterému portu je zařízení, které potřebujeme, připojeno.

První způsob:

# lsusb -t /: Bus 04. Port 1: Dev 1, Class \u003d root_hub, Driver \u003d xhci_hcd / 6p, 5000M /: Bus 03. Port 1: Dev 1, Class \u003d root_hub, Driver \u003d xhci_hcd / 15p, 480M | __ Port 4: Dev 2, If 0, Class \u003d HID, Driver \u003d usbhid, 1.5M | __ Port 7: Dev 3, If 0, Class \u003d HID, Driver \u003d usbfs, 12M | __ Port 8: Dev 4, If 0, Class \u003d HID, Driver \u003d usbfs, 12M /: Bus 02. Port 1: Dev 1, Class \u003d root_hub, Driver \u003d ehci_hcd / 3p, 480M | __ Port 1: Dev 2, If 0, Class \u003d hub, Driver \u003d hub / 8p, 480M /: Bus 01. Port 1: Dev 1, Class \u003d root_hub, Driver \u003d ehci_hcd / 3p, 480M | __ Port 1: Dev 2, If 0, Class \u003d hub, Driver \u003d hub / 6p, 480M

Jak se ukázalo později, zařízení, která potřebuji, sedí na sběrnici 3, portech 7 a 8. Ale zatím nám to není zřejmé a tady je druhá možnost:

Qm monitor qm\u003e info usbhost Bus 3, Addr 4, Port 8, Rychlost 12 Mb / s Třída 00: USB zařízení 051d: 0002, Back-UPS XS 650CI FW: 892.R2.I USB FW: R2 Bus 3, Addr 3, Port 7, rychlost 12 Mb / s třída 00: USB zařízení 051d: 0002, Back-UPS XS 650CI FW: 892.R2.I USB FW: R2 sběrnice 3, Addr 2, port 4, rychlost 1,5 Mb / s třída 00: USB zařízení 046d: c00c, optická myš USB

Zde jasně vidíme, kdo je kdo. A teď směle:

# nano /etc/pve/qemu-server/101.conf usb0: host \u003d 3-7

Pro úplnost doplním pokyny příkladem z oficiální dokumentace.

Tato možnost je možná:

Qm monitor qm\u003e info usbhost Bus 3, Addr 2, Port 1.2, Rychlost 1,5 Mb / s Specifické pro dodavatele: USB zařízení 0529: 0001, HASP 2.17

Jeden z čtenářů blogu, Vovets666, vyzkoušel bezplatný software USBIP a navrhl o tom napsat článek.

Zřeknutí se odpovědnosti:
vše, co je popsáno níže, je moje osobní vize problému a toho, jak jej vyřešit, což není konečná pravda. Je docela možné, že existují i \u200b\u200bjiné možnosti, budu je s radostí poslouchat. Jako návod k práci se softwarem byly použity materiály nalezené na internetu, ani si nepamatuji, kde ... Kromě toho, že jsem správce systému Windows, Linux znám docela povrchně, pracoval jsem v termínech a bylo spousta času studovat hardware / tančit s tamburíny neměl, tak popisuji, jak jsem to udělal, abych pracoval, a jsem si jist, že existují i \u200b\u200bjiné způsoby.

Takže máme virtuální stroje - servery 1C, vyrůstající na MSWindowsServer 2008R2. Software vyžaduje připojené klíče serveru HASP. Jak víte, nemůžete je přímo připojit k virtuálnímu počítači na Hyper-V. Úkol: nějakým způsobem předat klíče HASP virtuálním strojům, nejlépe s použitím minimálních dodatečných nákladů na hardware a licence.

(Offtopic: 1C nedávno získal možnost softwarového licencování bez použití klíčů HASP (něco jako aktivace pomocí kódů PIN). Existují však nuance: výměna za licenci se softwarovou aktivací není zdarma, při změně konfigurace stroje je nutné reaktivace, po určitém limitu zůstává aktivační povolení na uvážení technické podpory, což vůbec není led. Proto bylo rozhodnuto použít starý způsob pomocí kláves HASP).

Byly zváženy možnosti:

- metoda poskytovaná společností Microsoft (i když pro jiné účely):
RemoteFX + RDP7.1. Nelíbilo se mi to z důvodů: potřebujete vybavení s podporou RemoteFX, na serveru 1C (služba přístupu ke vzdálené ploše) je třeba zvýšit další služby, relace RDP musí neustále viset z hostitele na virtuální stroj, přes který je klíč předáván, je vyžadována klientská licence pro přístup k RDS ... Možná se mýlím v některé z položek na tomto seznamu, ale celkový počet z nich hackl metodu v zárodku.

- hardwarová zařízení třetích stran. Nevýhody: stojí peníze, navíc některá zařízení měla problémy s kompatibilitou s použitými operačními systémy (například Ubox 4100, které máme) a která se výrobce nehodlal řešit. Nyní se zdá, že problémy byly vyřešeny (v jiných modelech), ale sediment zůstal.

- Software třetích stran. Nevýhody: Vyžaduje samostatný stroj, který bude fungovat jako server zařízení USB, a obvykle vyžaduje poplatek. Po prohledání
přijatelného softwaru se ukázalo, že ze všech objevených softwarů je pro komerční použití zdarma pouze balíček USBIP. Zastavil se nad tím.

Samotná instalace a konfigurace softwaru nezpůsobila velké problémy, balíček obsahoval krátký manuál plus - internet.

Balíček USBIP () vyžaduje, aby fungovaly 2 nakonfigurované stroje: server (klíč je k němu přímo připojen) a klient (tento klíč je předán). Server
část USBIP existuje pouze pod Linuxem, klientská část - pod Linuxem a Windows (včetně 7 a 2008R2).

1) Instalace serveru (zařízení, ke kterému je připojeno zařízení USB).

Jako server používáme stroj s Linuxem. Jako nejjednodušší (pro mě) systém jsem použil Linux Ubuntu v.11.04 (sestava Lubuntu, která je deklarována jako nejméně náročná na zdroje): instaluje se bez problémů, automaticky připojuje nová zásuvná USB zařízení, po instalaci jsou standardně nainstalovány potřebné komponenty, v úložišti je navíc USBIP. Abychom ušetřili peníze na hardwaru, byl tento stroj vytvořen jako virtuální, vychovávaný na existujícím hostiteli ESXi 4.1 a do něj byl následně klíč HASP předán z hostitele pomocí standardní metody ESXi.

Instalace nezpůsobila problémy: nainstalujeme systém, připojíme jej k síti, vydáme IP, nainstalujeme USBIP a komponenty potřebné pro provoz prostřednictvím správce balíčků. Kromě toho byly nainstalovány nástroje VMware (protože tento stroj je VM na ESXi).

Pro případ, připomenu vám, jak se to děje:

Z modulu snap-in VMware připojte disk se softwarem (Inventář -\u003e Virtuální počítač -\u003e Host -\u003e Instalovat / upgradovat nástroje VMware). Z tohoto disku rozbalíme archiv se softwarem na plochu. Spustili jsme terminál a zadejte jej:

<имя пользователя>@<имя машины>: ~ $ sudo<путь до файла>\\ vmware-install.pl - výchozí

2) Ladění serveruUSB klíče.

Spouštíme terminál. Další akce - z příkazového řádku.

· Načtěte následující moduly.

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip_common_mod

Spusťte usbip jako systémový démon:

<имя пользователя>@<имя машины>:~$ sudo usbipd D

dostaneme:

Svázejte soubor usbip.ko na zařízení USB, abyste jej mohli exportovat!

<имя пользователя>@<имя машины>:~$

Pozornost! Nejprve musíte spustit démona a teprve poté připojit zařízení, jinak by při připojení mohlo na klientovi dojít k chybám. (viz poznámky)

Chcete-li zobrazit připojená zařízení USB, proveďte příkaz

<имя пользователя>@<имя машины>:~$ lsusb

dostaneme seznam připojených zařízení USB s jejich identifikátory, jako jsou:

Bus XXX Zařízení YYY: ID VendorID: DeviceID< název zařízení>

něco jako:

Bus 002 Device 004: ID 0529: 0001 Aladdin Knowledge Systems HASP v0.06

Sběrnice 002 Zařízení 003: ID 0e0f: 0002 VMware, Inc. Virtuální rozbočovač USB

Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub

Pamatujte si kombinaci VendorID: DeviceID

Provedeme příkaz:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver — seznam

USBIP zkontroluje seznam připojených zařízení a zobrazí je s jejich ID sběrnice následujícím způsobem:

- busid 2-1 (0529: 0001)

2-1: 1,0 -\u003e žádný

- busid 2-2 (0e0f: 0002)

2-2: 1,0 -\u003e rozbočovač

……..

V tomto případě je ID sběrnice označující USB zařízení, které potřebujeme, „2-1“.

· Nyní připojíme zařízení k serveru. Píšeme:

<имя пользователя>@<имя машины>::~$ sudo usbip_bind_driver —usbip 2-1

dostaneme:

** (proces: 1483): DEBUG: 2-1: 1,0 -\u003e žádný

** (process: 1483): DEBUG: write "add 2-1" to / sys / bus / usb / drivers / usbip / match_busid

** Zpráva: vázat 2-1 na usbip, kompletní!

Zařízení je připojeno k USBIP, přístup z místního serveru je ztracen.

· Můžete také zobrazit, která zařízení jsou v tuto chvíli připojena k USBIP. K tomu zadáme:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver — seznam

Dostaneme:

- busid 2-1 (0529: 0001)

2-1: 1,0 -\u003e usbip

- busid 2-2 (0e0f: 0002)

2-2: 1,0 -\u003e rozbočovač

Zařízení s ID sběrnice 2-1 je připojeno k USBIP. Systém může přenášet data o tomto zařízení USB ze systému do vzdálených klientů.

Nastavení serveru je dokončeno. V případě potřeby můžete přidat a odebrat
exportovaná zařízení.

Možnosti USBIP - linuxserveruPoužití: usbip_bind_driver

- ?, -Pomoc volání
odkaz
—Usbip zaneprázdněn umožnit export zařízení
- další zaneprázdněný používat zařízení místním
Řidič
-Seznam tisk usb zařízení a jejich
Řidiči
—List2 tisk usb zařízení a jejich
ovladače v analyzovatelném režimu
—Allusbip umožnit export všech zařízení

3) Nastavení klienta MS Windows

· Stáhněte si distribuční sadu. Potřebujeme obě verze - 0,1 a 0,2.

· Nainstalujte USB / IPEnumenator. Je nainstalován jako libovolné systémové zařízení s ovladači na disku. Bereme ovladače z distribuční sady 0.2:

Pro Windows XP:

1. Rozbalte soubory do místní složky.

2. V Ovládacích panelech klikněte na „Instalace hardwaru“, v otevřeném uvítacím okně průvodce klikněte na „Další“.

3. Vyberte „Ano, zařízení je již připojeno“ -\u003e „Další“.

4. Vyberte „Přidat nové zařízení“ -\u003e „Další“.

5. Vyberte „Nainstalovat zařízení vybrané ze seznamu ručně“ -\u003e „Další“.

7. Vyberte „Instalovat z disku“ -\u003e „Zobrazit“, vyberte složku s rozbaleným ovladačem -\u003e „OK“.

9. „Průvodce je připraven k instalaci nového hardwaru“ -\u003e Vyberte „Další“ -\u003e Dokončit “.

Pro okno 7 (a 2008r2):

1. Chcete-li povolit instalaci nepodepsaných ovladačů: spusťte cmd z
správce a spusťte „bcdedit / settestsigningon“.

2. Rozbalte soubory do místní složky.

3. Otevřete „Správce zařízení“.

4. Pravé tlačítko na „název počítače“ - „Nainstalovat staré zařízení“ (nebo v nabídce vyberte „Akce“).

5. V uvítacím okně průvodce, které se otevře, klikněte na „Další“.

6. Vyberte možnost „Nainstalovat hardware vybraný ze seznamu ručně“ -\u003e „Další“.

8. Vyberte „Instalovat z disku“ -\u003e „Zobrazit“, vyberte složku s rozbaleným ovladačem -\u003e „OK“.

10. „Průvodce je připraven k instalaci nového hardwaru“ -\u003e Vyberte „Další“ -\u003e „Dokončit“.

Všechny tyto akce jsou také popsány v souboru „usage“, který je součástí balíčku USBIP v angličtině.

· Připojujeme zařízení USB, označená jako exportovaná na serveru, který potřebujeme. Pro připojení používámeUSBIP z distribuční sady verze 0.1

Spustit cmd. Podívejme se, která zařízení jsou připravena k připojení:

cesta k usbipu :\u003e usbip.exe -l

(server-ip - IP adresa serveru zařízení USB z bodu 2)

C:\ usbip> usbip l 192.168.1.13

usbip dbg: usbip_network.c: 229 (tcp_connect) zkouší port 192.168.1.13 3240

usbip dbg: usbip_network.c: 249 (tcp_connect) připojeno k 192.168.1.13:3240

— 192.168.1.13

usbip dbg: usbip.c: 423 (query_exported_devices) exportovatelná 2 zařízení

2-1: neznámý prodejce: neznámý produkt (0529: 0001)

: /sys/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb2/2-1

: neznámá třída / neznámá podtřída / neznámý protokol (ff / 00/00)

: 0 - neznámá třída / neznámá podtřída / neznámý protokol (ff / 00/00)

Ve výsledku vidíme, že na serveru 192.168.1.13 je zařízení s ID sběrnice 2-1 připraveno k připojení - to, které jsme nakonfigurovali v kroku 2. Může existovat více zařízení.

cestanausbip:> usbip . exe a < serveru ip > USB ID

USB-ID je v našem případě 2-1.

Dostaneme mnoho písmen (seznam parametrů) a nakonec:

nové zařízení USB připojené k portu usbvbus 2

Zařízení USB by se mělo objevit v klientském systému. Doporučuje se nezavírat okno terminálu.

Možnosti USBIP - oknaklientPoužití: usbip

a, - připojit Připojte vzdálené zařízení USB
-x, —příloha Připojte všechny vzdálené USB
zařízení na konkrétním hostiteli
-d, —odpojit Odpojte importované USB
přístroj
-l, - seznam Seznam exportovaných zařízení USB
p, —port Seznam stavu virtuálního USB portu
-D, - ladit Tisk informací o ladění
-v, —verze Zobrazit verzi
-?, -h, —pomoc Vytisknout tuto nápovědu

Poznámky: Problémy a jejich řešení:

1. Použil jsem systémovou verzi 11.04 na jádře 2.6. Po aktualizaci systému na verzi 11.10 (jádro 3.0.4) usbip přestal fungovat - došlo k chybě, že komponenta nebyla nalezena. Musel jsem obnovit auto a odmítnout aktualizace. Na druhou stranu, protože se jedná o vysoce specializovaný oficiální stroj a přístup k němu je omezený, nebylo to považováno za kritické.

2. Nejprve se klíče hasp odmítly připojit ke klientovi, což způsobilo chybu. Během experimentů bylo zjištěno, že musíte nejprve spustit démona usbip a teprve poté připojit klíče k počítači. Později chyby zmizely, klíče se začaly připojovat v jakémkoli pořadí, nebylo možné chyby opakovat. To je jen jedna z těch zvláštností, které jsem zmínil.

3. Po restartu VM klienta - 1C serveru někdy není možné k němu připojit některý z klíčů - dává chyby. Možná je to kvůli výměnným relacím s usb zařízeními uvíznutými na serveru HASP. Léčí se to restartováním serveru HASP a opětovným předáním klíčů klientovi.