SNMPを介したスイッチの時刻の設定

みんなニュースで読んだように。 夏/冬時間では、完全な混乱が予想されます。

数千個のスイッチのベースがあるため、ハンドルを使用して構成を変更できます。

ここにいたので、私はそのような自転車を思いつきました。

ちなみに、この自転車は時間を設定するだけでなく、SNMPを介して設定されているものにも適しています。



だから。

あります

1. 1つのシリーズについて数千のスイッチ(dlinkがあります)。 すなわち:

DES-1228 / ME

DES-3200

DES-3526

DES-3010G



これらのスイッチは時間設定に対して同じOIDを持っているため、一度に253個のパックでプログラムします。



サブネット:

関係ありません。 それをしましょう:172.16.0.0/24

サイズ/ 24のサブネットは5分以内に解決されました。スクリプトは.phpにあるため、30秒後にスクリプトを削除したり、一度に処理されるサブネットのサイズを縮小したりしないようにサーバーを再構成する必要があります。



そのため、設定(config.php):

<? $startip = "172.16.0.2"; $endip = "172.16.0.254"; $ntp1 = "172.16.0.1"; $ntp2 = "172.16.0.1"; $gmt = "540"; $interval = "86400"; $community = "private"; $dissummertime = ".1.3.6.1.4.1.171.12.10.12.1.0"; //i $enantp = ".1.3.6.1.4.1.171.12.10.11.1.0"; //i $ntpupdateoid = ".1.3.6.1.4.1.171.12.10.11.5.0"; //i $ntp1oid = ".1.3.6.1.4.1.171.12.10.11.3.0"; //a> $ntp2oid = ".1.3.6.1.4.1.171.12.10.11.4.0"; //a $gmtoid = ".1.3.6.1.4.1.171.12.10.10.4.0"; //i $saveconfig = ""; ?>
      
      





ポイントを扱います:

$ startip-スイッチのIP範囲の開始。

$ endip-範囲内の最後のスイッチ。

$ ntp1-スイッチで使用可能なネットワーク上の時刻同期サーバー。

$ ntp2-ネットワークで2回目の同期サーバー。スイッチで使用可能。

$ gmt-タイムゾーンシフト、+ 9があります。つまり、9 * 60 = 540と入力しました。

$ interval-スイッチが時間を更新する期間。 デフォルト値は720です。1日に1回設定します:60 * 60 * 24 = 86400;

$ community-書き込み許可を持つコミュニティパスワード。



これで、スクリプト自体(ntp.php):

 <?. //   include_once('config.php'); //  IP     ,     $ip = ip2long($startip); $ip2 = ip2long($endip); //    IP  for($ip;$ip <= $ip2; $ip++) { //   IP     xxx.xxx.xxx.xxx  ,     snmp         $ipdec = long2ip($ip); //       80  $fp = @fsockopen ($ipdec, "80", $errno, $errstr, 2); //    ,      : IP - Error -   ( ) if (!$fp) { echo $ipdec." - Error - $errstr ($errno)<br />"; //     snmp  } else { //    snmpset($ipdec, $community, $dissummertime, "i", "0"); //     ntp snmpset($ipdec, $community, $enantp, "i", "3"); //     snmpset($ipdec, $community, $ntpupdateoid, "i", $interval); //    ntp  snmpset($ipdec, $community, $ntp1oid, "a", $ntp1); //    ntp  snmpset($ipdec, $community, $ntp2oid, "a", $ntp2); //     snmpset($ipdec, $community, $gmtoid, "i", $gmt); //      : IP - OKe echo $ipdec." - OKe<br />"; } } ?>
      
      







これらの値を最初のアドレスプールに送信した後、設定でプールを次のアドレスプールに変更し、スクリプトを再度実行できます。



短所スクリプト:

1.アドレスプールを変更するには、スクリプトの本文を開く必要があります。

原則として、入力フィールドを作成できます。

2. IPスイッチはERPデータベースにあるため、スクリプトはそこからそれらを取得し、空のアドレスを除外できるようにします。

3.スクリプトは、スイッチ構成を保存するコマンドを送信しません。 再起動(停電)後、これらの設定は保存されません。 このエラーを修正しても、宿題は残ります。 つまり 設定を保存するOIDを見つけて、スクリプトの本文にsnmtset行を追加する必要があります。

まあ、そしてまともな人々への書き方:この方法は独創的であるふりをせず、あなたが望むように、そしてあなた自身の危険とリスクでそれを使うことができます。



PSは設定を保存するには、次の行を修正する必要があります:.1.3.6.1.4.1.171.12.1.2.6.0 i 2



All Articles