У меня есть 2 подключения к Интернету в моей сети. Мой маршрутизатор работает под управлением Debian. eth0 - моя сеть (192.168.0.0/16). eth1 и eth2 подключены к 2 различным интернет-провайдерам (с динамическим IP).
Вот небольшой рисунок моей конфигурации
PC1 ---| |-eth1- DynIP provider 1 PC2 ---|-eth0- Router --- | PCn ---| |-eth2- DynIP provider 2
Я пытаюсь настроить его следующим образом: я хочу, чтобы все пакеты по умолчанию шли через eth1. Все пакеты, приходящие с ПК с адресом 192.168.2.0/24, проходят через eth2.
После некоторого поиска и публикации на других форумах у меня уже есть следующее (в моем файле rc.local):
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -i eth2 -j ACCEPT
с таблицей маршрутов:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 172.16.1.50 0.0.0.0 UG 0 0 0 eth1 0.0.0.0 10.0.4.2 0.0.0.0 UG 0 0 0 eth2 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Я пытался играть с route
и ip route
но я не могу найти его работать ...
Решения о маршрутизации основываются на адресах назначения. Если вы хотите маршрутизировать трафик на основе адреса источника, вам необходимо настроить маршрутизацию на основе политик. Посмотри на:
http://www.linuxhorizon.ro/iproute2.html
Я ответил на эти похожие вопросы несколько недель назад:
Как я могу маршрутизировать разный трафик через разные интерфейсы (маршруты) по протоколу?