LINUX.ORG.RU
ФорумAdmin

Настройка сети с виртуальным окружением

 , ,


0

1

Привет, лор. Я снова выхожу на связь.

Есть три тачки, конфигурация такая:

1. Интернет шлюз и одновременно хост для виртуальных машин. Есть две сетевухи

  • eth1 - pppoe соединение ppp0
  • eth0 - сетевуха для внутренней сети, напрямую соединена со второй машиной. На интерфейсе адрес 192.168.0.1

2. Некая машина, ее настройка меня не касается, там одна сетевуха соедененная кроссовером с eth0 машины 1. На интерфесе адрес 192.168.0.2

3. Виртуальная машина, хостится на машине 1. На хостовой машине представлена интерфесом vnet0. Внутри машины это eth0 с адресом 192.168.0.5

Задача состоит в том, чтобы все три машины были в одной подсети, как будто они воткнуты в один свич. Я логично решил, что тут надо сделать мост на машине 1

root@localhost /var/log # brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.bc5ff40f6a12       no              eth0
                                                        vnet0
root@localhost /var/log # ifconfig br0 
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255
        ether bc:5f:f4:0f:6a:12  txqueuelen 0  (Ethernet)
        RX packets 176  bytes 23531 (22.9 KiB)
        RX errors 0  dropped 6  overruns 0  frame 0
        TX packets 609  bytes 89383 (87.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
vnet0 - интерфейс созданный либвиртом, видимо tun/tap.

Пришлось также добавить дополнительные правила в файрвол

-A FORWARD -i br0 -o br0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
Теперь виртуальная машина пингует машину 2, при этом пакеты проходят по цепочке FORWARD и входным и выходным интерфейсом является br0 (первое правило). Также пингует машину 1 в соответствии с вторым правилом, то есть внутренняя сеть кагбы работает.

Теперь самое интересное: доступ с виртуальной машины в интернет. Как тут быть совсем не понятно. Если бы машины были реальные и воткнуты в настоящий свич, я бы просто на машине 3 дал шлюз по умолчанию 192.168.0.1 и пакеты бы реально на него направлялись, но в случае с мостом адрес присвоен мосту, а не интерфейсу. Логирование iptables показывает вот такие пакеты в цепочке PREROUTING

Oct 14 02:46:02 localhost kernel: [113114.183459] IN=br0 OUT= PHYSIN=vnet0 MAC=bc:5f:f4:0f:6a:12:52:54:00:f8:c8:b1:08:00 SRC=192.168.0.5 DST=8.8.8.8 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=1769 SEQ=1
Если с машины 3 пинговать 8.8.8.8, шлюз по умолчанию при этом 192.168.0.1.

Вобщем логично, что тут что то не правильно. Целевого устройства нет, как и phys-out тоже.

Что мне тут нужно сделать чтобы правильно направить пакеты с виртуальной машины в инет ?

PS Поздновато, и мозги уже не хотят придумать ответ сами.

Теперь самое интересное: доступ с виртуальной машины в интернет. Как тут быть совсем не понятно. Если бы машины были реальные и воткнуты в настоящий свич, я бы просто на машине 3 дал шлюз по умолчанию 192.168.0.1 и пакеты бы реально на него направлялись, но в случае с мостом адрес присвоен мосту, а не интерфейсу.

виртуальность/реальность моста/коммутатора не должна влиять на то как прописывать шлюз

nixtrian ()

Вобщем логично, что тут что то не правильно. Целевого устройства нет, как и phys-out тоже.

В PREROUTING его быть и не должно, по определению. Т.к. в момент прохождения этой цепочки решение о маршрутизации ещё не принято

Что мне тут нужно сделать чтобы правильно направить пакеты с виртуальной машины в инет ?

Проверить, что на машине 1 указаны правильные маршруты.

Убедиться что маршрутизаторы на пути до провайдера не блокируют трафик.

Самый простой вариант - делать на машине 1 MASQUERADE для плакетов, отправляемых с виртуальной машины в интернет

router ★★★★★ ()
Ответ на: комментарий от nixtrian

хотя тут я наверно погорячился, ведь у него IN=br0.

хотелось бы уточнить в какой таблице в цепочке прероутинг это логируется, и правильно ли я понял, что пакеты в цепочку FORWARD таблицы filter не попадают?

nixtrian ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.