Я хочу настроить простую подсеть гостевых виртуальных машин KVM / QEMU, живущих на одном хосте (Fedora 19), для целей тестирования. Подсеть будет содержать 3 сервера:
eth0 ip: 10.0.0.7 eth1 ip: 10.0.2.1
eth0 IP: 10.0.2.2
eth0 IP: 10.0.2.3
и (возможно) несколько клиентов.
Идея состоит в том, чтобы смоделировать подсеть, в которой только одна виртуальная машина (№1 из приведенного выше) подключена к сети WAN и служит шлюзом / маршрутизатором для остальных.
В настоящее время я экспериментирую с настройкой, основанной на описанной здесь:
http://csortu.blogspot.com/2009/12/building-virtual-network-with-qemu.html
Но на данный момент, похоже, не может предоставить другим виртуальным машинам, кроме №1, подключение к глобальной сети.
У меня два вопроса: 1. Есть ли решение попроще? 2. (если нет) как я могу подключить другие виртуальные машины к внешнему миру, используя виртуальную машину №1 в качестве шлюза.
P.s. Наверное, стоит упомянуть, что все ВМ соединяются друг с другом, но доступ к WAN доступен только на №1.
РЕДАКТИРОВАТЬ: По запросу, вот полная конфигурация сети.
ВЕДУЩИЙ: Fedora 19 x86-64 напрямую подключен к моему домашнему маршрутизатору (10.0.0.1) в сети 10.0.0 / 24 (только для печати соответствующих интерфейсов)
3: wlp12s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0c:60:76:64:c5:9d brd ff:ff:ff:ff:ff:ff
inet 10.0.0.3/28 brd 10.0.0.15 scope global wlp12s0
valid_lft forever preferred_lft forever
inet6 fe80::e60:76ff:fe64:c59d/64 scope link
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 2e:47:f7:fc:f2:fb brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
ВМ:
Вот команда запуска (я изменил конфигурацию сети пользователя QEMU по умолчанию, чтобы отразить мою домашнюю сеть, и перенаправил порт HOST 2222 для доступа к порту 22-ssh в ГОСТЕ)
qemu-system-x86_64 -cpu host -enable-kvm --name Debian6-amd64 -hda VMs/Debian6/sda.img -hdb VMs/Debian6/sdb.img -net nic,vlan=1 -net user,vlan=1,hostfwd=tcp::2222-:22,net=10.0.0.0/24,dhcpstart=10.0.0.7 -net nic,vlan=2,macaddr=52:54:00:00:02:01 -net socket,vlan=2,listen=localhost:1234 -m 512 -boot c -nographic
и вот конфиги интерфейса:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.7/24 brd 10.0.0.255 scope global eth0
inet6 fe80::5054:ff:fe12:3456/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:01 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.1/24 brd 10.0.2.255 scope global eth1
inet6 fe80::5054:ff:fe00:201/64 scope link
valid_lft forever preferred_lft forever
Команда запуска:
qemu-system-x86_64 -cpu host -enable-kvm --name Debian7-amd64 -hda VMs/Debian7/sda.img -hdb VMs/Debian7/sdb.img -net nic,vlan=2,macaddr=52:54:00:00:02:02 -net socket,vlan=2,connect=localhost:1234 -m 512 -boot c -nographic
и конфигурация интерфейса
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:02 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.2/24 brd 10.0.2.255 scope global eth0
inet6 fe80::5054:ff:fe00:202/64 scope link
valid_lft forever preferred_lft forever
Команда запуска:
qemu-system-x86_64 -cpu host -enable-kvm --name CentOS6-x86_64 -hda VMs/CentOS6/sda.img -hdb VMs/CentOS6/sdb.img -net nic,vlan=2,macaddr=52:54:00:00:02:03 -net socket,vlan=2,connect=localhost:1234 -m 512 -boot c -nographic
и конфигурация интерфейса
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:02:03 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.3/24 brd 10.0.2.255 scope global eth0
inet6 fe80::5054:ff:fe00:203/64 scope link
valid_lft forever preferred_lft forever
Настроена ли виртуальная машина Debian6 для пересылки IP-пакетов?
Вы настроили маршруты по умолчанию на двух других виртуальных машинах, указывающих на виртуальную машину Debian 6?
Если да, не могли бы вы попробовать изменить внутреннюю сеть на другую основную подсеть, отличную от 10.x.x.x, то есть 192.168.1.x / 24?
После использования новой внутренней подсети вам необходимо настроить маршрут к внутренней подсети 192.168.1.x на вашем интернет-маршрутизаторе, указывающей на виртуальную машину Debian6.