Добрый день!
Есть ПК (дальше «хост»), на котором есть LXC-контейнер (дальше «контейнер»). Хост по vpn подключен к другой сети, в которую хочу получить доступ из контейнера. Пингую хост за vpn из контейнера - ответов не получаю. На хосте в tcpdump вижу такую картину - пинг уходит с ip контейнера в качестве источника, а ответ приходит с ip хоста (не контейнера) в качестве назначения и дальше в контейнер пакет не натится. Ресурсы в интернетах из контейнера доступны. Виртуалка в virtualbox на этом же хосте нормально может общаться с хостами за vpn. В случае с virtualbox в настройках сетевого адаптера указан просто NAT, конфиг контейнера:
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = virbr0
lxc.network.ipv4 = 192.168.122.2/24
ifconfig хоста (lo не стал писать)
tap0 Link encap:Ethernet HWaddr 02:ac:36:d9:56:3a
inet addr:172.16.3.31 Bcast:172.16.3.255 Mask:255.255.255.0
inet6 addr: fe80::ac:36ff:fed9:563a/64 Scope:Link
UP BROADCAST RUNNING MTU:1380 Metric:1
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
wlan0 Link encap:Ethernet HWaddr 74:e5:43:78:d4:f0
inet addr:10.0.1.210 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::76e5:43ff:fe78:d4f0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
tap0
- это интерфейс vpn-клиента, virbr0
- интерфейс lxc, wlan0
- wifi, то есть выход в интернеты.
iptables
*mangle
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
*nat
-A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
*filter
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
COMMIT
Правила в iptables не меняются при включении\отключении виртуалки в virtualbox. На мой взгляд все в норме, но явно что-то упускаю.
В общем я не знаю куда копать, подскажите, пожалуйста. Заранее огромное спасибо!