Мне нужно добавить маршрут, который не будет удален после перезагрузки. Я прочитал эти два способа сделать это:
Добавить
up route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
в файл/etc/network/interfaces
или
Создайте файл /etc/network/if-up.d/route с помощью:
#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX
и сделать его исполняемым:
chmod +x /etc/network/if-up.d/route
Так что я в замешательстве. Каков наилучший способ сделать это?
Ответы:
Вы упомянули
/etc/network/interfaces
, так что это система Debian ...Создайте именованную таблицу маршрутизации. В качестве примера я использовал имя «mgmt» ниже.
Выше ядро поддерживает множество таблиц маршрутизации и ссылается на них с помощью уникальных целых чисел с номерами 0-255. Имя, mgmt, также определено для таблицы.
Ниже приведен обзор по умолчанию
/etc/iproute2/rt_tables
, показывающий, что некоторые номера зарезервированы. Выбор в этом ответе 200 является произвольным; можно использовать любой номер, который еще не используется, 1-252.Ниже файл интерфейсов Debian 7/8 определяет
eth0
иeth1
.eth1
это сеть 172.eth0
может использовать DHCP также.172.16.100.10
это IP-адрес для назначенияeth1
.172.16.100.1
это IP-адрес маршрутизатора.Перезагрузите или перезагрузите сеть.
Обновление - разъяснение на EL
Я заметил в комментарии, что вы тоже «интересуетесь RHEL». В Enterprise Linux («EL» - RHEL / CentOS / et al.) Создайте именованную таблицу маршрутизации, как указано выше.
EL
/etc/sysconfig/network
файл:/etc/sysconfig/network-scripts/ifcfg-eth0
Файл EL , использующий статическую конфигурацию (без NetworkManager и без указания «HWADDR» и «UUID» для примера ниже)./etc/sysconfig/network-scripts/ifcfg-eth1
Файл EL (без NetworkManager и без указания «HWADDR» и «UUID» для примера ниже) следует.EL
/etc/sysconfig/network-scripts/route-eth1
файл:EL
/etc/sysconfig/network-scripts/rule-eth1
файл:источник
В дистрибутиве на основе Debian вы можете постоянно добавлять статический маршрут следующим образом:
На дистрибутиве на основе RHEL:
источник
sudo
бессмысленно в обеих ваших командах. Либо вы уже root, так что>>
работает, или нет, в этом случае>>
применяется как исходный пользователь, и толькоecho
root запускается как root. Кроме того, это терпит неудачу, если в интерфейсе определено несколько интерфейсов/etc/network/interfaces
.