LINUX.ORG.RU

История изменений

Исправление roman77, (текущая версия) :

Ну разумеется не работает инет в контейнере. Так все закрутил.

Можешь все упростить себе, убрав

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

и добавив

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Или же сделать все правильно (на мой взгляд)

### /etc/network/interfaces
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up iptables-restore < /etc/iptables.up.rules

Пусть eth0 будет подключен в мост. Как минимум хуже от этого не станет, плюс будет удобнее.

Очистить правила iptables, после сделать

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save > /etc/iptables.up.rules

Т.к. eth0 уже будет в мосте, правило iptables для eth0 добавлять не надо. Контейнеры будут получать адрес по dhcp, как и локальная машина.

И не забудь поменять все секцию network в конфиге lxc на

lxc.network.type = veth                                                                                                                                                                                                                                                           
lxc.network.flags = up                                                                                                                                                                                                                                                            
lxc.network.link = br0                                                                                                                                                                                                                                                            
lxc.network.name = eth0

Исправление roman77, :

Ну разумеется не работает инет в контейнере. Так все закрутил.

Можешь все упростить себе, убрав

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

и добавив

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Или же сделать все правильно (на мой взгляд)

### /etc/network/interfaces
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up iptables-restore < /etc/iptables.up.rules

Пусть eth0 будет подключен в мост. Как минимум хуже от этого не станет, плюс будет удобнее.

Очистить правила iptables, после сделать

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save > /etc/iptables.up.rules

Т.к. eth0 уже будет в мосте, правило iptables для eth0 добавлять не надо. Контейнеры будут получать адрес по dhcp, как и локальная машина.

И не забудь поменять

lxc.network.link = br0

Исправление roman77, :

Ну разумеется не работает инет в контейнере. Так все закрутил.

Можешь все упростить себе, убрав

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

и добавив

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Или же сделать все правильно (на мой взгляд)

### /etc/network/interfaces
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up iptables-restore < /etc/iptables.up.rules

Пусть eth0 будет подключен в мост. Как минимум хуже от этого не станет, плюс будет удобнее.

Очистить правила iptables, после сделать

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save > /etc/iptables.up.rules

Т.к. eth0 уже будет в мосте, правило iptables для eth0 добавлять не надо. Контейнеры будут получать адрес по dhcp, как и локальная машина.

А это вообще убрать

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

И поменять

lxc.network.link = br0

Исходная версия roman77, :

Ну разумеется не работает инет в контейнере. Так все закрутил.

Можешь все упростить себе, убрав

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

добавив

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Или сделать все правильно (на мой взгляд)

### /etc/network/interfaces
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up iptables-restore < /etc/iptables.up.rules

Пусть eth0 будет подключен в мост. Как минимум хуже от этого не станет, плюс будет удобнее.

Очистить правила iptables, после сделать

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save > /etc/iptables.up.rules

Т.к. eth0 уже будет в мосте, правило iptables для eth0 добавлять не надо. Контейнеры будут получать адрес по dhcp, как и локальная машина.

А это вообще убрать

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.1.3

И поменять

lxc.network.link = br0