技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

2018-01-01から1年間の記事一覧

yumコマンドとrpmコマンド

Linux上にパッケージをインストールするには、yumコマンドを使用する方法とrpmコマンドを使用する方法がある。yumコマンドはrpmコマンドの上位コマンドになっており、内部でrpmコマンドを呼んでいる。 また、yumコマンドは、目的のパッケージをインストール…

リバースプロキシ

普通のプロキシとリバースプロキシとの違いについて簡単にまとめる。 一般的に普通のプロキシは、社内からインターネットに出るところに置いて、社員のインターネットへのアクセスを管理したり、アクセス速度向上のためインターネットから取得したコンテンツ…

Linuxへの公開鍵のimport

Linux上にrpmパッケージをインストールする際、そのrpmパッケージに電子署名が付与されている場合は、(署名に使われた秘密鍵に対応する) 公開鍵をLinux上にインストールしておくことが必要となる。 その際の方法として、rpm --import コマンドを使用するのと…

SNMPのOIDのルール

rfc2578 によると、SNMPのOIDには以下の規定がある。 サブID(※)は正数 サブIDの個数は128個まで サブIDの最大値は 2^32-1 (4294967295) 少なくても2個のサブIDを持つ 最初のサブIDは 0 or 1 or 2 (※)サブIDとは、OIDを構成する各数値のこと。 An OBJECT IDEN…

OIDのBER形式でのエンコード

以前、以下の記事のコードを書いた時、SNMPのOIDの BER(Basic Encoding Rule)形式でのエンコード処理について勉強した。 akrad.hatenablog.com 今回は、その時に勉強した内容を書く。 SNMPのOIDのエンコードで面倒なのは、OIDの数値が128以上の場合である。…

16進のSNMP OIDを通常の文字列の形式に変換する

主題の処理を行うperlスクリプト convertOidHexToStr.pl を作成した。使い方は、例えば、「perl convertOidHexToStr.pl 2b06010401CE0F」 や 「perl convertOidHexToStr.pl "2b 06 01 04 01 CE 0F"」 のように指定すると、結果として、人に優しい形式でOID文…

ダイレクトブロードキャスト

今日、ダイレクトブロードキャストなるものを初めて知った。ブロードキャストというと、同一ネットワーク内に一斉送信されるものという認識であったが、このダイレクトブロードキャストは異なるネットワーク内に対して一斉送信されるものである。 あまり使用…

サマータイムで影響を受けるシステム

最近、東京五輪に関連して話題に挙がっているサマータイムの導入。「システムが影響を受ける!」という声が多方面から挙がっているが、システムが影響を受けるケースについて、ネット上の情報をもとに簡単に纏めてみた。 WindowsやLinux等のOSは、内部時間を…

SNMP trap (coldStart) 送信スクリプト

以前作成した以下の perl スクリプトをエンハンスした。 akrad.hatenablog.com具体的には、SNMPv1 のcoldStartトラップも SNMPv2cのcoldStartトラップも送信できるようにし、トラップ送信先やSNMPv1トラップの agent-addrフィールドも指定できるようにした。…

AOSSを使って、プリンタと無線LANルータを接続

自宅で、無線LANルータ(buffalo)経由で PCとプリンタを接続するために、プリンタと無線LANルータを無線で接続することになった。簡単に、構成は以下。 無線LANルータ | +---------(ここは接続済)--------- PC | + ------(接続したのはここ)------ プリンタ P…

SNMPのパケットダンプを解析する時のコツ

先ほど、 SNMP v2c trap (coldStart) 送信スクリプト - Akira's Blog の記事を書くために SNMPトラップのパケットダンプを解析した。この際に SEQUENCE型を示す 0x30 に着目すると、各データの区切り位置が分かって解析しやすかった。 パケットダンプ内に 0x…

SNMP v2c trap (coldStart) 送信スクリプト

SNMP v2c の trap (coldStart) を送信するperlスクリプト sendTrap.pl を作成した。perl sendTrap.pl として実行すると、localhost の 162/udp に対して、coldStartトラップを送信する。例えば、SNMPマネージャのtrap受信テストを簡単に行うのに使用できると…

C:\Users\All Users と C:\ProgramData

C:\Users\All Users は C:\ProgramData へのシンボリックリンクになっている。つまり、C:\Users\All Users の実体は C:\ProgramData にある。これを知らないで、「C:\Users\All Users に C:\ProgramData と同じデータが重複して存在しまっている」とか思って…

メモ帳でUTF-8で保存すると、ファイルの先頭にBOMが入る。

メモ帳でUTF-8で保存すると、ファイルの先頭に BOM(Byte Order Mark)が入る。通常テキストエディタではBOMが付いているか分からないが、バイナリエディタで見ると BOM(0xEF 0xBB 0xBF) が付いているのが分かる。ちなみに、メモ帳のこの挙動は、私の調べた限…

sprintf関数とunpack関数

sprintf関数とunpack関数は、ともに引数の数値を16進表記に変換できるが、以下の挙動の違いがある。 use strict; use warnings; my $num = 12; my $hexdumpBySprintf = sprintf("%x", $num); my $hexdumpByUnpack = unpack("H*", $num); print "hexdump by s…

WSFCでHAクラスタを組むのにADは必須ではなくなったようだ。

Windows2016から、WSFC(Windows Server Failover Clustering)でHAクラスタを組むのに、AD(Active Directory)は必須(前提)ではなくなったらしい。 ADドメインはもう不要? ワークグループでクラスター作成が可能に――フェイルオーバークラスターの新機能(その…

ホスト名にアンダースコア (_) は許容されていない。

rfcを読むと、ホスト名に許容されている文字にアンダースコア(_)は含まれていない。 A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and period (.). …

JavaのインタフェースとC言語のヘッダファイルの共通点

JavaのインタフェースとC言語のヘッダファイル(*.h)は、以下の点で共通点があると思う。 実装クラスや実装ファイルが外部に公開する、定数、メソッド/関数の情報を記載する。 機能を使う側、つまり取り込む側で インタフェースやヘッダファイルの情報(ファ…

自宅インターネット接続

引っ越して新居でインターネット接続を行った時のメモ。環境は、回線が NTT東日本のフレッツ光(ハイスピード・マンション・タイプ)で、 プロバイダはOCN。 インターネット接続の方式は、調べた限りでは以下の2つがあるようだ。 NTT東日本から提供されたONU(…

udpパケットを送信するスクリプト

指定したホスト、ポートに udpパケットを送信する perl スクリプト sendUdpData.pl を作成した。テストなどで、パケットキャプチャで取得したデータ(16進ダンプ文字列)を、好きな場所に送りたい場合に使う用途で作成した。使い方は以下。 perl sendUdpData.p…

Cisco機器に対するSNMPリクエスト

Cisco機器に対してSNMPリクエストを行うと、機器のCPU使用率が高騰することがあるようだ。 IP簡易ネットワーク管理プロトコル (SNMP) は高いCPU使用率を引き起こす - Cisco ただ、上述のページに、SNMPリクエストを受けてCPU高騰しても、ネットワーク機器と…

Javaの各数値型の最大値・最小値

Javaの各数値型の最大値・最小値で一目で確認できるようにしたかったので、以下のプログラムを作成した。 public class ShowMaxMin { public static void main(String[] args) { System.out.println("Byte Min: " + Byte.MIN_VALUE); System.out.println("By…

SNMP getbulk の nonRepeaters オプション

以前、以下の記事を書いた時に、 akrad.hatenablog.com SNMPのgetbulkで出てくる nonRepeaters が何なのかあまり分かっていなかったので、今回それを調べてみた。まず、nonRepeaters については、 http://net-snmp.sourceforge.net/wiki/index.php/GETBULK …

内部通信をパケットキャプチャする方法

Linuxでは、OS標準の tcpdump コマンドで内部通信のパケットキャプチャを取得することができる。tcpdump コマンドのオプションで「-i lo」を付ければ良い。 ちなみに、tcpdump コマンドで「-w dumpfile.cap」を指定すると、dumpfile.cap に、 wireshark 上で…

JavaでSNMP GetBulk

JavaでSNMP Get Bulk を実行するコードを作ってみた。とりあえずざっと作ってみただけなので、SNMP要求を出すターゲットの情報などはソース中にハードコードしている。 実行すると、localhost上のSNMPエージェントに対して、.1.3.6.1.2.1.1 から数えて20個の…

Active Directoryで出てくる用語 (DN, OU, DC, CN など)

Active Directory の環境構築を行っていると、DN, OU, DC, CN など、何のことかよく分からない用語が出てくる。ここでは、それらについて簡単に纏める。 これらは rfc2253 に記載がある。 https://www.ietf.org/rfc/rfc2253.txt 抜粋すると以下の通り。 Stri…

MessageListenerクラスのonMessageメソッド

JavaのJMS(Java Message Service)の受信側でコールされるMessageListener#onMessage()は、並列して走ることがあるのか調べてみた。 まず、JavaDocを読んでみる。 ・・・the onMessage method is not called with the next message until the session has com…

MIBファイル内の定義における大文字・小文字の使い分け

SNMPで使用されるMIBファイルでは、以下のように大文字・小文字が使い分けられていることが多い。RFCでの定義例はそうなっている。 ・・・ evalEntry OBJECT-TYPE ★オブジェクト定義は先頭が小文字 SYNTAX EvalEntry ★シンタックス定義は先頭が大文字 MAX-AC…

ファイルを開いているプログラムを特定する方法

Windows上で、ファイルを移動したり、ファイル名を変更したい時、何らかのプログラムがそのファイルを掴んでいて、やりたいことができないことがある。通常は、現状で開いているアプリを確認すればどのプログラムが対象のファイルを開いているのか分かるので…

staticな内部クラス

Javaではクラスの中にクラスを定義することができる。これを内部クラスと言う。この内部クラスを定義する際、staticを付けることができる。今日はどういう時に内部クラスにstaticを付けるべきなのか書く。 結論から言ってしまうと、内部クラスにはstaticを付…