У меня есть два интерфейса: 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
В настоящий момент система может иметь только один шлюз. Только вы можете заставить какой-либо трафик 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.
Как я уже сказал.
Система не может иметь два шлюза по умолчанию за один момент. Если сеть не работает.
В настоящий момент система может иметь только один шлюз. Только вы можете заставить какой-либо трафик 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.
Как я уже сказал.
Система не может иметь два шлюза по умолчанию за один момент. Если сеть не работает.