Коробка Ubuntu сервер имеет 2 сетевых интерфейса:
eth0 50.57.71.100
eth1 10.182.161.100
Коробка Ubuntu клиент имеет 1 сетевой интерфейс:
eth0 10.177.30.100
сервер и клиент уже могут разговаривать друг с другом нормально. Вот это клиенттаблица маршрутизации:
10.176.0.0/12 via 10.177.0.1 dev eth0
10.177.0.0/17 dev eth0 proto kernel scope link src 10.177.30.100
10.208.0.0/12 via 10.177.0.1 dev eth0
Я включил переадресацию ipv4 на серверядро. Как я могу настроить это так, чтобы любой интернет-трафик с машины клиент проходит через сервер? (например, пинг 8.8.8.8)
Я пробовал добавить маршрут на клиент но потерял все сетевое подключение, пока не удалил его:
route add 10.182.161.100/32 dev eth0
Я попытался установить клиентшлюз по умолчанию для сервер но это не удается:
# route add default gw 10.182.161.100
SIOCADDRT: No such process
Если вам нужен трафик из сети за маршрутизатором 10.177.0.1
чтобы выйти по другому маршруту (конкретно к серверу), настройте маршрут в 10.177.0.1
указывает на сервер.
Это направит весь исходящий трафик, проходящий через 10.177.0.1
через сервер, и я не уверен, что вы этого хотите.
Вы можете установить OpenVPN сервер на вашем сервере и клиент на вашем клиенте. Используя "redirect-gateway def1", маршрут вашего клиента по умолчанию перенаправляется на ваш сервер.
После того, как у вас есть рабочая настройка OpenVPN, вам необходимо развернуть NAT (маскарад), чтобы избавиться от частных IP-адресов клиентов на стороне Интернета.
ОБНОВИТЬ: После комментария Эндрю Шульманса я продолжил исследование. Поскольку ваша цель - не безопасность туннеля, GRE туннель лучше соответствует вашим потребностям и его проще настроить. В вашем случае маршрут клиента по умолчанию должен указывать на сервер, и вам нужно выполнить маскировку:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Чтобы сделать правила iptables постоянными:
service iptables save