История изменений
Исправление Pinkbyte, (текущая версия) :
Если до самой машины доступ нужен с VPS(там будут DNAT-правила на какие-то определенные порты например или вообще будет отдельный белый IP смаплен один-к-одному), тогда всё просто(это всё на машине за NAT-ами):
# ip rule
0: from all lookup local
1000: iif eth0 lookup prov
2000: iif tun0 lookup vps
32766: from all lookup main
32767: from all lookup default
# ip route show table prov
default via your_provider_gateway dev eth0
# ip route show table vps
default dev tun0
где eth0 - интерфейс к провайдеру, tun0 - туннельный интерфейс до твоей VPS-ки (туннельный протокол выбирай по вкусу).
В таблице main ничего трогать не надо, там маршрут по умолчанию должен через провайдера идти.
Правила с -j MASQUERADE на eth0 и tun0 - само собой нужны.
rp_filter скорее всего придется выключить, учти это.
-----------------------------------------------------------
Самое потное начинается если тебе надо форвардить с этой машины за NAT-ом трафик куда-то дальше(например она шлюз для еще одной локальной сети и туда что-то пробрасывается через DNAT-правила). Тут придется долго и вдумчиво приседать с CONNMARK-ами(--set-mark, --restore-mark, вот этой вот всё).
Исправление Pinkbyte, :
Если до самой машины доступ нужен с VPS(там будут DNAT-правила на какие-то определенные порты например или вообще будет отдельный белый IP смаплен один-к-одному), тогда всё просто(это всё на машине за NAT-ами):
# ip rule
0: from all lookup local
1000: iif eth0 lookup prov
2000: iif tun0 lookup vps
32766: from all lookup main
32767: from all lookup default
# ip route show table prov
default via your_provider_gateway dev eth0
# ip route show table vps
default dev tun0
где eth0 - интерфейс к провайдеру, tun0 - туннельный интерфейс до твоей VPS-ки (туннельный протокол выбирай по вкусу).
В таблице main ничего трогать не надо, там маршрут по умолчанию должен через провайдера идти.
Правила с -j MASQUERADE на eth0 и tun0 - само собой нужны.
rp_filter скорее всего придется выключить, учти это.
-----------------------------------------------------------
Самое потное начинается если тебе дальше форвардить с этой машины за NAT-ом трафик куда-то дальше(например она шлюз для еще одной локальной сети и туда дальше что-то пробрасывается через DNAT-правила на ней). Тут придется долго и вдумчиво приседать с CONNMARK-ами(--set-mark, --restore-mark, вот этой вот всё).
Исходная версия Pinkbyte, :
Если до самой машины доступ нужен с VPS(там будут DNAT-правила на какие-то определенные порты например или вообще будет отдельный белый IP смаплен один-к-одному), тогда всё просто:
# ip rule
0: from all lookup local
1000: iif eth0 lookup prov
2000: iif tun0 lookup vps
32766: from all lookup main
32767: from all lookup default
# ip route show table prov
default via your_provider_gateway dev eth0
# ip route show table vps
default dev tun0
где eth0 - интерфейс к провайдеру, tun0 - туннельный интерфейс до твоей VPS-ки (туннельный протокол выбирай по вкусу).
В таблице main ничего трогать не надо, там маршрут по умолчанию должен через провайдера идти.
Правила с -j MASQUERADE на eth0 и tun0 - само собой нужны.
rp_filter скорее всего придется выключить, учти это.
-----------------------------------------------------------
Самое потное начинается если тебе дальше форвардить с этой машины за NAT-ом трафик куда-то дальше(например она шлюз для еще одной локальной сети и туда дальше что-то пробрасывается через DNAT-правила на ней). Тут придется долго и вдумчиво приседать с CONNMARK-ами(--set-mark, --restore-mark, вот этой вот всё).