Назад | Перейти на главную страницу

Внесение изменений в постоянный маршрут IPv6 по умолчанию в CentOS 7

У меня есть несколько IPv6-адресов на сервере CentOS 7, и мне нужно сделать конкретный адрес v6 адресом по умолчанию, используемым при маршрутизации. Мне удалось это сделать, изменив таблицу маршрутов.

ip -6 route del default
ip -6 route add default via 2001:470:xxxx:xx::1 src 2001:470:xxxx:xx::6

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

Когда сетевые сценарии Red Hat устанавливают несколько адресов IPv6, настроенных в /etc/sysconfig/network-scripts/ifcfg-*по какой-либо причине они применяются в обратном порядке, так что последний адрес, указанный в IPV6ADDR_SECONDARIES становится адресом, используемым по умолчанию для исходящих соединений. Для устранения проблемы обычно достаточно изменить порядок, в котором перечислены адреса IPv6.

Чтобы ответить на единственный неопределенно связанный вопрос о вознаграждении: статические маршруты IPv6 могут быть установлены путем добавления их в соответствующий /etc/sysconfig/network-scripts/route6-*. Формат этого файла такой же, как у ip route add команда с опущенным битом, например:

default via 2001:db8:dead:beef:: dev eno1
2001:db8:deca:fbad::/64 via 2001:db8:dead:beef::8bad:f00d dev eno1

Одно место, куда вы можете положить его, - это /sbin/ifup-local файл, который запускается при появлении интерфейса.

#!/bin/sh
if [[ "$1" == "eth0" ]]
then
  ip -6 route del default
  ip -6 route add default via 2001:470:xxxx:xx::1 src 2001:470:xxxx:xx::6
else
  #DO_NOTHING
fi

По умолчанию он не существует, поэтому вам нужно будет создать его и установить разрешения, чтобы сделать его исполняемым.