Как назначить дополнительный IP для loopback

Как назначить дополнительный IP для loopback

У меня есть несколько контейнеров docker, которые должны получать доступ к общему PostgreSQL, запущенному на хосте Gentoo. Это работает хорошо, если докеризованные приложения подключаются к базе данных, используя публичный IP хоста.

Однако я хотел бы немного разъединить эти два понятия.используя дополнительный частный IP на обратной петлевместо публичного IP-адреса укажите 10.172.17.1.

Я не уверен, что нужно добавить в /etc/conf.d/net, и поскольку это удаленный ящик, к которому у меня нет физического доступа, я немного колеблюсь, просто играясь. Может быть, у кого-то есть подсказка для меня?

Большое спасибо!

решение1

Я сам догадался:

Можно добавить config_lo 10.172.17.1/32в /etc/conf.d/net и затем назначить этот дополнительный IP, перезапустив службу net.lo с помощью rc-service net.lo restart. Однако... это не сохранится после следующей перезагрузки.

На сегодняшний день Gentoo не запускает службу net.lo для запуска loopback, а использует отдельный скрипт /etc/init.d/loopback. Скрипт использует ifconfigдля выполнения своей работы, IP-адреса жестко прописаны. Патчить сам скрипт, безусловно, будет плохой идеей.

Но поскольку дополнительный IP-адрес нужен только после запуска Docker-контейнеров, его может добавить локальная служба:

cat "ip addr add 10.172.17.1/32 dev lo scope host" >/etc/local.d/docker_loopback.start
cat "ip addr del 10.172.17.1/32 dev lo scope host" >/etc/local.d/docker_loopback.stop
chmod a+x /etc/local.d/docker_loopback.*

Теперь либо перезагрузите компьютер, либо просто запустите стартовый скрипт и проверьте результат:

/etc/local.d/docker_loopback.start
ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet 10.172.17.1/32 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

Связанный контент