Рейтинг:1

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

флаг in

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

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

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

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

Соединение nmcli изменить «Проводное соединение 1» + ipv4.routes «10.0.0.0/16»

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

vidarlo avatar
флаг ar
Можете ли вы более подробно описать схему вашей сети? Есть ли у каждого интерфейса подключенный маршрутизатор, на который вы хотите пересылать пакеты?
djdomi avatar
флаг za
почему бы не использовать базовый `ip route`?
флаг in
спасибо @djdomi. Кажется, ip route - это то, что мне нужно. Теперь мне просто нужно выяснить, как выглядят правильные маршруты.
djdomi avatar
флаг za
@danba, так как Ою не сказал, в чем именно проблема, я не могу сейчас помочь (проблема X и Y)
Рейтинг:2
флаг za

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

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

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

Вы указали "Проводное соединение 1" +ipv4.routes "10.0.0.0/16"

-- какое имя устройства должно быть правильным, можно узнать через айпи адрес или же 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

Короткий путь для тестирования или предустановленных, а не постоянных:

IP-маршрут добавить 10.0.0.0/16 dev eth0

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

В системах RHEL/CentOS/Fedora/Scientific,

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

Добавление сюда

 10.0.0.0/16 через 10.0.0.1

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

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

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

  • отредактировать /etc/network/interfaces

Ищите свой интерфейс eth0

iface eth0 инет статический
        адрес 10.0.0.2
        сетевая маска 255.0.0.0

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

iface eth0 инет статический
        адрес 10.0.0.2
        сетевая маска 255.0.0.0
### ЛИБО со шлюзом
#post-up route add -net 10.0.0.0 маска сети 255.255.0.0 gw 10.0.0.1 dev eth0
#post-down route del -net 10.0.0.0 маска сети 255.255.0.0 gw 10.0.0.1 dev eth0

###или без шлюза
#post-up route add -net 10.0.0.0 маска сети 255.255.0.0 dev eth0
# post-down route del -net 10.0.0.0 маска сети 255.255.0.0 dev eth0

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

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

Добавлять

  • IP-маршрут добавить 10.0.0.0/16 dev eth0

Этот ответ предназначен для его решения в целом.

djdomi avatar
флаг za
@danba было бы здорово, если бы вы могли принять ответ, если он вам помог, или сказать мне, если нет, чтобы я мог исправить свой ответ
флаг in
спасибо за подробный ответ. В итоге мне пришлось указать переход для маршрута, чтобы любые пакеты проходили по нему. `ip route add 10.0.0.0/8 через 10.39.0.1 dev eth0`. Также я понял, что у меня есть несколько маршрутов по умолчанию (по одному для каждого устройства), и я хотел использовать только одно устройство в качестве резервного на случай, если нет более конкретного маршрута, поэтому я удалил лишние значения по умолчанию с помощью `ip route flush default via 10.39. .0.1 разработчик eth0`.
djdomi avatar
флаг za
Хорошо, один момент для вас, я забыл флеш по умолчанию :)

Ответить или комментировать

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