У меня есть сервер manjaro linux с как минимум двумя контроллерами сетевого интерфейса (NIC), и я хотел бы направить весь трафик, идущий на определенные диапазоны IP-адресов или подсетей, через один, а все остальное - через один из других.
До сих пор я настраивал сети с помощью nmcli
, но у меня есть лишь слабое представление о предмете.
В идеале решение должно работать через командную строку, быть постоянным и не сильно зависеть от используемого дистрибутива.
Редактировать: Согласно Маршрутизация IP-трафика с использованием nmcli / Centos 7 что-то вроде
соединения nmcli, изменение "Проводное соединение 1" + ipv4.routes "10.0.0.0/16"
должен работать, однако кажется, что пакеты не маршрутизируются через правильную сеть.
Я предполагаю, что мои ответы в целом основаны на моих знаниях, основанных на системах Debian, однако в этой части я пропускаю часть Network-Manager, потому что я не использую его в любом случае и, по моему личному мнению, это только усложняет дело.
Вы спросили, и в комментариях кажется почти ясно, что вы хотите направить 10.0.0.0/16 на другую сетевую карту.
-- Какое имя устройства должно быть правильным, можно узнать через ip address
или ifconfig
-- Обычно вы не уверены в этом, отключите кабель карты и посмотрите dmesg
или /var/log/syslog
Итак, в моем примере, предположим следующее:
ip route add 10.0.0.0/16 dev eth0
Сложная часть на данный момент заключается в том, чтобы сделать его постоянным.
Добавив сюда
10.0.0.0/16 via 10.0.0.1
Где первое - сеть, которую вы хотите сопоставить, второе - IP маршрутизатора. В моем примере 10.0.0.1
на некоторых системах, /etc/network/interfaces может показаться пустым. В этом случае вам нужно заглянуть в vi /etc/network/interfaces.d, но мы предполагаем, что будет использоваться основной файл /etc/network/interfaces.
Найдите ваш интерфейс 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
Edit /etc/rc.d/rc.local или /etc/rc.local
add
ip route add 10.0.0.0/16 dev eth0
Этот ответ предназначен для решения этой проблемы в целом.