LINUX.ORG.RU
ФорумAdmin

После включения policy routing локальные адреса не доступны

 


0

1

Добрый день, Ubuntu 22.04.2 LTS настраиваю policy routing с двумя интерфейсами, enp5s0 192.168.10.10 и enp6s0 x.x.x.8 (внешний IP)

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp5s0:
      dhcp4: true
      dhcp4-overrides:
        use-routes: false
      routes:
       - to: default
         via: 192.168.10.1
         table: 101
      routing-policy:
       - from: 192.168.10.10
         table: 101
    enp6s0:
      dhcp4: true
      dhcp4-overrides:
        use-routes: false
      routes:
        - to: default
          via: x.x.x.1 #шлюз
          table: 102
          metric: 100
      routing-policy:
        - from: x.x.x.8 #внешний IP
          table: 102
  version: 2

routing-policy все работает, за исключением того, что локальные адреса 192.168.10.0/24 теперь не доступны, кроме gateway-я 192.168.10.1

$ sudo ip r
x.x.x.0/24 dev enp6s0 proto kernel scope link src x.x.x.8 metric 100
192.168.10.0/24 dev enp5s0 proto kernel scope link src 192.168.10.10
master@vs11:~$ ip route show table local
local x.x.x.8 dev enp6s0 proto kernel scope host src x.x.x.8
broadcast x.x.x.255 dev enp6s0 proto kernel scope link src x.x.x.8
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 192.168.10.10 dev enp5s0 proto kernel scope host src 192.168.10.10
broadcast 192.168.10.255 dev enp5s0 proto kernel scope link src 192.168.10.10
master@vs11:~$ ip route show table main
x.x.x.0/24 dev enp6s0 proto kernel scope link src x.x.x.8 metric 100
192.168.10.0/24 dev enp5s0 proto kernel scope link src 192.168.10.10

Подскажите пожалуйста, почему не доступны внутренние IP адреса сети?


Однако, возможно, проблема в том, что вы используете неправильный шлюз (gateway) для доступа к локальным адресам 192.168.10.0/24. Убедитесь, что ваш шлюз по умолчанию (default gateway) настроен на 192.168.10.1.

Вы можете проверить текущий шлюз по умолчанию, выполнив команду ip route show default. Если шлюз по умолчанию настроен неправильно, вы можете изменить его, выполнив команду:

sudo ip route change default via 192.168.10.1 dev enp5s0

Эта команда изменит шлюз по умолчанию на 192.168.10.1 для интерфейса enp5s0. После этого локальные адреса должны стать доступными Если проблема с локальными адресами все еще сохраняется, проверте правила iptables также можете попробовать выполнить команду sudo ip route flush cache, чтобы очистить кэш маршрутизации и перестроить таблицы маршрутизации

alex_125
()
Ответ на: комментарий от kostik87

В 101

default via 192.168.10.1 dev enp5s0 proto static metric 100 onlink

Перевел в 101 из main правило для локально сети:

192.168.10.0/24 dev enp5s0 proto kernel scope link src 192.168.10.10 metric 100

получил:

 ip route show table 101
default via 192.168.10.1 dev enp5s0 proto static metric 100 onlink
192.168.10.0/24 dev enp5s0 proto static scope link metric 100

локальная сеть стала доступной! Правильно ли сделал, не занаю.

Вообще думал если маршрута 192.168.10.0/24 dev enp5s0 нет в таблице 101, то система далее идет искать маршрут в main

hitec
() автор топика
Ответ на: комментарий от kostik87

Может кому понадобиться решение.

Сделал все по следующему мануалу:

https://lartc.org/howto/lartc.rpdb.multiple-links.html

спасибо @Jameson

Для ubuntu 22

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp5s0:
      dhcp4: true           #Получаем IP адрес и DNS IP по DHCP
      dhcp6: false
      dhcp4-overrides:
        use-routes: false   #Отключаем автоматическое создание маршрутов системой
      #addresses:           #Если dhcp4: false
      #- 192.168.10.10/24   #Если dhcp4: false, назначаем IP вручную
      routes:
      - to: 192.168.10.0/24 #без этого правила сервер из локальной сети 192.168.10.0/24 может быть не доступен
        table: 101
      - to: default
        via: 192.168.10.1
        table: 101
      - to: default        #Открываем default доступ в интернет через какой то один интерфейс сервера
        via: 192.168.10.1  
      routing-policy:
      - from: 192.168.10.10 
        table: 101
      #nameservers:                #Если dhcp4: false
        #addresses: [192.168.10.1] #Если dhcp4: false, назначаем DNS IP
    enp6s0:
      dhcp4: true          #Получаем IP адрес и DNS IP по DHCP
      dhcp6: false
      dhcp4-overrides:
       use-routes: false   #Отключаем автоматическое создание маршрутов системой
      #addresses:          #Если dhcp4: false, назначаем IP вручную
      #- xx.xxx.xx.8/24    #Если dhcp4: false, назначаем IP вручную, назначаем IP вручную
      routes:
      - to: xx.xxx.xx.0/24
        table: 102
      - to: default
        via: xx.xxx.xx.1
        table: 102
      #- to: default       #Этот default роут отключаем, так как включён default роут с другого интерфейса enp5s0.
        #via: xx.xxx.xx.1
      routing-policy:
      - from: xx.xxx.xx.8
        table: 102
      #nameservers:                             #Если dhcp4: false
        #addresses: [yy.yyy.yyy.5, zz.zz.zzz.5] #Если dhcp4: false, назначаем DNS IP
  version: 2
hitec
() автор топика