Сетевые драйверы контейнеров Windows
Помимо использования сети «nat» по умолчанию, созданной подсистемой Docker в Windows, пользователи могут определять собственные сети контейнеров. Определяемые пользователем сети можно создать с помощью команды Docker CLI docker network create -d . В Windows доступны следующие типы сетевых драйверов.
Сетевой драйвер NAT
Контейнеры, подключенные к сети, созданной с помощью драйвера «nat», будут подключены к внутреннему коммутатору Hyper-V и получат IP-адрес из указанного пользователем префикса IP-адреса ( —subnet ). Перенаправление и сопоставление портов из узла контейнера в конечные точки контейнера поддерживается.
Можно настроить подсеть, используемую сетью nat по умолчанию, с помощью fixed-cidr параметра в файле конфигурации управляющей программы Docker.
Сети NAT, созданные в Windows Server 2019 (или более поздней версии), больше не сохраняются после перезагрузки.
Создание сети NAT
Чтобы создать новую сеть NAT с подсетью 10.244.0.0/24 :
docker network create -d "nat" --subnet "10.244.0.0/24" my_nat
Драйвер прозрачной сети
Контейнеры, подключенные к сети, созданной с помощью «прозрачного» драйвера, будут напрямую подключены к физической сети через внешний коммутатор Hyper-V. IP-адреса из физической сети могут назначаться статически (необходим заданный пользователем параметр —subnet ) или динамически с помощью внешнего DHCP-сервера.
Из-за следующего требования подключение узлов контейнеров через прозрачную сеть не поддерживается на виртуальных машинах Azure.
Требуется. Если этот режим используется в сценарии виртуализации (узел контейнера является виртуальной машиной), требуется спуфингование MAC-адресов.
Создание прозрачной сети
Чтобы создать прозрачную сеть с подсетью 10.244.0.0/24 , шлюзом 10.244.0.1 , DNS-сервером 10.244.0.7 и идентификатором 7 виртуальной локальной сети:
docker network create -d "transparent" --subnet 10.244.0.0/24 --gateway 10.244.0.1 -o com.docker.network.windowsshim.vlanid=7 -o com.docker.network.windowsshim.dnsservers="10.244.0.7" my_transparent
Сетевой драйвер наложения
Часто используемые оркестраторами контейнеров, такими как Docker Swarm и Kubernetes, контейнеры, подключенные к сети наложения, могут взаимодействовать с другими контейнерами, подключенными к одной сети на нескольких узлах контейнеров. Каждая сеть наложения создается с собственной IP-подсетью, определяемой префиксом частного IP-адреса. Сетевой драйвер наложения использует инкапсуляцию VXLAN для обеспечения изоляции сетевого трафика между сетями контейнеров клиента и позволяет повторно использовать IP-адреса в сетях наложения.
Обязательные требования. Убедитесь, что ваша среда удовлетворяет этим предварительным требованиям для создания сетей наложения.
Требуется: в Windows Server 2019 для этого требуется KB4489899.
Требуется: на Windows Server 2016 для этого требуется KB4015217.
В Windows Server 2019 и более поздних версиях сети наложения, созданные Docker Swarm, используют правила NAT VFP для исходящего подключения. Это означает, что данный контейнер получает 1 IP-адрес. Это также означает, что средства на основе ICMP, такие как ping или Test-NetConnection , должны быть настроены с использованием параметров TCP/UDP в ситуациях отладки.
Создание сети наложения
Чтобы создать новую сеть наложения с подсетью 10.244.0.0/24 , DNS-сервером 168.63.129.16 и VSID 4096 :
docker network create -d "overlay" --attachable --subnet "10.244.0.0/24" -o com.docker.network.windowsshim.dnsservers="168.63.129.16" -o com.docker.network.driver.overlay.vxlanid_list="4096" my_overlay
Сетевой драйвер L2bridge
Контейнеры, подключенные к сети, созданной с помощью драйвера l2bridge, будут подключены к физической сети через внешний коммутатор Hyper-V. В l2bridge сетевой трафик контейнера будет иметь тот же MAC-адрес, что и узел из-за операции преобразования адресов уровня 2 (повторная запись MAC) для входящего и исходящего трафика. В центрах обработки данных это помогает снизить нагрузку на коммутаторы, которые должны изучать MAC-адреса иногда кратковременных контейнеров. Сети L2bridge можно настроить 2 различными способами:
- Сеть L2bridge настроена с той же IP-подсетью, что и узел контейнера.
- Для сети L2bridge настроена новая настраиваемая IP-подсеть.
В конфигурации 2 пользователям потребуется добавить конечную точку в сетевой секции узла, которая выступает в качестве шлюза, и настроить возможности маршрутизации для указанного префикса.
Создание сети l2bridge
Чтобы создать новую сеть l2bridge с подсетью 10.244.0.0/24 , шлюзом 10.244.0.1 , DNS-сервером 10.244.0.7 и идентификатором виртуальной локальной сети 7:
docker network create -d "l2bridge" --subnet 10.244.0.0/24 --gateway 10.244.0.1 -o com.docker.network.windowsshim.vlanid=7 -o com.docker.network.windowsshim.dnsservers="10.244.0.7" my_l2bridge
Сети L2bridge имеют высокую степень программирования; Дополнительные сведения о настройке l2bridge можно найти здесь.
Сетевой драйвер L2tunnel
Создание идентично l2bridge, однако этот драйвер следует использовать только в Microsoft Cloud Stack (Azure). Единственное отличие от l2bridge заключается в том, что весь трафик контейнера отправляется на узел виртуализации, где применяется политика SDN, тем самым предоставляя такие функции, как группы безопасности сети Azure для контейнеров.
Сетевые топологии и IPAM
В следующей таблице показано, как сетевое подключение предоставляется для внутренних (контейнер-контейнер) и внешних подключений каждого сетевого драйвера.
Сетевые режимы/драйверы Docker
- Одна подсеть: подключение с мостом через виртуальный коммутатор Hyper-V
- Перекрестная подсеть: не поддерживается (только один внутренний префикс NAT)
- Одна подсеть: подключение с мостом через виртуальный коммутатор Hyper-V
- Подключение между подсетями: маршрутизация через узел контейнеров
- Одна подсеть: подключение с мостом через виртуальный коммутатор Hyper-V
- Подключение между подсетями: сетевой трафик инкапсулируется и маршрутизируется через виртуальный сетевой адаптер управления
- Одна подсеть: подключение с мостом через виртуальный коммутатор Hyper-V
- Подключение между подсетями: MAC-адрес контейнера повторно записывается при входе и выходе и маршрутизируется
- Одна подсеть: подключение с мостом
- Перекрестная подсеть: маршрутизируется через виртуальный сетевой адаптер Mgmt в WSv1809 и более поздних версиях.
IPAM
IP-адреса распределяются и назначаются каждому сетевому драйверу по-разному. Windows использует сетевую службу узлов (HNS) для передачи IPAM драйверу «nat» и работает в режиме мелких объектов Docker (внутренняя служба KVS) для передачи IPAM драйверу «overlay». Все остальные сетевые драйверы используют внешнюю платформу IPAM.
| Сетевой режим/драйвер | IPAM |
|---|---|
| NAT | Динамическое выделение и назначение IP-адресов службой HNS из префикса внутренней подсети NAT |
| Прозрачный режим | Статическое или динамическое (с помощью внешнего DHCP-сервера) выделение и назначение IP-адресов из числа адресов в префиксе сети узла контейнеров |
| Наложение | Динамическое выделение IP-адресов из префиксов под управлением подсистемы Docker в режиме мелких объектов и их назначение через службу HNS |
| L2Bridge | Динамическое выделение и назначение IP-адресов службой сети узла (HNS) из предоставленного префикса подсети |
| L2Tunnel | Только в Azure: динамическое выделение IP-адресов и их назначение через подключаемый модуль |
Обнаружение служб
Обнаружение служб поддерживают только определенные сетевые драйверы Windows.
| Имя драйвера | Локальное обнаружение служб | Глобальное обнаружение служб |
|---|---|---|
| NAT | YES | ДА, с помощью Docker EE |
| overlay | YES | ДА с Docker EE или kube-dns |
| transparent | NO | NO |
| l2bridge | ДА с kube-dns | ДА с kube-dns |
Networking что это за драйвер
Включает в ядро поддержку TCP/IP.
Скорее всего, вам это необходимо .
options IPX #IPX/SPX communications protocols
Поддержка IPX.
Насколько вам это нужно решайте сами. В настоящее время в FreeBSD есть только маршрутизатор IPX. Ни серверной, ни клиентской программы для сетей Novell NetWare (где в основном и используется IPX) в FreeBSD нет.
(Вообще-то, «софт» для сетей Novell NetWare под FreeBSD существует в виде коммерческого продукта — http://www.netcon.com/. Но он «родной» поддержкой IPX не пользуется и, соответственно, эта опция к нему отношения не имеет.)
Не забудьте, что FreeBSD понимает (на ethernet) только фреймы Ethernet_II.
options «IPXPRINTFS=0» #IPX/SPX Console Debugging Information
При включенной поддержке IPX определяет — выводить ли сообщения (через syslogd) о каждом «отфорварденом» IPX пакете (1 — выводить, 0 — нет).
По умолчанию этот параметр — 1. Так что, для подавления лишней диагностики желательно эту опцию включить .
options «IPX_ERRPRINTFS=0» #IPX/SPX Console Debugging Information
При включенной поддержке IPX определяет — выводить ли сообщения об ошибках при работе с IPX пакетами (1 — выводить, 0 — нет).
По умолчанию этот параметр — 0. Так что, в таком виде эта опция особого смысла не имеет, а вот для того, чтобы включить эту диагностику, вставте эту опцию, заменив 0 на 1.
options NETATALK #Appletalk communications protocols
Ничего, кроме того, что в комментарии, сказать не могу.
Network interfaces:
pseudo-device loop #Network loopback device
«Драйвер» loopback интерфейса. Используется во многих ситуациях.
Поэтому, это устройство должно быть обязательно .
pseudo-device ether #Generic Ethernet
Общие подпрограммы для всех ethernet’овских драйверов (независимо, какая карточка у вас стоит).
Количество «псевдо-девайсов» значения не имеет (даже если у вас несколько ethernet’ов).
Поэтому, если у вас используется хоть какой-нибудь ethernet-адаптер, эта строчка должна быть обязательно .
pseudo-device fddi #Generic FDDI
Общие подпрограммы для всех fddi драйверов.
Если у вас какая-либо fddi карта, эта строчка обязательна.
pseudo-device sl 2 #Serial Line IP
Драйвер SLIP (протокол для передачи IP через COM-порт и, соответственно, через модем).
Естественно, у вас должны быть включены драйверы для COM-портов (в разделе hardware). Эта строчка только определяет — сможете ли вы на них использовать SLIP.
Количество «псевдо-девайсов» в данном случае важно, именно столько SLIP-коннектов вы сможете поддерживать одновременно (лучше всего их иметь столько, сколько у вас COM-портов).
Подробнее — man sl .
pseudo-device ppp 2 #Point-to-point protocol
Драйвер PPP (как и SLIP это протокол для передачи IP через COM-порт).
Комментарии те же, что и для «pseudo-device sl» (заменяя SLIP на PPP :-).
Подробнее — man 4 ppp .
pseudo-device sppp #Generic Synchronous PPP
Драйвер PPP для синхронных последовательных каналов.
Нужен в том случае если у вас есть специальная карточка (ar,cx,sr).
pseudo-device bpfilter 4 #Berkeley packet filter
Это драйвер для программ, которые «подсматривают» траффик через какой-нибудь сетевой интерфейс (tcpdump и т.п.). Кстати, этот драйвер может потребоваться и другим программам (например, DHCP-серверу).
Подробнее — man bpf .
Полезно их иметь (и побольше :-).
Важное замечание!
Поскольку через этот «девайс» соответствующие программы могут просматривать содержимое пакетов, «пробегающих» по сети, юзер, запустивщий программу, может подсмотреть чужие пароли, содержимое «пролетающих» писем, файлов и т.п. Поэтому, bpfilter может оказаться не только полезной «фичей», но и опасной. К счастью, по умолчанию, соответствующие устройства /dev/bpf* доступны для чтения только root’у.
Так вот. Не надо менять права доступа к этим устройствам . Будет лучше, если «рядовые юзеры» не смогут ими воспользоваться.
pseudo-device disc #Discard device
Это устройство аналогично устройству null для файлов. То есть в него можно посылать пакеты «в никуда». Включено в систему для тестов.
В реальной работе вещь практически бесполезная. Можно выкинуть .
pseudo-device tun 1 #Tunnel driver(user process ppp)
Это устройство используется только программой ppp (смотри man 8 ppp ).
Если вы этой программой не пользуетесь (не путайте ее с pppd), то и устройство вам не нужно .
Internet family options:
options «TCP_COMPAT_42» #emulate 4.2BSD TCP bugs
Нужна только для совместимости с очень старой реализацией TCP протокола (на других машинах).
Скорее всего, вам она не нужна .
options MROUTING # Multicast routing
Вставляет в ядро поддержку маршрутизации пакетов с multicast адресами.
Обратите внимание, эта опция нужна только если вы собираетесь маршрутизировать (пропускать через свою машину из одной подсетки в другую) такие пакеты с помощью mrouted (смотри man mrouted ). Для того, чтобы ваша машина могла принимать и посылать multicast-пакеты, эта опция НЕ нужна.
Короче, вам она врядли понадобится .
options IPFIREWALL #firewall
Поддержка FireWall. В данном случае это означает включение в ядро фильтра для IP пакетов, который может выборочно запрещать/разрешать прохождение через сетевые интерфейсы определенных пакетов (в зависимости от адреса «кому» или «от кого», номера TCP-порта и т.п.). Кроме того, этот модуль может считать количество пакетов (прошедших или, наоборот, задержанных).
Сами правила (кого куда пускать/не пускать) задаются с помощью программы ipfw (можете почитать man ipfw ).
Важное замечание: в последних версиях FreeBSD, если FireWall включен в ядро, по умолчанию все пакеты запрещаются. Поэтому, не забудьте сразу же настроить этот firewall в файле /etc/rc.firewall и указать, что он у вас есть, в файле /etc/sysconf (или /etc/rc.conf).
options IPFIREWALL_VERBOSE #print information about dropped packets
Добавляет в модуль FireWall вывод сообщений (через syslogd) о каждом «загубленном» пакете.
Скорее всего, это лишнее .
options «IPFIREWALL_VERBOSE_LIMIT=100» #limit verbosity
Если вы включили опцию IPFIREWALL_VERBOSE , то эта строчка ограничивает количество сообщений. Будут выводится только первые 100 (в данном примере). После этого сообщения прекратятся.
Наверное, с этой опцией будет лучше .
options IPDIVERT #divert sockets
Эта опция добавляет к FireWall еще возможность некоторые IP-пакеты «заворачивать» на дополнительную обработку в прикладные программы (основные проверки делаются в ядре). С помощью этого механизма вы можете писать свои программы, которые смогут выполнить более сложную фильтрацию пакетов или даже их преобразование (NAT, тунель IP в IP, и т.п.). Кстати, NAT-демон, использующий этот механизм уже существует.
Подпробнее man divert .
Вещь полезная , если, конечно, вы знаете, что с ней делать :-).
options TCPDEBUG
Включает в подпрограммы TCP дополнительный код для диагностики. Похоже, нужна только разработчикам .
network driver
драйвер [для построения] виртуальной, локальной или беспроводной сети, например Virtual Machine Network Driver (VMNet Driver), LAN Network Driver, Wireless Network Driver (см. тж. NDIS); драйвер сетевого адаптера (контроллера)
Англо-русский толковый словарь терминов и сокращений по ВТ, Интернету и программированию. . 1998-2007 .
Смотреть что такое «network driver» в других словарях:
- Network Driver Interface Specification — (NDIS ; en français Spécification de l interface du pilote réseau) est une interface de programmation (API) pour les interfaces réseau. Elle a été développée conjointement par Microsoft et 3Com, et est aujourd hui principalement utilisée par … Wikipédia en Français
- Network Driver Interface Specification — The Network Driver Interface Specification (NDIS) is an application programming interface (API) for network interface cards (NICs). It was jointly developed by Microsoft and 3Com Corporation, and is mostly used in Microsoft Windows, but the open… … Wikipedia
- Network Driver Interface Specification — Die Network Driver Interface Specification (NDIS) ist ein von Microsoft und 3Com entwickelter Standard zur Einbindung von Netzwerkkarten. Er erlaubt den Betrieb von mehreren Karten in einem PC genauso wie den Einsatz mehrerer Protokolle auf einer … Deutsch Wikipedia
- Network Driver Interface Specification — Abbreviated NDIS. A device driver specification, originally developed by Microsoft and 3Com in 1990, that is independent of both the underlying network interface card hardware and the protocol being used. NDIS also allows multiple protocol… … Dictionary of networking
- Open Data-link Interface/Network Driver Interface Specification Support — Abbreviated ODINSUP; also written as ODI/NDIS Support. A Novell interface that allows the coexistence of two network driver interfaces: • Microsoft s NDIS (Network Driver Interface Specification) • Novell s ODI (Open Data link Interface) … Dictionary of networking
- Network Driver Interface Specification — … Википедия
- network driver interface specification — (NDIS) A standard established by Microsoft for writing hardware independent drivers … IT glossary of terms, acronyms and abbreviations
- Driver — may refer to: Contents 1 Places 2 Surnames of people 2.1 Fiction 3 Occupation and activity 3.1 … Wikipedia
- Driver location signs — A driver location sign (large and blue) and a distance marker post (smaller, with a red reflective stripe) on the A38 in the West Midlands Driver location signs are English highway route markers, first introduced in 2003, that complement distance … Wikipedia
- network device driver — Software that controls the physical function of a network interface card, coordinating between the card and the other workstation hardware and software. See also Network Driver Interface Specification … Dictionary of networking
- Driver (video game) — Driver European cover art Developer(s) Reflections Interactive, Gameloft (iPhone OS) Publisher(s) GT Inte … Wikipedia
NVIDIA Network Bus Enumerator:что это за драйвер и зачем он нужен? Без него дрова на видяху работать будут? К примеру.
Вот что пишет эверест:
Чипсет системной платыnVIDIA nForce 7150M-630M, AMD Hammer
ВидеоадаптерGeForce 7150M / nForce 630M (256 Мб)
ВидеоадаптерNVIDIA GeForce 7150M / nForce 630M (256 Мб)
3D-акселераторnVIDIA GeForce 7150M
Лучший ответ
Ну по порядку:
NVIDIA Network Bus Enumerator — его задача — управлять виртуальной сетевой шиной. Она распознает сетевые устройства и перечисляет их в PnP.
Соответственно:
Необходим для корректной работы интегрированных сетевых адаптеров на наборе логики NVIDIA.
Порядок установки сетевой карты:
1. Сначала требуется установить на оставшееся неизвестное устройство в диспетчере оборудования драйвер NVIDIA Network Bus Enumerator, через выбор из списка с указанием типа устройства — «Другие устройства» и папки, содержащей драйвер — Ethernet.
2. После этого станет возможным установка собственно драйвера сетевой карты NVIDIA nForce Networking Controller с помощью мастера установки оборудования в панели управления.
Остальные ответы
Будут.
Этот драйвер нужно ставить, если у вас материнская плата на чипсете nForce.
если виюха не nforce то можешь не ставить