Имеется машина с Ubuntu Linux, имеющая один сетевой интерфейс. При помощи гипервизора KVM создано
два гостевых окружения - debian01 и debian02. Задача организовать сетевую связь (виртуальная LAN) между
гостевыми системами и корневой системой и обеспечить выход в интернет, через сетевой интерфейс корневой системы.Настройка корневой системы.
Первым делом нужно создать виртуальный Ethernet коммутатор на базе пакета VDE,
при помощи которого будет создан виртуальный интерфейс tap0, через который будет организована связь
между гостевыми окружениями.
Создаем интерфейс:
sudo vde_switch -tap tap0 -daemon
Проверяем:
ifconfig tap0
tap0 Link encap:Ethernet direcciónHW 00:ff:1b:e7:76:46
DIFUSIÓN MULTICAST MTU:1500 Métrica:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:500
RX bytes:53 (53.0 B) TX bytes:0 (0.0 B)
Привязываем адреса виртуальной сети (192.168.254.0/255):
ifconfig tap0 192.168.254.254 netmask 255.255.255.0
для гостевых окружений, адрес 192.168.254.254 будет использоваться в роли шлюза.
Настройка гостевых систем.
Настраиваем в гостевом окружении сетевой интерфейс eth0 (выделяем первому - IP 192.168.254.1,
второму - 192.168.254.2 и т.д.)
Содержимое /etc/network/interfaces
# loopback
auto lo
iface lo inet loopback
allow-hotplug eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.254.1
netmask 255.255.255.0
network 192.168.254.0
broadcast 192.168.254.255
gateway 192.168.254.254
Для предотвращения виртуальных окружений под одним MAC адресом, меняем MAC виртуальных карт:
sudo aptitude install macchanger
Создаем скрипт /etc/network/if-pre-up.d/macchange, меняющий MAC
#!/bin/sh
if [ ! -x /usr/bin/macchanger ]; then
exit 0
fi
/usr/bin/macchanger -a eth0
Перезапускаем гостевые окружения (вместо $IMAGE подставляем путь к окружению):
sudo /usr/bin/vdeq /usr/bin/kvm $IMAGE -m 512 -localtime -k es
Настройка выхода гостевых систем в интернет.
Проверяем на корневой системе, включен ли форвардинг пакетов между интерфейсами:
sysctl net.ipv4.ip_forward
Если выдало 0, то форвардинг отключен, включаем:
sudo -w sysctl net.ipv4.ip_forward=1
и сохраняем в /etc/sysctl.conf строку
net.ipv4.ip_forward = 1
В скрипте инициализации, после поднятия tap0 интерфейса, включаем трансляцию адресов:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
URL: http://www.debianadmin.com/create-a-lan-for-virtual-servers-...
Обсуждается: http://www.opennet.dev/tips/info/1815.shtml