
Я настраиваю сервер маршрутизации на Linux.
- Ethernet-соединение (eth0) с Интернетом (быстрое, но не позволяет получить доступ к некоторым сайтам);
- Ссылка OpenVPN (tun0) для предоставления доступа в Интернет локальным пользователям;
- OpenVPN-ссылка (tun1) на прокси-сервер, который является вторым интернет-ссылкой (медленной, бесплатной).
Моя цель такова: для общего доступа в Интернет маршрутизировать их через eth0; для сайтов, которые не могут быть связаны с eth0, маршрутизировать их через tun1.
Первые эксперименты прошли успешно. Я вручную установил таблицу маршрутизации для нескольких тестовых сайтов, и она работает так, как и ожидалось. Но их тысячи, и со временем она меняется. Поэтому мне нужно искать другой путь.
Я попытался настроить quagga (с включенными zebra и ospfd) и хотел, чтобы он автоматически проходил через tun1, когда пользователи не могут получить доступ к сайту через ссылку 1 (eth0). На самом деле я настроил и tun1, и eth0 как маршруты по умолчанию, но я не получил того, что хотел.
Проблема заблокировала меня на несколько дней. Я не знаком с ospf, поэтому не знаю, возможно ли это с ospfd.
Мне нужны ваши предложения! Пожалуйста, поправьте меня, если есть лучший способ.
решение1
Я понимаю, что проблема в том, что вам нужно задать правила маршрутизации на клиентских машинах OpenVPN? Вы пробовали route pushing в конфигурации сервера OpenVPN?
push "route IP MASK vpn_gateway";
(заменятьИСиМАСКАсоответственно для соответствия вашим целям маршрутизации).
С использованиемпзсопция, вы даже можете навязывать разные правила для каждого клиента. Проконсультируйтесь man openvpn
для получения подробной информации. Не забудьте включитьтянутьиликлиентдиректива в клиентских конфигурациях.