Nikolay
18.02.2018
19:09:32
будем выпытывать все, что можно
rus
18.02.2018
19:11:23
Nazar
18.02.2018
19:54:39
Алоха, а есть тут те, кто хорошо в lxc/lxd?
Google
Nazar
18.02.2018
19:56:48
Подняты два контейнера, у каждого контейнера есть интрефейс(bridg)
config:
dns.mode: dynamic
ipv4.address: 10.0.0.1/24
ipv4.dhcp.ranges: 10.0.0.100-10.0.0.200
ipv4.nat: "true"
ipv6.address: none
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/containers/develop
- /1.0/containers/stage
managed: true
Проблема следующая: не получается прокинуть порт с интрефейса с внешним айпи, на порт контейнера
iptables -t nat -A PREROUTING -p tcp --dport 3307 -j DNAT --to-destination 10.0.0.164:3306
Nikolay
18.02.2018
19:58:50
потому что в докере нельзя, про lxc я не уверен
Robert
18.02.2018
19:59:16
Можно
Nazar
18.02.2018
19:59:17
root@157701-20002:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:3307 to:10.0.0.164:3306
DNAT tcp -- anywhere anywhere tcp dpt:3307 to:10.0.0.164:3306
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.0.0.0/24 !10.0.0.0/24 /* generated for LXD network lxdbr0 */
MASQUERADE all -- 10.0.3.0/24 !10.0.3.0/24
Robert
18.02.2018
20:00:04
А с чего ты взял что он не прокинулся?
Nazar
18.02.2018
20:00:35
достучатся не могу
Robert
18.02.2018
20:00:48
С третьей машины?
Или с гипервизора?
Nazar
18.02.2018
20:00:57
из вне
Google
Alexander
18.02.2018
20:01:18
А правило MASQUERADE есть?
Robert
18.02.2018
20:01:29
Есть же
Nazar
18.02.2018
20:01:33
Robert
18.02.2018
20:01:56
Покажи вывод таблицы filter
Alexander
18.02.2018
20:02:49
Т.е. все стандартные вещи сделаны, убрано правило запрещающее форвардинг и включен forwarding в sysctl?
Nazar
18.02.2018
20:04:25
Robert
18.02.2018
20:05:49
Зачем в forward reject all?
Попробуй убери
Хотя перед ним accept all на tcp
Nazar
18.02.2018
20:06:34
Robert
18.02.2018
20:07:32
Ip контейнера верный?
Nazar
18.02.2018
20:07:39
да
Robert
18.02.2018
20:07:40
Там порт 3306 есть?
Alexander
18.02.2018
20:08:06
Да у тебя правило на reject есть.
Nazar
18.02.2018
20:08:13
root@157701-20002:~# lxc list
+------------+---------+-------------------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------------+---------+-------------------+------+------------+-----------+
| develop | RUNNING | 10.0.0.164 (eth0) | | PERSISTENT | 0 |
+------------+---------+-------------------+------+------------+-----------+
| stage | RUNNING | 10.0.0.163 (eth0) | | PERSISTENT | 0 |
+------------+---------+-------------------+------+------------+-----------+
Alexander
18.02.2018
20:08:21
iptables-save покажи.
Nazar
18.02.2018
20:09:36
Alexander
18.02.2018
20:11:29
-A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -m comment --comment "generated for LXD network lxdbr0" -j MASQUERADE
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
А это тебе зачем?
Nazar
18.02.2018
20:12:01
lxd их сам генерит
Google
Robert
18.02.2018
20:12:48
Мне кажется с iptables всё норм
Alexander
18.02.2018
20:12:50
Вот оно что, попробуй добавить правило -A POSTROUTING -p tcp -m tcp --dport 3307 -j MASQUERADE
Robert
18.02.2018
20:13:31
Зачем в postrouting dport?
Там source ip должен быть
Nazar
18.02.2018
20:14:25
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 3306 -j MASQUERADE
вот так!
Robert
18.02.2018
20:14:37
Надоже
Alexander
18.02.2018
20:14:53
Я вечно путаюсь что туда писать надо.
Если помогло, то отлично.
Nazar
18.02.2018
20:15:26
всю голову сломал(
Robert
18.02.2018
20:15:28
Но у тебя же было правило маскарадинга по сорсу
Nazar
18.02.2018
20:15:32
Благодарю ребята!
Robert
18.02.2018
20:16:10
Но ведь оно было
Alexander
18.02.2018
20:16:23
Не туда было, видать. :)
Robert
18.02.2018
20:17:18
Аа, там походу с dst ip было
На ту же сеть
Nazar
18.02.2018
20:17:46
у меня уже эти правила сливаются в глазах)
Robert
18.02.2018
20:18:02
Google
Robert
18.02.2018
20:18:16
В самом низу
Покажи сейчас -t nat
Nazar
18.02.2018
20:18:29
так это то, что нагенерил lxd
root@157701-20002:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:3307 to:10.0.0.164:3306
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.0.0.0/24 !10.0.0.0/24 /* generated for LXD network lxdbr0 */
MASQUERADE all -- 10.0.3.0/24 !10.0.3.0/24
MASQUERADE tcp -- anywhere anywhere tcp dpt:3307
Robert
18.02.2018
20:19:04
Ну да, стоит и src и dst
Taz
18.02.2018
20:24:37
Nikolay
18.02.2018
20:25:22
почему это нельзя?
потому что после того, как ты запустил контейнер с docker run, новых портов ты в него не прокинешь. Или у меня устарелая информация?
Robert
18.02.2018
20:27:06
Не прокинешь средстави докера, т.е. если не сделал -р во время run
Nikolay
18.02.2018
20:27:17
да
а что, извне таки можно?
Robert
18.02.2018
20:27:25
А фаерволом когда угодно можно сделать
Taz
18.02.2018
20:27:33
Nikolay
18.02.2018
20:27:37
прикольно, не знал
Taz
18.02.2018
20:27:46
а как у тебя с линуксом ваще?
докер это чрут на стероидах, как и все контейнеры
Nikolay
18.02.2018
20:28:16
нормально, мог бы и сам допереть, на самом деле
просто думал, там какие-то ограничения хитрые стоят
Taz
18.02.2018
20:28:48
даже если мы создадим еще ифейс со своим ипом каким-то - все равно внутри контейнера процесс будет биндится к порту и слушать
Robert
18.02.2018
20:28:54
Чет вы меня оба запутали
Nikolay
18.02.2018
20:29:16
Google
Taz
18.02.2018
20:29:22
Nikolay
18.02.2018
20:31:06
мол, сраный чрут с сигруппами, чего там такого, что все кипятком ссут
Taz
18.02.2018
20:31:40
Nikolay
18.02.2018
20:31:55
в остальном я по-прежнему против того, чтобы в продакшен деплоить в контейнерах что-то, смотрящее в большой интернет
но всем похер и все все равно это делают
Taz
18.02.2018
20:33:32
Robert
18.02.2018
20:36:01
Nikolay
18.02.2018
20:36:41
логично
у нас кубернетес сейчас в основе всего
Dmitry
18.02.2018
20:41:41