Пожалуйста, помогите понять, как правильно создать статический маршрут в CentOS.

8

Я пытался понять, как правильно добавить статический маршрут на компьютере с CentOS 6.x. На некоторых форумах говорят, что нужно создать файл с именем route-dev_name(например, route-eth0) с соответствующим маршрутом и поместить его в него /etc/sysconfig/network-scripts, на некоторых форумах говорят, что файл должен быть назван static-routes, в обоих случаях я не могу установить статический маршрут. Кажется, что в некоторых выпусках CentOS он работает только при именовании файла, route-dev_nameа в некоторых он работает только при именовании файла static-routes.. Может кто-нибудь, пожалуйста, помогите мне? Это содержимое моего файла маршрута:

192.168.20.0/24 via 192.168.20.253 dev eth0

заранее спасибо

Итай Ганот
источник
Я использую разные версии CentOS на разных серверах, но в основном CentOS 6.3-6.5
Itai Ganot

Ответы:

7

Зависимые от устройства маршруты в стиле RH, определенные с помощью /etc/sysconfig/network-scripts/route-deviceфайлов, вызвали много проблем.

Таким образом, настоящие системные администраторы используют только /etc/sysconfig/static-routesфайл без зависимости от устройства:

any net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1

Проблемы:

  • Когда физические устройства связаны, вы должны помнить, чтобы случайно файл маршрута устройства тоже
  • При реорганизации адаптеров в виртуальной машине.

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

Также обратите внимание на синтаксис в /etc/sysconfig/static-routesфайле, фрагмент из /etc/init.d/network:

    # Add non interface-specific static-routes.
    if [ -f /etc/sysconfig/static-routes ]; then
       if [ -x /sbin/route ]; then
           grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
               /sbin/route add -$args
           done
       else
           net_log $"Legacy static-route support not available: /sbin/route not found"
       fi
    fi
ARL
источник
8

Создайте файл в / etc / syconfig / network-scripts / route-eth0

добавить добавить следующее

192.168.20.0/24 via 192.168.20.253 dev eth0

Я всегда использовал этот подход. Я нашел, что это лучший подход.

К вашему сведению: проверьте - https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-static-routes.html

Виджай Раджа
источник
1
Хорошо, это тот подход, которым я сам пользовался до сих пор, но недавно на машинах CentOS 6.5 я обнаружил, что route-devXфайл игнорируется, и серверы не обновляют маршрут при перезагрузке сервера или перезапуске сетевой службы, любая идея что могло вызвать это?
Итай Ганот
Не уверен .. Подходит ли интерфейс при загрузке / перезапуске? .. У меня нет тестового блока CENTOS / RHEL 6.5 ATM. Я не уверен, есть ли какие-либо изменения в маршрутах ifup на RHEL 6.5.
Виджай Раджа
Да, интерфейсы работают должным образом ... только маршрут не подходит, и я говорю о недавно установленной машине или о 2-3 месяцах. В любом случае, я вижу, что я использую правильный подход, поэтому я просто приму ваш вопрос, спасибо.
Итай Ганот
4

Есть более простой способ добавить маршруты ...

Этот файл - /etc/init.d/networkзапускается при загрузке ПК и использует файл /etc/sysconfig/static-routesдля добавления статических маршрутов.

Вы должны создать это, потому что это не существует.

Если вы внимательно прочитали файл /etc/init.d/network, он добавляет в этот файл каждую строку для добавления маршрутов, эти строки должны начинаться с «any», а «добавление маршрута» уже известно.

Итак, в файле, который вы собираетесь создать >> / etc / sysconfig / static-routs, вы должны написать:

any net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1 eth0
  • где 10.0.0.0/24 - сеть, к которой вы хотите подключиться (255.255.255.0 - маска)
  • где gw 192.168.0.1 - это шлюз для доступа (конечно, маршрутизатор)
  • где eth0 - интерфейс, где использовать.

Это лучший способ добавления статических маршрутов, 1 файл для всего (не X-файлов для X-интерфейсов)

Том
источник
1

Я всегда использую route-ethXфайловый подход на своих CentOS 6.4 и 6.5:

Создайте / отредактируйте файл /etc/sysconfig/network-scripts/route-ethX(где X - номер вашего интерфейса) и установите ваш маршрут в этом файле:

192.168.20.0/24 via 192.168.20.253 dev eth0

Вы также можете редактировать этот файл, используя следующий формат (лично я предпочитаю первый синтаксис):

GATEWAY0=192.168.20.253
NETMASK0=255.255.255.0
ADDRESS0=192.168.20.0

Затем перезапустите сеть, чтобы применить изменения:

service network restart

Дополнительная информация: https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-static-routes.html.

krisFR
источник
0

В / etc / sysconfig / network-scripts есть скрипт ifup-маршруты . Он ищет файлы с именем route-dev_name, например, route-eth0.

Sciurus
источник
0

В моем случае файл " / etc / sysconfig / network-scripts / route-device" " не существовал.

Я продолжаю добавлять нужную сеть или ip в файл " / etc / sysconfig / static-routs " и, чтобы сделать это навсегда, я перезагрузил компьютер, и оказалось, что он работает как положено.

это было сделано в: cat /etc/centos-release CentOS Linux release 7.5.1804 (Core)

С наилучшими пожеланиями,

Мануэль Лазо

Мануэль Лазо
источник