Тема конечно давно не нова. Задача стояла подружить сервер Linux с 2-мя провайдерами и разграничить доступ по группам:
— 1 группа — провайдер1
-2 группа — провайдер2
Оказалось все достаточно не сложно.
Все решается настройкой iproute2.
Шаг1. Создаем 2 таблицы маршрутизации:
echo "101 prov1" > /etc/iproute2/rt_tables echo "102 prov2" > /etc/iproute2/rt_tables |
Шаг2. Определяем дефолтный маршрут(шлюз) для этих таблиц:
ip route add default via xxx.xxx.xxx.xxx table prov1 ip route add default via yyy.yyy.yyy.yyy table prov2 |
Где xxx.xxx.xxx.xxx — IP-адрес первого шлюза,а yyy.yyy.yyy.yyy IP-адрес второго шлюза
Шаг3. Определяем набор правил, по таблицам :
ip rule add from xxx.xxx.xxx.0/24 table prov1 ip rule add from yyy.yyy.yyy.0/24 table prov2 |
Шаг4. Фаервол.
Тут уже дело каждого, но напомню, что не забываем включить форвард в ядре
echo "1" > /proc/sys/net/ipv4/ip_forward |
Все действия выполнялись от прав root, но рекомендую использовать sudo.