Назад | Перейти на главную страницу

Маршрутизация подсети в Интернет

Маршрутизация интернет-трафика через компьютер в другой подсети

У меня есть 2 ящика debian, и я хотел бы использовать один из них в качестве сервера vpn, а другой - в качестве клиента. Цель состоит в том, чтобы клиент мог получить доступ к Интернету через Интернет-соединение сервера. Другими словами:

client(encrypted packets) ---> ISP1 ----> ISP2 ----> server(decrypts packets) ---->ISP2

и наоборот.

Я настроил свои устройства TUN и могу пинговать. Похоже, это проблема маршрутизации.

client# route -n
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlp1s0
0.0.0.0         0.0.0.0         0.0.0.0         U     1002   0        0 enp2s0
10.0.0.0        10.4.0.1        255.255.255.0   UG    0      0        0 tun1
10.4.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 tun1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 enp2s0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlp1s0

Очевидно, что в настоящее время интернет-запросы проходят через 192.168.1.1. Однако, если я установил для прокси-сервера Mozilla Firefox значение 10.0.0.0, нет ничего доступного. traceroute 10.0.0.0 просто показывает 1 прыжок.

server# route -n
0.0.0.0         192.168.0.1     0.0.0.0         UG    202    0        0 eth0
10.0.0.0        10.4.0.2        255.255.255.0   UG    0      0        0 tun1
10.4.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.0.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0

Чего не хватает?

Для этого потребуются как новые маршруты, так и брандмауэр, чтобы позволить клиенту получить доступ в Интернет через сервер.

Предположим, что VPN-соединение используется для подключения клиента к серверу, а подсеть VPN между клиентом и сервером является одноранговой, а идентификатор подсети: 10.40.0.0.

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

ip route change default via 10.4.0.2

Между тем, вам необходимо создать правило NAT в политике брандмауэра сервера, чтобы весь интернет-трафик принимался исходящим от самого сервера. Предположим, что сетевой интерфейс с выходом в Интернет eth0, правило NAT выглядит следующим образом:

iptables -t nat -A POSTROUTING -s 10.4.0.0/24 -o eth0 -j MASQUERADE

Надеюсь, это поможет.