Назад | Перейти на главную страницу

Подключите виртуальную сеть KVM к Интернету

У меня есть сервер CentOS с KVM, и мне нужно подключить виртуальную сеть к Интернету. Сеть должна быть маршрутизирована или преобразована через NAT, она не должна быть мостовой (безопасность порта). Если возможно, я хотел бы подключить сеть к псевдониму eth0 со вторым IP-адресом и оставить первый IP-адрес для хоста, но можно было бы это изменить. Гости не предоставляют услуги, которые должны быть доступны в Интернете, но им нужен доступ к хозяину.

Я не могу найти никаких инструкций, как сделать это только с помощью сетевых средств KVM. Есть несколько хороших упоминаний о том, как подключить одну машину или отдельные порты от нескольких машин, но ничего не обсуждает, как подключить всю сеть и заставить ее обрабатывать коммутацию трафика между машинами. Есть несколько статей, в которых предлагается использовать виртуальную сеть с маршрутизацией, но, похоже, в данном случае она ничем не отличается от сети с NAT.

Open vSwitch упоминался несколько раз, хотя в той небольшой документации, которая существует, похоже, обсуждается его запуск с помощью моста. В нескольких статьях говорится, что они запускают его в режиме NAT, а затем переходят к настройке того, что выглядит как мост. Несмотря на это, я работаю над созданием OVS, пытаясь это настроить.

Неважно, какой вам понадобится мост на хосте. Как еще гость будет общаться с сетью? Различие заключается в том, добавляете ли вы интерфейс хоста к мосту, и пересылка происходит на уровне 2 (Ethernet) или нет, а пересылка происходит на уровне 3 (сеть).

Поскольку безопасность порта включена, разрешен только MAC-адрес хоста. Таким образом, вы не можете пересылать на уровне 2. У вас есть два варианта уровня 3: иметь маршрут хоста (оставить IP-адреса в покое) или NAT (переписать IP-адреса на IP-адреса хоста).

Если вы маршрутизируете остальную часть сети, необходимо знать, что для достижения ваших гостей они отправляют трафик на ваш хост (который является шлюзом по умолчанию для гостевой сети). Вам не дали маршрутизируемую подсеть, только 2 IP. Таким образом, вы должны NAT.

Гости подключают свои интерфейсы к мосту, а вы пишете правила таблиц IP для трафика NAT, поступающего с интерфейса моста. libvirt сделает это за вас. Видеть http://wiki.libvirt.org/page/Networking#NAT_forwarding_.28aka_.22virtual_networks.22.29