MACアドレスがネットワーク管理およびトラフィックアカウンティングシステムに登録されている顧客(請求言語は判明しません)。
数年後、ネットワーク192.168.0.0/21の範囲がほぼ一杯になり、データベースで指定されたMACアドレスのほとんどがユーザーのWi-Fiデバイスのアドレスであり、しばしば忘れられて長期間使用されていないことに気付きました。
その結果、アドレスの動的割り当てを備えたWi-Fiデバイス専用に範囲192.168.7.0/24を割り当てることにしました。
これを行うために、すべてのCiscoスイッチのポートですべてのWi-Fiアクセスポイントを計算し、それらをdhcpサーバーのクラスに登録しました(Linuxのisc-dhcpdが使用されます)。
ネットワーク図:

図からわかるように、ネットワーク上には6つのCisco Catalystデバイスがあります。
特定の各スイッチのMACアドレスを確認するには、構成にdhcpdを記述します。
if exists agent.remote-id and exists agent.circuit-id { if binary-to-ascii(16, 8, "", substring(option agent.remote-id, 2, 1)) = "0" { set switch-mac = concat("0", binary-to-ascii(16, 8, "", substring(option agent.remote-id, 2, 1)), ":", binary-to-ascii(16, 8, ":", substring(option agent.remote-id, 3, 6))); } else { set switch-mac = binary-to-ascii(16, 8, ":", substring(option agent.remote-id, 2, 6)); } log(info, "-------------------------------------------------------------------------"); log ( info, concat("Switch MAC: ", switch-mac)); log ( info, concat("Switch Port: ", binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1)))); }
その結果、スイッチのMACアドレスは次のように定義されました。
#Cisco0:63:69:73:63:6f:30
#Cisco1:63:69:73:63:6f:31
#Cisco2:63:69:73:63:6f:32
#Cisco3:63:69:73:63:6f:33
#Cisco4:63:69:73:63:6f:34
#Cisco5:63:69:73:63:6f:35
#Cisco1:63:69:73:63:6f:31
#Cisco2:63:69:73:63:6f:32
#Cisco3:63:69:73:63:6f:33
#Cisco4:63:69:73:63:6f:34
#Cisco5:63:69:73:63:6f:35
その後、/ var / log / messagesにすべての接続のログが表示されます(どのデバイスおよびどのポートからDHCPINFORMが来たのか):
dhcpd: ------------------------------------------------------------------------- dhcpd: Switch MAC: 63:69:73:63:6f:32 dhcpd: Switch Port: 6 dhcpd: DHCPINFORM from 192.168.2.55 via eth1 dhcpd: DHCPACK to 192.168.2.55 (xx:xx:xx:xx:xx:xx) via eth1 dhcpd: -------------------------------------------------------------------------
各デバイスのサブネット{}ブロック(基本的には目的のスイッチの目的のポート)で、クラスを作成します。
class "801:1" { match if binary-to-ascii(16, 8, ":", substring(option agent.remote-id, 2, 6)) = "63:69:73:63:6f:31" and binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1)) = "18"; } # 18 Cisco1 801:1 class "804:1" { match if binary-to-ascii(16, 8, ":", substring(option agent.remote-id, 2, 6)) = "63:69:73:63:6f:30" and binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1)) = "30"; } # 30 cisco0 - 804:1
クラス名はキャビネット番号に関連付けられています:シリアル番号
プールを作成します。
pool { allow members of "801:1"; allow members of "804:1"; ddns-updates off; range 192.168.7.1 192.168.7.254; default-lease-time 3600; max-lease-time 7200; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; }
その結果、mac1がネットワーク管理システムのデータベースに登録されているかどうかに関係なく、cisco1のポート18またはcisco0のポート30に接続されたデバイスは、DHCPサーバーからIPアドレスとすべての設定を受け取ります。
さらに構成には、登録済みクライアントに割り当てられたmacおよびipアドレスを持つホストが直接登録されます。
PS:mac-addressがデータベースに登録されており、デバイスがこれらのポートのいずれかに含まれている場合、ディレクティブhost {}で厳密に登録されたIPアドレスが与えられます