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

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

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

5 ответов

Решение

Зависимые от устройства маршруты стиля 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

Создайте файл в /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

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

Этот файл - /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-интерфейсов)

Я всегда использую 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

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

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

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

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

С уважением,

Мануэль Лазо

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