====== Несколько шлюзов и несколько выходов в интернет ====== ===== Надо переписать статью ===== Один и тот же ПК или виртуалка, или роутер например на 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 - адрес интерфейса, сеть хоз. часть Давайте добавим записи о новых таблицах, как в примере выше. nano /etc/iproute2/rt_tables ... 100 inet1 101 inet2 Давайте назначим этим таблицам маршруты по умолчанию (default) ip route add default via 10.10.8.1 table inet1 ip route add default via 10.10.9.1 table inet2 Можно проверить ip route show table inet1 default via 10.10.8.1 dev ens20 и ip route show table inet2 default via 10.10.9.1 dev ens21 В текущей задаче, есть одна особенность. Если мы вспомним, что у нас в таблице main указаны маршруты до внутренних сетей,\\ тогда получается что мы не можем указать сетям **192.168.8.0/24** и **192.168.9.0/24** маршруты по умолчанию выше таблицы main,\\ внутренние сети перестанут работать и вы потеряете доступ к серверу. В этом случае, следует указать приоритет ниже **32767** и я предлагаю указать **35000** и **35001**. 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 ip rule 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 Но и это ещё не всё, во время настройки сервера, вы наверняка указывали какой-то шлюз, что бы сам сервер имел доступ к интернету,\\ в моём случае, пусть будет **10.10.8.1**. ip route show table main 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 Получается, что все участники сети, так или иначе попадают в default и правила которые мы добавили ниже с приоритетом **35000** и **35001**, бесполезны.\\ В данной ситуации, мы просто удалим маршрут по умолчанию. ip route del default via 10.10.8.1 Но и это ещё не всё, т.к. мы удалили маршрут по умолчанию, а правила с приоритетом **35000** и **35001** будут работать только для указанных сетей,\\ сам сервер потеряет доступ к интернету. Исправим это положение, одним правилом и тут вы должны сами определиться какой интернет сделать доступным для сервера,\\ я просто укажу **inet1**, с приоритетом 80000. ip rule add from all iif lo lookup inet1 prio 80000 Готово, теперь