在一台 CompactRIO 控制器上設定多個 IP 位址

更新 Aug 11, 2025

環境

硬件

  • CompactRIO Controller

操作系統

  • NI Linux Real-Time

我正在使用 IEC 61850 MMS 工具包,在 cRIO-9038 上模擬多個 MMS 伺服器。
目前我的設定是讓 3 個伺服器使用相同的 IP 位址,但監聽不同的連接埠,例如 4102、4103 和 4104。
然而,我希望這些伺服器能在相同連接埠(例如 4102)上運行,但分別使用不同的 IP 位址,例如 10.0.0.99、10.0.0.100、10.0.0.101 等。

請問有辦法將 cRIO-9038 設定為擁有三個或更多不同的 IP 位址嗎?

官方不支援 CompactRIO 控制器的一個網路介面上的多個 IP。

然而,對於在 NI Linux 上運行的所有 CompactRIO 控制器(例如 cRIO-9038),都有一個解決方案。以下是實施步驟。 cRIO-9038 有兩個網路介面 (NIC)。在此範例中, eth0 將用作配置接口, eth1 作為連接到客戶端的公共接口。一般來說,此設定也適用於單一 NIC。

  1. 使用 NIMeasurement & Automation Explorer (MAX) 將eth0配置為具有靜態 IP或使用DHCP
  2. 使用 MAX 將eth1配置為靜態並設定在此網路卡上使用的第一個 IP(例如 10.0.0.99)
  3. 使用 MAX 驗證 SSH 是否已啟用(啟用 Secure Shell Server (sshd)處的複選標記)。
  4. 驗證是否存在具有設定密碼的使用者。
  5. 透過SSH 存取cRIO(例如使用putty)。
  6. 編輯 /etc/natinst/networking/ifplugd.script 以定義其他 IP。您可以使用 NI Linux 上提供的編輯器 vi 來執行此操作:
    1. 使用指令 vi /etc/natinst/networking/ifplugd.script 啟動編輯器
    2. 按 i 切換到編輯模式
    3. 將此部分直接插入 update_interface_info $INTERFACE 行之前:
      if [ "$INTERFACE"=="eth1" ]; then
          ip addr add 10.0.0.100/8 dev eth1;
          ip addr add 10.0.0.101/8 dev eth1;
          ip addr add 10.0.0.102/8 dev eth1;
      fi

注意:將 eth1 變更為您正在使用的介面,例如 eth0 。根據需要新增更多 IP 線路。不要意外地重複使用您在 MAX 中設定的「第一個 IP」。

  1. 按 Esc 鍵退出編輯模式。
  2. 輸入:wq 並按 Enter 鍵儲存並退出( :q! + Enter 鍵退出而不儲存)。
  1. 將網路線插入 eth1 以將網路連接埠連接到某物(例如交換器),或如果之前連接過,請將其拔出並重新插入。現在 NIC 應該擁有您定義的所有 IP。
  2. 使用 ip add list eth1 進行檢查。

現在您應該能夠使用所有不同的 IP 位址連接到 CompactRIO。例如,多個 MMS 伺服器可以同時運行,每個伺服器具有不同的 IP。

附加資訊

  • 在變更 cRIO 網路設定時務必小心,因為任何錯誤都可能導致受影響的網路介面(NIC)中斷所有網路流量,包括 SSH 連線。這是一般的設定限制,並非 cRIO 或 NI Linux 的限制。

  • 類似 ip addr add 10.0.0.100/8 dev eth1 的指令可直接在 shell(Linux 指令列)中使用,臨時變更 NIC 的設定。但此變更會在網路線被拔除、連線被重置(例如另一端交換器重新啟動)、或 cRIO 重新開機時被重置。

  • MAX 不會顯示額外設定的 IP 位址。

  • 使用 MAX 變更「第一個 IP」的設定時,不會刪除額外設定的 IP 位址。

  • /etc/issue 不會顯示額外設定的 IP 位址。

  • 本方法已在 NI cRIO-9065 測試過。

#admin@cRIO-9065-ik: cat /proc/version
Linux version 4.6.7-rt14-ni-5.0.0f0 (lvbuild@2017RTLin.amer.corp.natinst.com) (gcc version 4.7.2 (GCC) ) #1 SMP PREEMPT RT Fri Mar 10 02:40:15 CST 2017

  • 當在單一 NIC 上使用來自多個子網的 IP 位址時,外部網路硬體必須能夠將多個子網路導向同一個網路介面。在這種情況下,使用 VLAN 可能會更方便。