Linuxインタフェースの優先順位
事象
eno1に保守用IP、eno2にAWS EC2と疎通する実通信用IPを振っているLinuxサーバを再起動した。
ONBOOT=noにしていたので、再起動で無効化されたインタフェースをnmcli con up eno1、nmcli con up eno2で起動した。
が、EC2との疎通が復旧しない。
ちなみにEC2につけているセキュリティグループではeno2のIPだけを許可している。
冗長化しているサーバだったので、EC2との疎通ができているサーバと諸々見比べてみたところ、nmcli実行結果の表示順番が違うことに気付いた。
正常にEC2と疎通できているサーバは①eno2(実通信用IP)、②eno1(保守用IP)となっているが、再起動後にEC2と疎通できなくなったサーバは①eno1(保守用IP)、②eno2(実通信用IP)となっていた。
復旧
eno2の実通信用IPでSSHし、eno1をnmcli con downの後にcon up。nmcliの結果が①eno2(実通信用IP)、②eno1(保守用IP)になった。このタイミングでEC2との疎通も復旧した。
つまり、nmcli con upをeno1の保守用IPから実行したことで、優先されるIP(外部につなぎに行くときのグローバルIPとなるIPアドレス)が保守用IPとなり、そのせいでEC2のSGで弾かれていたと思われる。
これ、再起動するたびにeno1のdown/upしなきゃいけないの? そんなわけなくない?
ONBOOT=noになっていたのはyesにすればよいのだろうが、yesにしたところで自動起動はenoの若番から実行されるだろう。
調べてるが検索ワードが悪いのか解決策となりえるものがヒットしない。この状態になったらもう詰みなのかもしれない。
誰か助けてください。
2022/1/15 追記
しかたないんでeno1とeno2どっちもAWS SGで許可しました。
この記事が気に入ったらサポートをしてみませんか?