如何為環回分配額外的 IP

如何為環回分配額外的 IP

我有一些 docker 容器,它們應該存取在 Gentoo 主機上運行的共用 PostgreSQL。如果 Docker 化的應用程式使用主機的公共 IP 連接到資料庫,那麼這種方法效果很好。

但是,我想稍微解耦一些事情透過在環回上使用額外的私人 IP比如說 10.172.17.1,而不是公共 IP。

我不確定需要添加到 /etc/conf.d/net 中,因為這是一個我沒有實體存取權限的遠端盒子,所以我有點猶豫要不要玩。也許有人給我提示?

多謝!

答案1

我自己弄清楚了:

可以新增config_lo 10.172.17.1/32至 /etc/conf.d/net,然後透過使用 重新啟動 net.lo 服務來指派此附加 IP rc-service net.lo restart。然而......這將無法在下次重新啟動後繼續存在。

截至目前,Gentoo 不再啟動 net.lo 服務來啟動環回,而是使用單獨的腳本 /etc/init.d/loopback。該腳本用於ifconfig完成其工作,IP 是硬編碼的。修補腳本本身肯定是個壞主意。

但由於只有在 docker 容器啟動後才需要額外的 IP,因此可以透過本機服務新增:

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

相關內容