LINUX.ORG.RU

История изменений

Исправление 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, вот этой вот всё).