RADIUS 伺服器 IP 儲存區配置

使用 RADIUS 伺服器,您可以從 IP 位址儲存區動態指派一個 IP 位址。

IP 位址配置是授權處理程序的一部分,於鑑別後執行。系統管理者必須為每個使用者指派唯一的 IP。若要動態提供使用者的 IP 位址,RADIUS 伺服器提供以下三個選項:

  • 頁框儲存區屬性
  • 使用廠商特定的屬性
  • RADIUS 伺服器端 IP 儲存區作業

頁框儲存區屬性

IP 儲存區 poolname 必須在網路存取伺服器 (NAS) 上定義。NAS 必須符合 RFC2869,RADIUS 伺服器才能在 Access-Accept 封包 (類型 88 屬性) 中傳送 Framed-Pool 屬性。系統管理者必須藉由將 Framed-Pool 屬性併入 RADIUS 伺服器上的整體 default.auth 檔或 user.auth 檔,來配置 NAS 並更新使用者的授權屬性。RADIUS 伺服器的字典檔中包括以下屬性:

ATTRIBUTE    Framed-Pool    88       string

如果 NAS 無法使用多個位址儲存區,NAS 會忽略這個屬性。NAS 的位址儲存區包含 IP 位址清單。NAS 會在指定的儲存區中,動態提取其中定義的一個 IP 位址,並將它指派給使用者。

廠商特定的屬性

部分獨立軟體廠商 (ISV) 無法使用 Framed-Pool 屬性,但具有定義 IP 位址儲存區的能力。藉由使用廠商特定的屬性 (VSA) 模型,RADIUS 伺服器可以利用這些位址儲存區。例如,Cisco NAS 提供稱作 Cisco-AVPair 的屬性。RADIUS 伺服器的字典檔中包括以下屬性:

VENDOR     Cisco           9
ATTRIBUTE  Cisco-AVPair    1       string

NAS 傳送 Access-Request 封包時,它會在這個屬性中併入 Cisco-AVPair=”ip:addr-pool=poolname,其中 poolname 是 NAS 上定義的位址儲存區名稱。鑑別及授權要求之後,RADIUS 伺服器在 Access-Accept 封包中傳回屬性。然後,NAS 可以使用定義的儲存區來配置使用者的 IP 位址。系統管理者必須藉由將 VSA 屬性併入 RADIUS 伺服器上的整體 default.auth 檔或 user.auth 檔,來配置 NAS 並更新使用者的授權屬性。

Radius 伺服器端 IP 儲存區作業

可將 RADIUS 伺服器配置為,從 IP 位址儲存區產生 IP 位址。會在 Access-Accept 封包的 Framed-IP-Address 屬性中傳回這個 IP 位址。

系統管理者可以使用 SMIT 介面來定義 IP 位址儲存區。在 /etc/radius/ippool_def 檔中維護該位址。Poolnamesetc/radius/clients 檔中定義。系統管理者還必須配置 NAS 埠號。RADIUS 伺服器常駐程式使用 etc/radius/clients/etc/radius/ippool_def 檔中的資訊,來建立資料檔。一旦啟動了常駐程式,在停止 RADIUS 伺服器之前,系統管理者無法變更或新增 poolnames 或 IP 位址範圍。啟動 RADIUS 伺服器常駐程式之後,它讀取配置檔 (/etc/radius/radius.conf),如果已啟用 IP 配置 (Enable_IP_Pooling=YES),則將整體 IP 配置旗標 (IP_pool_flag) 設為 On。然後常駐程式檢查並查看 poolname.data 檔是否存在。如果存在,它會讀取檔案並將該資訊保留於共用記憶體。然後根據來自用戶端的要求,更新檔案及共用記憶體。如果檔案不存在,則常駐程式會使用 etc/radius/clients/etc/radius/ippool_def 檔中的資訊建立新增檔案。poolname.data 檔的大小上限為 256 MB (AIX® 區段大小限制)。如果 poolname.data 檔超過 256 MB,則 RADIUS 伺服器會記下錯誤訊息,然後結束程式。

常駐程式從 /etc/radius/ippool_def 檔取得 IP 儲存區詳細資料,並維護適用於共用記憶體中每一個儲存區名稱的 IP 位址表格。表格具有 NAS-IP-address、NAS-port 及 IN USE 旗標項目。常駐程式維護由 NAS-IP NAS-port 作為索引鍵的 hash 表。如果要求來自多個使用者,UDP 會佇列要求,並且常駐程式會從這些要求擷取 NAS-IP 及 NAS-port 資料。使用這些資訊,它會藉由檢查 etc/radius/clients 檔中讀取的資訊,檢查並查看是否已為該 NAS 定義 poolname

常駐程式試圖從儲存區取得未用的位址。如果提供了未用的位址,NAS-IP 及 NAS-port 旗標會將它標示為 “in use”,然後將它傳回 RADIUS 伺服器。IP 位址由常駐程式放入 Framed-IP-Address 屬性,然後在 accept 封包中傳回 NAS。也會更新 poolname.data 檔,使之與共用記憶體中的資訊同步。

如果儲存區不存在,或存在但沒有任何未用的位址,則將錯誤傳回 RADIUS 伺服器。日誌檔中記下錯誤 Could not allocate IP address,並且 RADIUS 伺服器將 Access-Reject 封包傳送至 NAS。

錯誤碼如下:

  • NOT_POOLED – 沒有為 nas_ip 定義的儲存區。
  • POOL_EXHAUSTED – 該儲存區為 nas_ip 而定義,但儲存區中的所有位址目前都在使用中。

如果鑑別要求來自已配置 IP 位址的 NAS 與 NAS-port 組合,藉由將 IN USE 旗標標示為 Off,並清除表格中的 NAS-IP-address 及 NAS-port 項目,常駐程式將前一個配置傳回儲存區。然後,它從儲存區中配置一個新的 IP 位址。

在 RADIUS 伺服器從 NAS 接收到 Accounting-Stop 封包時,IP 位址同時也傳回儲存區。Accounting-Stop 封包必須包含 NAS-IP-address 及 NAS-port 項目。在下列情況,常駐程式會存取 ippool_mem 檔:

  • 要求取得新的 IP 位址。將 IN USE 旗標設為 true。
  • 接收到 Accounting-Stop 封包。藉由將 “in use” 旗標設為 false,釋放 IP 位址。

在任何情況下,共用記憶體系統呼叫會確保共用記憶體中的資料與 poolname.data 檔處於同步。系統管理者可以使用 RADIUS 伺服器配置檔 (radiusd.conf) 中的 Enable_IP_Pooling 參數,開啟關閉 IP 配置。這在系統管理者已在整體 default.authuser.auth 檔中指派了 IP 位址時尤為有用。若要使用已指派的 IP 位址,系統管理者必須設定 Enable_IP_Pool = NO

透過 SMIT 建立的 /etc/radius/ippool_def 檔之範例如下:
儲存區名稱 起始範圍 結束範圍
Floor5 192.165.1.1 192.165.1.125
Floor6 192.165.1.200 192.165.1.253
以下為透過 SMIT 建立的 /etc/radiusclients 檔之範例:
NAS-IP 共用密碼 儲存區名稱
1.2.3.4 Secret1 Floor5
1.2.3.5 Secret2 Floor6
1.2.3.6 Secret3 Floor5
1.2.3.7 Secret4  
在上面的範例中,NAS-IP-Address 1.2.3.7 的儲存區名稱為空白。在此情況下,對這個 NAS 不會執行 IP 儲存區作業 (即使整體 IP_pool_flag = True)。送入 Access-Request 封包時,RADIUS 伺服器執行鑑別並授權。如果順利完成,它會在 Access-Accept 封包中傳送要求中定義,或整體 default.auth 檔或 user.auth 檔中的靜態 IP 位址。在此情況下,不需要 NAS-Port 屬性。

如果 IP 儲存區作業為 True,系統管理者也已將靜態 IP 位址定義為整體 default.authuser.auth 的一部分,或作為 Access-Request 封包的一部分。RADIUS 伺服器會使用該 NAS 已定義儲存區名稱中配置的 IP 位址,來置換這個 IP 位址。如果儲存區中的所有 IP 位址都在使用,伺服器會記下錯誤 (儲存區已滿),然後傳送 Access-Reject 封包。伺服器會忽略 auth 檔中定義的全部靜態 IP 位址。

如果 IP 儲存區作業為 True,且已為 NAS 定義有效的儲存區名稱,從該 NAS-IP 送入 Access-Request 封包,而未定義 NAS-Port 時,伺服器會傳送 Access-Reject 封包。

以下為常駐程式建立的 Floor5.data 檔之範例:
IP 位址 NAS-IP NAS-Port 使用中
192.165.1.1 1.2.3.4 2 1
192.165.1.2 1.2.3.4 3 0
............ ....... .... ....
192.165.1.124 1.2.3.6 1 1
192.165.1.125 1.2.3.6 6 1
以下為常駐程式建立的 Floor6.data 檔之範例:
IP 位址 NAS-IP NAS-Port 使用中
192.165.200 1.2.3.4 1 1
192.165.201 1.2.3.4 4 1
............ ....... .... ....
192.165.1.252 1.2.3.4 5 0
192.165.1.253 1.2.3.4 6 1
需要釋放指定 NAS 的所有已配置 IP 位址時 (例如,NAS 停止時),可能需要釋放所有儲存區中的所有 IP 位址,來起始設定 poolname.data 檔。系統管理者可以使用 SMIT 來執行下列功能表動作:
  • 清除用戶端的 IP 儲存區
  • 清除整個 IP 儲存區

IP 儲存區的 SMIT 畫面

在用戶端配置新增用戶端中,您可以輸入選用的儲存區名稱。名稱最多可有 64 個字元。儲存區名稱空白時,不會執行 IP 儲存區作業,而 RADIUS 伺服器則由系統管理者透過 Framed-IP-Address 授權屬性來指派已定義的 IP 位址。

選取 IP 儲存區之後,畫面上會顯示下列選項:

  • 列出所有 IP 儲存區
  • 建立 IP 儲存區
  • 變更/顯示 IP 儲存區的性質
  • 刪除 IP 儲存區
  • 清除用戶端的 IP 儲存區
  • 清除整個 IP 儲存區

列出所有 IP 儲存區:使用此選項,列出儲存區名稱IP 位址起始範圍IP 位址結束範圍

建立 IP 儲存區:使用此選項,新增儲存區名稱、起始範圍及結束範圍。這個資料會附加到 ippool_def 檔底端。進行檢查,確保沒有重複的儲存區名稱,以及 IP 位址範圍不相交。只有在不執行 RADIUS 伺服器常駐程式時,才可以執行這個動作。

變更/顯示 IP 儲存區的性質:此選項會在蹦現畫面中顯示儲存區名稱清單。在此畫面中,您必須選取特定的儲存區名稱。在您選取了一個儲存區名稱之後,畫面上會顯示已選取的名稱。一旦您按了 Enter 鍵,ippool_def 檔中會更新該儲存區名稱的資料。只有在不執行 RADIUS 伺服器常駐程式時,才可以執行這個動作。

刪除 IP 儲存區:選取此選項會顯示您可以選取的儲存區名稱清單。一旦您選取了儲存區名稱,會顯示您確定嗎蹦現畫面,以在刪除已選取的儲存區名稱之前提供確認。呼叫 rmippool Script,從 ippool_def 檔中刪除已選取的儲存區名稱。只有在不執行 RADIUS 伺服器常駐程式時,才可以執行這個動作。

清除用戶端的 IP 儲存區:此選項將屬於 NAS 的 IP 位址 IN-USE 項目標示為 0,表示這個 NAS 的所有 IP 位址現在都可用。只有在不執行 RADIUS 伺服器常駐程式時,才可以執行這個動作。

清除整個 IP 儲存區:一旦選取此選項,會顯示您確定嗎蹦現畫面,以在清除整個 ippool_mem 檔之前提供確認。只有在不執行 RADIUS 伺服器常駐程式時,才可以執行這個動作。