- tocdepth
2
Изменить параметры маршрутизации трафика
При добавлении двух и более сетевых интерфейсов к виртуальной машине маршруты по умолчанию транслируются по DHCP для всех существующих подключений. Это может привести к некорректной маршрутизации трафика.
Чтобы обеспечить стабильную работу виртуальной машины, в том числе доступ к ней через SSH, вы можете удалить неиспользуемые маршруты по умолчанию и установить запрет на обработку маршрутов по DHCP на соответствующих интерфейсах по инструкции ниже.
Рекомендуется сохранить маршрутизацию по DHCP только через тот интерфейс, для которого назначен публичный IP-адрес. Для остальных интерфейсов необходимо вручную прописать статические маршруты в их сетевых настройках в гостевой ОС.
Подсказка
Чтобы упростить конфигурацию сетевой инфраструктуры, назначайте публичный IP-адрес только одному интерфейсу. При назначении двух и более публичных адресов на интерфейсы одной ВМ, вы должны хорошо понимать сценарии использования и конфигурировать маршрутизацию в сети в зависимости от этих сценариев.
Удалить неиспользуемые маршруты
Чтобы посмотреть маршруты по умолчанию, выполните команду:
$ ip route
В ответе отобразится список маршрутов и информация о них.
Пример:
default via 192.168.125.193 dev enp7s0 proto dhcp src 192.168.125.241 metric 100 default via 10.0.0.1 dev enp3s0 proto dhcp src 10.0.0.59 metric 100 8.8.4.4 via 10.0.0.1 dev enp3s0 proto dhcp src 10.0.0.59 metric 100
Где:
enp3s0 и 10.0.0.1 — интерфейс, которому назначен внешний IP-адрес и его дефолтный шлюз, соответственно.
enp7s0 и 192.168.125.193 — интерфейс, которому назначен только приватный IP-адрес, и его дефолтный шлюз соответственно. Не должен использоваться для маршрутизации по умолчанию.
Чтобы удалить маршрут через шлюз интерфейса, выполните команду:
$ sudo ip route del default via 192.168.125.193
Где
default via 192.168.125.193
— маршрут, который необходимо удалить.
Отключить обработку дефолтных маршрутов по DHCP
Чтобы удаленные маршруты не восстановились после перезагрузки сетевого интерфейса, установите на необходимых интерфейсах запрет на обработку маршрутов по DHCP, изменив конфигурацию netplan
по инструкции ниже.
В каталоге
~/etc/netplan/
откройте файл конфигурации50-cloud-init.yaml
от имени суперпользователя.В конфигурацию необходимых сетевых интерфейсов добавьте правило:
dhcp4-overrides: use-routes: false
Пример полной конфигурации:
ethernets: enp3s0: dhcp4: true match: macaddress: fa:16:3e:12:a9:05 set-name: enp3s0 enp7s0: dhcp4: true dhcp4-overrides: use-routes: false match: macaddress: fa:16:3e:84:0c:14 set-name: enp7s0
Сохраните изменения и перезагрузите ВМ.
Перейдите в каталог
~/etc/sysconfig/network-scripts/
и откройте конфигурационный файл интерфейса, для которого вы хотите отключить обработку маршрутов по DHCP. Например,ifcfg-eth1
, гдеeth1
— название интерфейса.В режиме редактирования файла, добавьте правило:
DEFROUTE=no
Пример конфигурации:
AUTOCONNECT_PRIORITY=999 BOOTPROTO=dhcp DEVICE=eth1 HWADDR=fa:16:3e:27:62:40 ONBOOT=yes TYPE=Ethernet USERCTL=no DEFROUTE=no
Сохраните изменения и перезагрузите виртуальную машину.
для Dev & Test