Я не разбираюсь в режимах lxc network.
Я бы хотел иметь 4 гостей: apache1, apache2, database и frontdoor
frontdoor - это кальмар, который решает, какой apache следует использовать
Он отлично работает на vservers, когда у всех гостей есть фиктивный интерфейс (изолированный от сети), а у frontdoor есть два интерфейса: настоящий eth0 и фиктивный.
Теперь я перехожу на lxc и вместо фиктивного использую мост (на хосте) и mode = veth (на гостях)
Мне не нравится видеть четыре vethLIJG3f в ifconfig, но давайте посмотрим, все в порядке.
проблема в том, что я НЕ МОГУ добраться до squid. Я пытаюсь использовать iptables -t NAT -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 172.16.0.2, но это просто не работает.
Интересно, стоит ли мне поменять veth на что-то другое?
Есть такая же проблема. Я пытался перенаправить порты в контейнер lxc с помощью
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 7070 -j DNAT --to-destination 172.16.110.15:7070
Но не работает. Решение было действительно простым:
iptables -t nat -A РАЗМЕЩЕНИЕ -o br0 -j МАСКЕРАД
Подробнее см. этот
Ну это интересно, я играю с vserver'ом и не очень понимаю, как он работает с eth и dummy.
Как бы то ни было, в вашем случае, я думаю, вам нужно включить ip forwarding.
sysctl -w net.ipv4.conf.all.forwarding=1
Проверьте /etc/sysctl.conf, чтобы сделать его постоянным
Интерфейс именования, который входит в мост, - хорошая идея, если вы хотите знать, кто есть кто. В конфигурационном файле lxc:
lxc.network.veth.pair=eth0-guest1
network в lxc позволяет создавать более сложные сети. Например, вы можете смоделировать реальный «прокси» с двумя виртуальными интерфейсами, один на мосту (скажем, br0), подключенным к Интернету (общедоступные IP-адреса, dmz, что угодно), другой (скажем, br1), подключенный к «внутренним службам».
.-----------.
| host eth0 |<----.
'-----------' |
.-------------------. .-------------------.
| br0 (public IP) | | br1 (10.1.1.1/24) |
'-------------------' '-------------------'
^ .--------------------. ^
'------------| guest squid |----|
'--------------------' |
.---------------. |
| guest apache1 |----'
'---------------' |
.---------------. |
| guest apache2 |----'
'---------------' |
.----------------.
| guest database |
'----------------'
Примечание: для второго виртуального интерфейса Ethernet просто повторите строфу lxc.network ...