Текущая ситуация:
У меня есть хост с 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.