Два интерфейса - проблема с доступом в Интернет

У меня есть два интерфейса: eth0 и eth1. Оба они имеют статические адреса. Они подключены к разным маршрутизаторам, и оба маршрутизатора имеют доступ в Интернет. Я использовал этот учебник для настройки ссылок: https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System.

Проблема в том, что у меня есть доступ к обеим подсетям, но я подключаюсь только к Интернету через eth0. Когда я пытаюсь использовать ссылку eht1 f.ex. для ping я получил Destination Host Unreachable

Как настроить ссылки для доступа к Интернету через оба из них.

route -n:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

Когда я устанавливаю 10.10.0.1 в качестве шлюза по умолчанию, я подключаюсь к Интернету только через eth1.

/ etc / network / interfaces:

auto eth0 iface eth0 inet static address 192.168.1.202 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 10.10.0.10 netmask 255.255.255.0 post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2 post-up ip route add default via 10.10.0.1 dev eth1 table rt2 post-up ip rule add from 10.10.0.10/32 table rt2 post-up ip rule add to 10.10.0.10/32 table rt2
0
задан 9 May 2017 в 08:06

2 ответа

В настоящий момент система может иметь только один шлюз. Только вы можете заставить какой-либо трафик aka ssh, ftp, .. или в определенную сеть перейти на другой интерфейс

Трафик трафика на определенный порт через определенный интерфейс

Пример: [ ! d2]

Здесь мы возьмем port 4444 как службу для маршрутизации. Используйте таблицу mangle iptables для изменения пакетов 4444.

sudo iptables -t mangle -A OUTPUT -p tcp –dport 4444 -j MARK –set-mark 0×1

Мы отмечаем все пакеты с адресатом port 4444 как «0 × 1».

To удалите эту запись из iptables, мы можем использовать -D вместо -A.

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_table, просто добавив запись

100 4444table

Записать правило для пакетов 4444.

ip rule add fwmark 0×1 lookup 4444table

Добавить маршрут в новую таблицу 4444table. Здесь мы будем использовать '192.168.1.1' в качестве шлюза для 4444.

Скопируем все записи, кроме записи по умолчанию из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4444table $ROUTE; done

Добавить запись шлюза по умолчанию для пакетов 4444 в таблицу 4444table

sudo ip route add default via 192.168.1.1 table 4444table

Используйте ip route show table 4444table, чтобы показать все маршруты в 4444table.

или маршрутизация по назначению

Назначение ip 132.45.65.60

Снова используйте mangle table из iptables для модификации пакетов для 132.45.65.60

sudo iptables -t mangle -A OUTPUT -d 132.45.65.60 -j MARK -set-mark 0×1

Мы маркируем все маршрутизаторы пакетов в ip 132.45.65.60 как «0 × 1».

Теперь сохраните и restart iptables.

service iptables save service iptables restart

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_tables, просто указав запись

100 132table

Записать правило для пакетов в адрес назначения ip 132.45.65.60

ip rule add fwmark 0×1 lookup 132table

Добавить маршрут в новую таблицу 132table. Здесь мы будем использовать 192.168.1.1.

Скопируйте все записи, за исключением записи по умолчанию из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 132table $ROUTE; done

Добавить запись шлюза по умолчанию для 132.45.65.60 пакетов в таблицу 132table

sudo ip route add default via 192.168.1.1 table 132table

Редактировать 1

Если вам нужно установить metric, ака с интерфейсом metric без метрики, имеют «приоритет»

auto eth0 iface eth0 inet static address 192.168.1.202 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 10.10.0.10 netmask 255.255.255.0 gateway 10.10.0.1 metric 800

С эта настройка, если доступный шлюз по умолчанию будет 192.168.1.1, и трафик пройдет через eth0. Когда вы выполняете ifdown eth0 или отсоединяете кабель от eth0, вторым вариантом будет шлюз 10.10.0.1 с metric 800, и трафик пройдет через eth1. Когда вы подключаете кабель или ifup eth0, по умолчанию gw снова будет 192.168.1.1.

Как я уже сказал.

Система не может иметь два шлюза по умолчанию за один момент. Если сеть не работает.

0
ответ дан 18 July 2018 в 13:36

В настоящий момент система может иметь только один шлюз. Только вы можете заставить какой-либо трафик aka ssh, ftp, .. или в определенную сеть перейти на другой интерфейс

Трафик трафика на определенный порт через определенный интерфейс

Пример: [ ! d2]

Здесь мы возьмем port 4444 как службу для маршрутизации. Используйте таблицу mangle iptables для изменения пакетов 4444.

sudo iptables -t mangle -A OUTPUT -p tcp –dport 4444 -j MARK –set-mark 0×1

Мы отмечаем все пакеты с адресатом port 4444 как «0 × 1».

To удалите эту запись из iptables, мы можем использовать -D вместо -A.

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_table, просто добавив запись

100 4444table

Записать правило для пакетов 4444.

ip rule add fwmark 0×1 lookup 4444table

Добавить маршрут в новую таблицу 4444table. Здесь мы будем использовать '192.168.1.1' в качестве шлюза для 4444.

Скопируем все записи, кроме записи по умолчанию из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4444table $ROUTE; done

Добавить запись шлюза по умолчанию для пакетов 4444 в таблицу 4444table

sudo ip route add default via 192.168.1.1 table 4444table

Используйте ip route show table 4444table, чтобы показать все маршруты в 4444table.

или маршрутизация по назначению

Назначение ip 132.45.65.60

Снова используйте mangle table из iptables для модификации пакетов для 132.45.65.60

sudo iptables -t mangle -A OUTPUT -d 132.45.65.60 -j MARK -set-mark 0×1

Мы маркируем все маршрутизаторы пакетов в ip 132.45.65.60 как «0 × 1».

Теперь сохраните и restart iptables.

service iptables save service iptables restart

Затем создайте новую таблицу маршрутов IP в /etc/iproute2/rt_tables, просто указав запись

100 132table

Записать правило для пакетов в адрес назначения ip 132.45.65.60

ip rule add fwmark 0×1 lookup 132table

Добавить маршрут в новую таблицу 132table. Здесь мы будем использовать 192.168.1.1.

Скопируйте все записи, за исключением записи по умолчанию из основной таблицы.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 132table $ROUTE; done

Добавить запись шлюза по умолчанию для 132.45.65.60 пакетов в таблицу 132table

sudo ip route add default via 192.168.1.1 table 132table

Редактировать 1

Если вам нужно установить metric, ака с интерфейсом metric без метрики, имеют «приоритет»

auto eth0 iface eth0 inet static address 192.168.1.202 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 10.10.0.10 netmask 255.255.255.0 gateway 10.10.0.1 metric 800

С эта настройка, если доступный шлюз по умолчанию будет 192.168.1.1, и трафик пройдет через eth0. Когда вы выполняете ifdown eth0 или отсоединяете кабель от eth0, вторым вариантом будет шлюз 10.10.0.1 с metric 800, и трафик пройдет через eth1. Когда вы подключаете кабель или ifup eth0, по умолчанию gw снова будет 192.168.1.1.

Как я уже сказал.

Система не может иметь два шлюза по умолчанию за один момент. Если сеть не работает.

0
ответ дан 24 July 2018 в 20:13
  • 1
    На самом деле система имеет 2 шлюза. Третья последняя строка вопроса показывает это. Интересно, добавили ли они интерфейс вниз и вверх, чтобы выполнить изменение. – davidgo 9 May 2017 в 09:36
  • 2
    Любой сетевой хост может иметь только один шлюз по умолчанию. У вас не может быть двух шлюзов по умолчанию. Это невозможно. Единственный способ иметь два шлюза по умолчанию - иметь один шлюз по умолчанию, а второй - с большей метрикой. В этом случае второй шлюз будет использоваться, если первый из них недоступен. Только один путь в ад Вы не можете идти из комнаты в две двери. Вы должны выбрать его. – 2707974 9 May 2017 в 10:13
  • 3
    У вас есть Edit 1 в моем ответе. – 2707974 9 May 2017 в 10:24

Другие вопросы по тегам:

Похожие вопросы: