LINUX.ORG.RU

Помощь с docker и wireguard

 , ,


0

1

Привет, народ. Нужна подсказка по работе docker контейнеров на хосте, где есть два интерфейса - eno1 (lan) и wg0 (wireguard), при том, что через wg0 идет 0.0.0.0/0.

Проблема следующая. Если wg0 отключен, то контейнеры, у которых дефолтная docker0 сеть, т.е. не network=host, могут подключаться без ограничений ко всему и в пределах lan, и за пределами (1.1.1.1, линукс.орг.ру и т.д). Как только я поднимаю wg0, доступ у контейнеров ко всему, кроме lan, пропадает.

Правила nftables на хосте такие:

chain forward {
    type filter hook forward priority 0; policy accept
    ct state established, related accept
    iifname $DOCKERIFC oifname { $MAINIFC, $VPNIFC } accept
    oifname $DOCKERIFC iifname { $MAINIFC, $VPNIFC } accept
}
  chain postrouting {
    type nat hook postrouting priority srcnat; policy accept
    ct state invalid drop
    oifname $MAINIFC ip saddr $DOCKERNET snat to $SERVIP
    oifname $VPNIFC ip saddr $DOCKERNET snat to $SERVIP_VPN
}

DOCKERIFC, MAINIFC, VPNIFC - интерфейсы докера, wan и wg соответственно. DOCKERNET - сеть докера, SERVIP - лан адрес хоста, SERVIP_VPN - wg адрес хоста.

Чую, что проблема в правилах построутинга, но не могу понять, в чем конкретно.

Не, тут что-то другое. Правила выглядят корректно. Отключи автороутинг у wg и попробуй ручками. Table = off в конфиг wg-quick. И скинь ip r s до и после.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Хм… Если я правильно понял, интересуют маршруты именно хоста, а не внутри контейнеров (там они вроде как не меняются автоматически при изменении конфига интерфейсов на хосте, если интерфейс на сам docker, конечно). Вот выхлопы:

С погашенным wg:

default via 192.168.0.1 dev eno1 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.112

С дефолтным wg-quick:

default via 192.168.0.1 dev eno1 
10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.4 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.112

С отключенным авто роутингом wg-quick (Table = off в разделе [Interface]):

default via 192.168.0.1 dev eno1 
10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.4 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.112

Получается, what-quick никакие маршруты не добавляет.

TelNaadt
() автор топика
Ответ на: комментарий от TelNaadt

при том, что через wg0 идет 0.0.0.0/0.

Ну ты же видишь, что солгал. Выходит, что так, что эдак, где-то ошибка в маршрутизации. Плюс, непонятно, если ничего не меняется, НАТ должен работать в любом случае.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Я не солгал =) Я понял, о чем ты говоришь (дефолтный маршрут должен был измениться в таблице, но этого не произошло)

[Interface]
Address = 10.8.0.4/24
DNS = 9.9.9.9
PrivateKey = 
Table = off

[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 0.0.0.0/0
Endpoint = IP:PORT
PersistentKeepalive = 10

Вот конфиг пира, на котором все происходит. Подскажи, что не так?

TelNaadt
() автор топика
Ответ на: комментарий от Anoxemian
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.8.0.4/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63

Сразу после

default via 192.168.0.1 dev eno1 
10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.4 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.112
TelNaadt
() автор топика
Ответ на: комментарий от TelNaadt

[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820

Все, ты лжешь зачем-то и рушишь мозг, твои условия и конфиги не совпадают с выхлопом. Очевидный тролль либо преднамеренно, либо тупостью.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Да, мне делать нечего стало в пятницу вечером после Веселов рабочей недели, вот решил зайти на лор поржать…

Тебе видео снять чтоли, чтобы вопросов таких не было? Я сам н понимаю, что за фигня. Свежий дебиан 11 с последними обновами.

TelNaadt
() автор топика
Ответ на: комментарий от TelNaadt

Смотри, если это не троллинг преднамеренный, то остается тупость. С вероятностью 120% ты солгал, приведя неверный конфиг wg. С вероятностью 120% в корректном конфиге обмазано Post/PreUp/Down скриптами, которые реализуют какую-то логику pbr, которая видна в выхлопе wg-quick. В любом случае, я - пасс, не вижу смысла дальнейшей помощи. Кастану @anc , может он захочет помочь.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Чушь какую то пишешь. Не можешь помочь, никто и не требует. Зачем такой треш писать в оправдание отсутствия идей? Ну нет, просто скажи, что нет и все. Ничем не обязан же. Все давай, удачи. Спасибо за попытки. Надеюсь, кто то из опытных подтянется и посоветует, как диагностировать.

TelNaadt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.