ITエンジニアの技術メモ

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

ネットワーク

X-Frame-Options レスポンスヘッダについて

httpの X-Frame-Options レスポンスヘッダについて簡単に纏める。 webサーバがクライアント(ブラウザ)に応答を返す際、そのレスポンスヘッダに「X-Frame-Options」を入れることで、ブラウザ側での iframe(フレーム) の制御をコントロールすることができる。 …

nslookupコマンドは hosts ファイルを参照しない。

先日、hosts ファイルを書き換えたものの、それが nslookup コマンドの結果に反映されなかったので「あれ?」と思って調べたら、このコマンドは hosts ファイルを参照しないらしい。 https://tech.nikkeibp.co.jp/it/article/COLUMN/20070312/264620/ https:…

ネットワーク機器のループバックアドレス

「ループバックアドレス」というと、自分自身を指す 127.0.0.1 (localhost) を思い浮かべる人が多いと思う。 ループバックアドレス(127.0.0.1)とは - IT用語辞典 e-Words しかし、ルータ等のネットワーク機器が持つ「ループバックアドレス」はこれとは異な…

httpリクエストのクエリストリングの値だけをURLエンコードする。

Javaで、httpリクエストのクエリストリングの値だけをURLエンコードするメソッド (encodeQueryValue) を作成した。例えば、 「www.test.local/path/app?name1=aaa&name2=ほげ&name3=ふが」 を引数として与えると、 「www.test.local/path/app?name1=aaa&name…

httpリクエストのHostヘッダ

ApacheやNginxなどのwebサーバには、クライアント(ブラウザ)からのIP直アクセスを検知してアクセス拒否する設定がある、という話を聞いて、 「ブラウザでホスト名を打ち込んでアクセスしたとしても、(DNSで名前解決されて)最終的にIPアドレスによる通信にな…

JavaのInetAddressクラスのメソッドで名前解決(逆引き)する時は正引きも行われている。

JavaのInetAddressクラスのgetHostName()やgetCanonicalHostName()で、IPアドレスからホスト名への名前解決(逆引き)を実行すると、裏で正引き(ホスト名⇒IPアドレス)も行われるようだ。詳細は以下の通り。InetAddressクラスのソースを確認すると、getHostName…

コミュニティ ストリング インデックスについて

Cisco の機器に対して SNMP で MIB 情報を取得する際の、「コミュニティ ストリング インデックス」について勉強した。 SNMP コミュニティ ストリング インデックス - Cisco 簡単に纏めると、例えば、機器が vlan 100 を持っているとして、機器から SNMP で …

Javaの名前解決のキャッシュ

Javaの名前解決では、以下のようにキャッシュを使っているので、OS(hosts)やDNSで名前解決を変更しても、すぐに反映されるわけではない。 networkaddress.cache.ttl java.securityで指定して、ネーム・サービスからの名前の検索に成功した場合のキャッシング…

icmpパケットのIDとシーケンス番号

icmpパケットには、ID(Identifier) と シーケンス番号(Sequence Number) が含まれている。これらがどのように使用されるのかイマイチ分かっていなかったので、ちょっと調べてみた。いつも通り、大正義 rfc を見に行く。すると、 https://tools.ietf.org/html…

SSL/TLS 署名アルゴリズム

先日、SSL/TLS の署名アルゴリズム(ハッシュアルゴリズム)について話が挙がった時、「あれ?署名アルゴリズムって SSL/TLS通信のどこで使用されるんだっけ・・?」となってしまったので、また忘れないようにここに簡単に纏めておく。 署名アルゴリズムは、SH…

pingで「宛先ホストに到達できません。」が出る場合

存在しない IP アドレスに対して ping コマンドを実行すると、「宛先ホストに到達できません。」と出ることがある。これは、ping コマンドが icmp パケットを送信する前段階の arp 要求に対する応答が返ってきていないことを意味している。 また、存在する I…

bonding インターフェースに対するtcpdump

Linuxには、複数の物理インターフェースを論理的に一つと見なす、bondingという技術がある。 この bonding インターフェースに対して tcpdump コマンドでパケットキャプチャを取得する場合、bonding インターフェースを構成する物理インターフェース(ethX)を…

リバースプロキシ

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

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

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

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

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

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

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 (.). …

自宅インターネット接続

引っ越して新居でインターネット接続を行った時のメモ。環境は、回線が 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高騰しても、ネットワーク機器と…

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

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

AutoMDI/MDI-X

以前ネットワークを構築した時、ネットワーク機器同士をLANケーブルで接続する時はクロスケーブルで、ネットワーク機器と端末機器を接続する時はストレートケーブルで接続していた。 これは、LANポートに以下の2種類があり、 MDI (Medium Dependent Interfac…

VLANにIPを割り振る意味

昨日に引き続き、VLANに関するメモ。 VLANはL2の技術である。VLANを作成することによって、スイッチでブロードキャストドメインを分割することができる。 一方、VLANにはIPアドレスを割り振ることができる。(正確には、L3スイッチの持つ VLANインタフェース…

L3スイッチのVLANインタフェース

L3スイッチのVLANインタフェースについて簡単に説明する。 L3スイッチは、「L2スイッチ+内部ルータ」で構成される。この内部ルータは、L2スイッチが区切ったVLAN間のルーティングを可能にする。 VLAN間通信で内部ルータを経由する際、内部ルータの持つVLAN…

SSL/TLSの暗号スイート

SSL/TLSの設定を行っていると、 TLS_RSA_WITH_DES_CBC_SHA など、暗号スイートを示す文字列に出くわすことがある。 これは、SSL/TLSの暗号技術の組み合わせを表しているのだが、何を意味するのか分かりにくいので、ちょっと調べてみた。 上の暗号スイートを…

L2スイッチにIPアドレスを振る理由

L2スイッチは、L2層の情報(MACアドレス)を見て、フレームを適切な宛先に転送するネットワーク機器である。なので、フレーム転送の際にL3層の情報(IPアドレス)を見ることはなく、L2スイッチ自身にIPアドレスを振る必要はない。 つまり、サーバやルータのよう…

hostsファイルとDNSサーバとの優先順位

ホスト名からIPアドレスへの名前解決を行う際にOSが参照する情報として、hostsファイルとDNSサーバがある。どちらが優先されるのか、つまり、OSが提供するコマンドや API を使って名前解決した時にどちらの情報を優先的に見るようになっているのか、ちょっと…

DNSサーバのMXレコード

DNSサーバのMX(Mail eXchange)レコードについて、ちょっと調べる機会があったので、理解したことをここに書いておく。 DNSサーバのMXレコードは、メールソフトがメールを出す時に、宛先のメールサーバの情報を知るためにある。DNSサーバのMXレコードの形式は…