KT315, спасибо, но дошло до самого.
fisher74, отдельное спасибо за вопрос по части знания про сеть 192.168.1.0/0, решил прослушать, что идёт по tun0 интерфейсу:
tcpdump -i tun0tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
01:11:50.038485 IP 192.168.1.50.54173 > 10.90.0.3.http: Flags [S], seq 372708007, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
01:11:50.284318 IP 192.168.1.50.54174 > 10.90.0.3.http: Flags [S], seq 2491816030, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
01:11:53.026057 IP 192.168.1.50.54172 > 10.90.0.3.http: Flags [S], seq 4006219262, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
01:11:53.026080 IP 192.168.1.50.54173 > 10.90.0.3.http: Flags [S], seq 372708007, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
01:11:53.276166 IP 192.168.1.50.54174 > 10.90.0.3.http: Flags [S], seq 2491816030, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
01:11:59.031636 IP 192.168.1.50.54172 > 10.90.0.3.http: Flags [S], seq 4006219262, win 8192, options [mss 1460,nop,nop,sackOK], length 0
01:11:59.031660 IP 192.168.1.50.54173 > 10.90.0.3.http: Flags [S], seq 372708007, win 8192, options [mss 1460,nop,nop,sackOK], length 0
01:11:59.282391 IP 192.168.1.50.54174 > 10.90.0.3.http: Flags [S], seq 2491816030, win 8192, options [mss 1460,nop,nop,sackOK], length 0
Отсюда увидел, что адрес источника не изменился и машина 10.90.0.3 просто не в курсе, куда возвращать пакет, возвращает его в дефолтовый шлюз (который ни разу не 10.90.0.1)
Добавил правило:
iptables -t nat -A POSTROUTING -s 192.168.1.50/32 -o tun0 -j MASQUERADE
и всё заработало.
Вопрос решён, всем ещё раз спасибо.