Я на ноутбуке использую libvirt для запуска некоторых контейнеров.
По умолчанию он использует default
сеть, предоставляемую libvirt, а контейнеры имеют сеть 192.168.122.0/24.
Я пытаюсь сделать так, чтобы контейнер находился в той же сети, что и мой ноутбук (т.е. 192.168.0.1/24).
Вот что я сделал:
#> ip link add type veth // create a pair of veth
#> iw dev wlan0 set 4addr on // allow WDS mode on my wifi
#> ifconfig veth0 up // up veth0 interface
#> brctl addbr br0 // create br0
#> brctl addif br0 wlan0 // insert wlan0 in the bridge
#> brctl addif br0 veth0 // insert veth0 in the bridge
#> ifconfig br0 192.168.0.4/24 // assign the bridge the approriate ip
#> ifconfig wlan0 0.0.0.0 // free wlan0 ip
Когда я применяю это, я не получаю Интернет на моем ноутбуке; кажется, что он не может получить IP-адрес.
ОС: Fedora 18
WiFi - карта: Intel® Centrino® Advanced-N 6235
Wi - Fi драйвер: iwlwifi
modinfo iwlwifi output
это здесь .
Чего мне не хватает, так что wlan0 заканчивается без IP-адреса и, следовательно, без подключения?
linux
bridge
wireless-bridge
Spredzy
источник
источник
Ответы:
Я не видел это сообщение, первоначально. Существует решение для этого.
Прежде всего, позвольте мне сказать, что я не хочу использовать команды obsolte: пакет iproute2 содержит команды для всего этого, включая настройку виртуальных интерфейсов (что-то, для чего нам когда-то приходилось использовать openvpn или tunctl или uml-утилиты) и создание мостов. Если вы не знаете, как настроить мост с помощью ip , мы пойдем:
С помощью этого набора команд мы создаем виртуальный интерфейс с именем tap0 , затем мост с именем br0 , затем порабощаем eth0 и tap0 мосту, которому мы назначаем IP-адрес 10.173.10.1, а затем приводим его в действие. Требуются три отдельных случая запуска интерфейсов (для tap0, eth0 и br0).
Что касается твоей проблемы. Хитрость , чтобы сделать эту работу , чтобы использовать прокси-Арп, что позволяет ваш компьютер ( не виртуальная машина / Linux контейнер / сеть имен) , чтобы ответить на ARP - запросы в их заменяющих.
Другими словами, используя переадресацию IPv4 между вашим аппаратным интерфейсом и вашим виртуальным интерфейсом, вы думаете, что можете подключить вашу VM / LXC / NNS к вашей локальной сети, как если бы это был физический интерфейс, но это не так: вы забываете абсолютно основной трафик ARP, который действительно позволяет локальной сети работать. Итак, проблема в том, что если я правильно пересылаю трафик IPv4, как я также могу пересылать трафик ARP, чтобы моя VM / LXC / NNS работала? Хитрость заключается в том, чтобы использовать proxy-arp.
Полный ответ на этот вопрос можно найти в блоге Бохди Дзадзена с разоблачающим названием « Мостовые беспроводные карты» . Он использует устаревший пакет, uml-утилиты , для создания виртуального интерфейса с помощью команды tunctl : это единственная команда, для которой он использует uml-утилиты , так что вы можете спокойно пренебречь загрузкой пакета и использовать команду I Выше написано, чтобы создать интерфейс tap или tun , в зависимости от того, что вам нравится, просто измените команду соответствующим образом. затем создайте пару веток для вашего LXC, а теперь создайте мост между tap0 и veth0. Этот мост, называемый br0, это то, что вы должны прокси-arp для, вместо простого интерфейса tap0, описанного Bohdi Zazen.
источник
Я написал руководство по использованию
nat bridge
с,lxc
которое является превосходным решением и работает сopenvpn
&dhcp
.Я также написал руководство для хост-моста с беспроводной связью
lxc
. Это немного из заметок Bodhizazen + Debian Wiki . Этот хост-мост работает до тех пор, пока вы не используете егоopenvpn
.источник