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

Несколько интерфейсов: маршрутизируйте пакеты на определенный интерфейс

У меня есть 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

Я ответил на эти похожие вопросы несколько недель назад:

Как я могу маршрутизировать разный трафик через разные интерфейсы (маршруты) по протоколу?

Использование iptables для пересылки трафика, предназначенного для определенного IP-адреса, через определенный интерфейс