Назначьте каждому сетевому адаптеру диапазон IP-адресов или подсеть.

У меня есть Linux-сервер Manjaro как минимум с двумя контроллерами сетевых интерфейсов (NIC), и я хотел бы направить весь трафик, идущий в определенные диапазоны IP-адресов или подсети, через один, а все остальное - через один из других.

До сих пор я настраивал сети черезnmcli, но я лишь слабо разбираюсь в предмете.

В идеале решение должно работать через командную строку, быть постоянным и не сильно зависеть от используемого дистрибутива.

Изменить: в соответствии с маршрутом IP-трафика с использованием nmcli/Centos 7 что-то вроде

nmcli connection modify "Wired connection 1" +ipv4.routes "10.0.0.0/16"

должно работать, однако пакеты, похоже, не перенаправляются через правильную сеть.

1 ответ

Общая предварительная информация об этом ответе

Я предполагаю, что мои ответы в целом основаны на моих знаниях, основанных на системах Debian, однако в этой части я пропускаю часть, посвященную сетевому менеджеру, поскольку я все равно ее не использую и, по моему личному мнению, это только усложняет.

Вы спросили, и в комментариях почти ясно, что вы хотите перенаправить 10.0.0.0/16 на другую сетевую карту.

Вы предоставили «Проводное соединение 1» +ipv4.routes «10.0.0.0/16»

-- какое имя устройства должно быть правильным, можно узнать черезip addressилиifconfig-- Обычно вы не уверены в этом, отсоедините кабель карты и посмотритеdmesgили /var/log/syslog

Итак, в моем примере предположим следующее:

  • «Проводное соединение 1» = eth0
  • «10.0.0.0/16» или 10.0.0.0/255.255.0.0 (или 10.0.0.0-10.0.255.255) должны быть направлены на eth0.

Короткий способ тестирования или предварительной настройки, а не постоянного:

Сложная часть на данный момент заключается в том, чтобы сделать его постоянным.

В RHEL/CentOS/Fedora/научно-ориентированных системах:

  • отредактируйте /etc/sysconfig/network-scripts/route-eth0

Добавляю сюда

       10.0.0.0/16 via 10.0.0.1

Где первое — это сеть, которую вы хотите сопоставить, второе — IP-адрес маршрутизатора. В моем примере 10.0.0.1

Использование пути Debian. (Базовые системы Debian, такие как Ubuntu)

в некоторых системах /etc/network/interfaces может показаться пустым. В этом случае вам придется просмотреть файл vi /etc/network/interfaces.d, но мы предполагаем, что будет использоваться базовый файл /etc/network/interfaces.

  • отредактируйте /etc/сеть/интерфейсы

Найдите свой интерфейс eth0.

      iface eth0 inet static
        address  10.0.0.2
        netmask  255.0.0.0

Измените, чтобы это выглядело так

      iface eth0 inet static
        address  10.0.0.2
        netmask  255.0.0.0
###EITHER with Gateway
#post-up route add -net 10.0.0.0 netmask 255.255.0.0 gw 10.0.0.1 dev eth0
#post-down route del -net 10.0.0.0 netmask 255.255.0.0 gw 10.0.0.1 dev eth0

###or without Gateway
#post-up route add -net 10.0.0.0 netmask 255.255.0.0 dev eth0
#post-down route del -net 10.0.0.0 netmask 255.255.0.0 dev eth0

Общий статический способ (может быть устаревшим в системах с поддержкой Systemd)

Отредактируйте /etc/rc.d/rc.local или /etc/rc.local.

добавлять

  • ip route add 10.0.0.0/16 dev eth0

Этот ответ предназначен для решения этой проблемы в целом.

Другие вопросы по тегам