У меня Ubuntu 12.04 Server edition
Два шлюза, оба на 192.168.0. сеть, сделаем 192.168.0.1 и 192.168.0.2
Я читал, что у вас должна быть возможность добавить второй шлюз в / etc / network / interfaces, что он автоматически построит всю маршрутизацию, но я получаю ошибку «дублирующийся параметр».
Итак, если у меня есть один шлюз по умолчанию, скажем 0,1, и соединение идет через шлюз 0,2, я понимаю, что он все еще пытается ответить через шлюз 0,1.
Можем ли мы изменить это поведение?
Вам нужен способ отличить, на какой шлюз пришел пакет, чтобы направить ответ на правильный шлюз. Обычно это достигается за счет наличия нескольких IP-адресов на хосте и использования маршрутизация исходной политики для выбора шлюза на основе адреса отправителя ответных пакетов. Я предполагаю, что шлюзы являются независимыми подключениями к Интернету, и что входящие подключения подвергаются DNAT (или перенаправлению портов) шлюзами. Вам необходимо привязать к машине дополнительные IP-адреса и настроить шлюзы DNAT на разные адреса, чтобы машина могла определить разницу.
Вам нужна политика маршрутизации. Один из способов, который можно сделать в вашем случае, - «сохранить» информацию для входящего шлюза. Решение, которое я использовал много раз, например, для отметки соединения на основе MAC-адреса и маршрутизации на основе отметки. Вы можете настроить столько шлюзов, сколько захотите, и этот способ работает как шарм. РЕДАКТИРОВАТЬ: Чтобы быть более конкретным: отметьте входящие новые пакеты на основе MAC-адреса, отметьте исходящие пакеты на основе флага connmark, используйте отметку, чтобы направить исходящие пакеты в определенную таблицу маршрутизации для этого шлюза. (См. Iproute2).