Пожалуйста, помогите понять, как правильно создать статический маршрут в 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)
С уважением,
Мануэль Лазо