Как настроить сетевой мост на ноутбуке для использования LXC?

1

Я на ноутбуке использую 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-адреса и, следовательно, без подключения?

Spredzy
источник
Извините за ответ так поздно, я надеюсь, что вы все еще заинтересованы в ответе, который я написал отдельно.
MariusMatutiae

Ответы:

0

Я не видел это сообщение, первоначально. Существует решение для этого.

Прежде всего, позвольте мне сказать, что я не хочу использовать команды obsolte: пакет iproute2 содержит команды для всего этого, включая настройку виртуальных интерфейсов (что-то, для чего нам когда-то приходилось использовать openvpn или tunctl или uml-утилиты) и создание мостов. Если вы не знаете, как настроить мост с помощью ip , мы пойдем:

  ip tuntap add tap0 mode tap user root 

  ip link set tap0 up

  ip link add br0 type bridge

  ip link set tap0 master br0

  ip link set eth0 master br0

  ip addr add 10.173.10.1/24  dev br0

  ip link set br0 up

С помощью этого набора команд мы создаем виртуальный интерфейс с именем 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.

MariusMatutiae
источник
0

Я написал руководство по использованию nat bridgeс,lxc которое является превосходным решением и работает с openvpn& dhcp.

Я также написал руководство для хост-моста с беспроводной связьюlxc . Это немного из заметок Bodhizazen + Debian Wiki . Этот хост-мост работает до тех пор, пока вы не используете его openvpn.

Стюарт Кардалл
источник