linux:routing:multiple_gw1

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
linux:routing:multiple_gw1 [2024/01/28 15:54] Дмитрийlinux:routing:multiple_gw1 [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1
Строка 1: Строка 1:
-====== Несколько шлюзов и несколько выходов в интернет ====== 
- 
-Один и тот же ПК или виртуалка, или роутер например на OpenWRT, при наличии нескольких сетевых интерфейсов, либо с настроенными VLAN с разными тегами 802.1Q например,\\ 
-может работать как два и более шлюзов для нескольких сетей. 
- 
-Допустим в вашей организации несколько провайдеров и несколько сетей. Например бухгалтерия 192.168.8.0/24, а хоз. часть 192.168.9.0/24.\\ 
- 
-  * ens20 шлюз 10.10.8.1 - Провайдер 1 
-  * ens21 шлюз 10.10.9.1 - Провайдер 2 
-  * ens22 192.168.8.0/24 - Сеть бухгалтерии 
-  * ens23 192.168.9.0/24 - Сеть хоз. часть 
- 
-  * ens20 10.10.8.26/24 - адрес интерфейса, провайдер 1 
-  * ens21 10.10.9.26/24 - адрес интерфейса, провайдер 2 
-  * ens22 192.168.8.26/24 - адрес интерфейса, сеть бухгалтерии 
-  * ens23 192.168.9.26/24 - адрес интерфейса, сеть хоз. часть 
- 
-Давайте добавим записи о новых таблицах, как в примере выше. 
-<code> 
-nano /etc/iproute2/rt_tables 
-</code> 
- 
-<code> 
-... 
-100     inet1 
-101     inet2 
-</code> 
- 
-Давайте назначим этим таблицам маршруты по умолчанию (default) 
-<code> 
-ip route add default via 10.10.8.1 table inet1 
-ip route add default via 10.10.9.1 table inet2 
-</code> 
- 
-Можно проверить 
-<code> 
-ip route show table inet1 
-default via 10.10.8.1 dev ens20 
-</code> 
-и 
-<code> 
-ip route show table inet2 
-default via 10.10.9.1 dev ens21 
-</code> 
- 
-<WRAP round important 60%> 
-В текущей задаче, есть одна особенность. Если мы вспомним, что у нас в таблице main указаны маршруты до внутренних сетей,\\ 
-тогда получается что мы не можем указать сетям **192.168.8.0/24** и **192.168.9.0/24** маршруты по умолчанию выше таблицы main,\\ 
-внутренние сети перестанут работать и вы потеряете доступ к серверу. 
-</WRAP> 
- 
-В этом случае, следует указать приоритет ниже **32767** и я предлагаю указать **35000** и **35001**. 
-<code> 
-ip rule add from 192.168.8.0/24 iif ens22 table inet1 prio 35000 
-ip rule add from 192.168.9.0/24 iif ens23 table inet2 prio 35001 
-</code> 
- 
-<code> 
-ip rule 
-</code> 
-<code> 
-0:      from all lookup local 
-32766:  from all lookup main 
-32767:  from all lookup default 
-35000:  from 192.168.8.0/24 iif ens22 lookup inet1 
-35001:  from 192.168.9.0/24 iif ens23 lookup inet2 
-</code> 
- 
-Но и это ещё не всё, во время настройки сервера, вы наверняка указывали какой-то шлюз, что бы сам сервер имел доступ к интернету,\\ 
-в моём случае, пусть будет **10.10.8.1**. 
-<code> 
-ip route show table main 
-</code> 
-<code> 
-default via 10.10.8.1 dev ens20 
-10.10.8.0/24 dev ens20 proto kernel scope link src 10.10.8.26 
-10.10.9.0/24 dev ens21 proto kernel scope link src 10.10.9.26 
-192.168.8.0/24 dev ens22 proto kernel scope link src 192.168.8.26 
-192.168.9.0/24 dev ens23 proto kernel scope link src 192.168.9.26 
-</code> 
- 
-Получается, что все участники сети, так или иначе попадают в default и правила которые мы добавили ниже с приоритетом **35000** и **35001**, бесполезны.\\ 
-В данной ситуации, мы просто удалим маршрут по умолчанию. 
-<code> 
-ip route del default via 10.10.8.1 
-</code> 
- 
-Но и это ещё не всё, т.к. мы удалили маршрут по умолчанию, а правила с приоритетом **35000** и **35001** будут работать только для указанных сетей,\\ 
-сам сервер потеряет доступ к интернету. Исправим это положение, одним правилом и тут вы должны сами определиться какой интернет сделать доступным для сервера,\\ 
-я просто укажу **inet1**, с приоритетом 80000. 
-<code> 
-ip rule add from all iif lo lookup inet1 prio 80000 
-</code> 
- 
-Готово, теперь  
  
  • linux/routing/multiple_gw1.1706432084.txt.gz
  • Последнее изменение: 2024/01/28 15:54
  • Дмитрий