web-dev-qa-db-ja.com

nfsrootに使用するネットワークインターフェイスを指定する

2つのネットワークカードeno1eno2を持つサーバー(Ubuntu 16.04)を実行しています。

  • eno1は外部に接続され、dhcp経由でパブリックIPアドレスを受け取ります
  • eno2はプライベートネットワークに接続され、dhcp経由でプライベートIPアドレスを受信します(たとえば192.168。 0.2単純化のため)

サーバーは、プライベートネットワーク上の2番目のサーバー(たとえば192.168.0.1)からネットブートしてすべてを受信します。 Diskless Ubuntu HowTo をフォローしましたが、すべてうまくいきます。

  • サーバーはIPアドレスとして192.168.0.2を取得します
  • その後、tftp(192.168.0.1から)経由でカーネルとinitramfsをロードし、続行します
  • 後で192.168.0.1にある/をマウントします

ただし、最後のステップには問題があります。ほぼ同時に、システムはeno1とeno2の両方のIPアドレスを取得しようとしますが、場合によってはeno1が最初に終了します。次に、システムは192.168.1を介して192.168.0.1を見つけようとしますが、もちろんできません。

チュートリアルで述べたように、iface eno2 inet manual/etc/network/interfacesに含めて、eno2がアドレスを失うのを防ぎましたが、これは役に立たないようです。

最初に使用するネットワークインターフェースの代わりにeno2を強制的に使用する方法

2
mbeyss

長い答えについては、 nfsroot documentation をご覧ください。

デフォルトの動作では、nfsroot用に構成された最初のインターフェースが使用されます。あなたの場合、2つの異なるネットワークに接続された2つのインターフェースを持っているので、それは何らかの形でランダムです。

カーネルコマンドラインにip=:::::eno2:dhcpを追加することにより、nfsrootに使用されるネットワークインターフェイスを強制できます。

Netbootチュートリアルの場合、これはAPPEND行の/tftboot/pxelinux.cfg/defaultファイルに含まれます。 (ip=dhcpを置き換えます)

2
pim