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

Несколько IP-адресов на eth0, соединение с виртуальными машинами и маршрутизация

Текущая ситуация:

У меня есть хост с 3 виртуальными машинами. Один IP для eth0 (xxx.xxx.xxx.239) и один дополнительный для eth0: 1 (yyy.yyy.yyy.35). Это отлично работает для меня ...

Host (eth0) (xxx.xxx.xxx.239) | 
                              | <- (virbr0) -> |-- VM1 (10.0.0.21)
                                               |-- VM2 (10.0.0.22)
                                               |-- VM3 (10.0.0.23)

... но я хочу получить доступ к моей третьей дополнительной виртуальной машине с помощью внешний IP (yyy.yyy.yyy.35) на одном интерфейсе и ко второму (10.0.0.23) интерфейс для внутренних целей:

Host (eth0) (xxx.xxx.xxx.239) | 
                              | <- (virbr0) -> |-- VM1 (10.0.0.21)
                                               |-- VM2 (10.0.0.22)
                                               |-- VM3 (10.0.0.23)

Host (?!?) (?!?)              |
                              |-- VM3 (yyy.yyy.yyy.35)

Как это реализовать и какие правила iptable мне нужны?

Заранее спасибо.

Лучше всего сначала сделать eth0 часть моста, скажем так phybr0. Затем назначьте дополнительную сетевую карту вашей виртуальной машине, которая подключена к phybr0. И наконец, позволив виртуальной машине yyy.yyy.yyy.35 адрес, назначенный ему изнутри, изначально. Кроме того, ваш хост-компьютер будет запускать xxx.xxx.xxx.239 IP-адрес на phybr0, и нет eth0. Это может быть отправной точкой: http://www.linux-kvm.org/page/Networking#public_bridge .

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