LINUX.ORG.RU

NixOS. Не работает SNAT.

 , , , ,


0

2

Имеется 2 конфигурации: на Аrchlinux и на NixOS.
Обе конфигурации выступают в роли VPN сервера с WireGuard.
Суть в том, что при подключении клиентов к Archlinux серверу, клиенты могут пропинговать любой IPv6 в интернете.
К примеру гугловский IPv6.
Но если подключаться к NixOS серверу, то ICMP Request уходит с клиента через сервер на удаленный IPv6 адрес (гугловский к примеру) и возвращает ICMP Reply, который приходит на enp0s3 интерфейс сервера (который смотрит в интернет) и все.
Дальше enp0s3 интерфейса пакет не уходит, хотя должен уходить на интерфейс wg0, через который клиенты с сервером обмениваются шифрованными пакетами.
Т.е. tshark -i wg0 показывает только ICMP Request пакеты. ICMP Reply почему-то просто не попадают в wg0.
Хотя выхлоп ip a, ip -6 route, route -6, nft list ruleset идентичен.
Возможно это что-то NixOS-специфичное, поэтому вопрос - в какую сторону копать и на что обратить внимание.
Может какие-нибудь опции в ядре NixOS-а не включены?
https://git.archlinux.org/svntogit/packages.git/tree/trunk/config.x86_64?h=pa... - опции ядра Archlinux.
https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/co... - опции ядра NixOS.
Заранее спасибо.



Последнее исправление: Sorcus (всего исправлений: 2)

Логи tshark с сервера.

Capturing on 'enp0s3'
   12 1.296519802 2a01:4f8:xx:xx::5 → 2a01:4f8:xx:xx::10 UDP 94 50005 → 50010 Len=32
   13 1.297167670 fe80::ca60:xx:xx:f0c0 → 2a01:4f8:xx:xx::5 ICMPv6 190 Redirect is at 52:54:00:xx:xx:a0
   15 1.508276152 2a01:4f8:xx:xx::10 → 2a01:4f8:xx:xx::5 DCERPC 206 Request: seq: 4169046622 opnum: 23366 len: 40424[Malformed Packet]
   16 1.508525208 2a01:4f8:xx:xx::5 → 2a02:2698:xx:xx::41 ICMPv6 118 Echo (ping) request id=0x0915, seq=11, hop limit=63
   17 1.556568357 2a02:2698:xx:xx::41 → 2a01:4f8:xx:xx::5 ICMPv6 118 Echo (ping) reply id=0x0915, seq=11, hop limit=53 (request in 16)
   18 1.808503584 fe80::250:xx:xx:7b1e → fe80::5054:xx:xx:c4a0 ICMPv6 86 Neighbor Solicitation for fe80::5054:xx:xx:c4a0 from 00:50:56:xx:xx:1e
   19 1.810930911 fe80::5054:xx:xx:c4a0 → fe80::250:xx:xx:7b1e ICMPv6 78 Neighbor Advertisement fe80::5054:xx:xx:c4a0 (sol)
   20 2.532270536 2a01:4f8:xx:xx::10 → 2a01:4f8:xx:xx::5 DCERPC 206 Request: seq: 3421972787 opnum: 30326 len: 10815[Malformed Packet]
   21 2.533917054 2a01:4f8:xx:xx::5 → 2a02:2698:xx:xx::41 ICMPv6 118 Echo (ping) request id=0x0915, seq=12, hop limit=63
   22 2.579712412 2a02:2698:xx:xx::41 → 2a01:4f8:xx:xx::5 ICMPv6 118 Echo (ping) reply id=0x0915, seq=12, hop limit=53 (request in 21)
   23 3.556285584 2a01:4f8:xx:xx::10 → 2a01:4f8:xx:xx::5 DCERPC 206 Request: seq: 458444027 opnum: 44557 len: 37847[Malformed Packet]
   24 3.556497822 2a01:4f8:xx:xx::5 → 2a02:2698:xx:xx::41 ICMPv6 118 Echo (ping) request id=0x0915, seq=13, hop limit=63
   26 3.602518356 2a02:2698:xx:xx::41 → 2a01:4f8:xx:xx::5 ICMPv6 118 Echo (ping) reply id=0x0915, seq=13, hop limit=53 (request in 24)
Capturing on 'wg0'
    1 0.000000000     fc00::10 → 2a02:2698:xx:xx::41 ICMPv6 104 Echo (ping) request id=0x091b, seq=15, hop limit=64
    2 1.023995667     fc00::10 → 2a02:2698:xx:xx::41 ICMPv6 104 Echo (ping) request id=0x091b, seq=16, hop limit=64
    3 2.047828254     fc00::10 → 2a02:2698:xx:xx::41 ICMPv6 104 Echo (ping) request id=0x091b, seq=17, hop limit=64
    4 3.071925425     fc00::10 → 2a02:2698:xx:xx::41 ICMPv6 104 Echo (ping) request id=0x091b, seq=18, hop limit=64
    5 4.095841079     fc00::10 → 2a02:2698:xx:xx::41 ICMPv6 104 Echo (ping) request id=0x091b, seq=19, hop limit=64

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

Да тут походу не только по дистру, но и в целом по сетям специалистов нету...

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

Дык, если б хотя бы кто-нибудь подсказал, в какую сторону копать...
А то хрень какая-то... ip6tables snat работает, а nftables snat нет. При этом в арче работают оба. В общем не знаю уже...

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

anyone with networking background to help this person?

Твое что-ль?

ой, я расшевелил кого-то в ирке https://github.com/NixOS/nixpkgs/issues/27093#issuecomment-313017681

Угум-с, ответ читал. Я уже nftables по всякому крутил, пакеты не возвращаются...
Сейчас сижу собираю образ, добавив несколько опций в конфиг ядра из статьи, которую ving2 скинул.
Может заработает... А может и нет. Посмотрим-с.

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

Не помогает. Как не работало, так и не работает...
Пакеты не возвращаются обратно в wg0 интерфейс.
Я уже без понятия, как исправлять.
Все ядра перепробовал, версию Wireguard-а самую свежую ставил...
Может есть еще какие идеи?

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

Может есть еще какие идеи?

не а, кастани кого-нить у кого скилла побольше. С nftables вообще не приходилось связываться.

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