Dramsuko_wiki

Network

目次

サブネットマスク

サブネットマスク計算サイト

サブネットマスク、仕組み

サブネットマスクの算出方法
CIDR表記10進数表記2進数表記
/24255.255.255.011111111.11111111.11111111.00000000
/25255.255.255.12811111111.11111111.11111111.10000000
/26255.255.255.19211111111.11111111.11111111.11000000
/27255.255.255.22411111111.11111111.11111111.11100000
/28255.255.255.24011111111.11111111.11111111.11110000
/29255.255.255.24811111111.11111111.11111111.11111000
/30255.255.255.25211111111.11111111.11111111.11111100
/31255.255.255.25411111111.11111111.11111111.11111110
/32255.255.255.25511111111.11111111.11111111.11111111

OSI(Open System Interconnection)参照モデル,TCP/IP

例・その他IP suiteAppleTalk?
suite
TCP/IP
No名称
7アプリケーション層アプリケーション層
6プレゼンテーション層
5セッション層
4トランスポート層トランスポート層(L4)
3ネットワーク層インターネット層(L3)
2データリンク層リンク層(L1/L2)
1物理層RS-232C
100BASE=TX

語句

  • IP(Internet Protocol)
  • TCP(Transmission Control Protocol)
  • ARP(Address Resolution Protocol)
    • MAC Addressを知るためのプロトコル
    • IP に対応するMACアドレスをARPにより解決する。
    • ルーターではイーサネットヘッダを順次付与していく
  • ICMP(Internet Control Message Protocol)
    • Ping に使用されるprotocol。

パケット・キャプチャ

ソフト

  • Wireshark
  • Microsoft Message Analyzer
  • PacMon?

キャプチャーする場所

PCでキャプチャー

  • PCに届いたパケットをストレージに保存していくこと。
  • 保存したデータ
    • キャプチャーデータ
    • キャプチャーファイル

パケット解析

  • キャプチャーデータに対して行う
  • 可能なら保存したデータで行う方が望ましい
    • キャプチャーはパソコンにかかる負荷が大きく、
      解析しながらだとパケットを取りこぼす恐れがある
  • Tshark
    • コマンドラインで実行できるパケットキャプチャーソフト
    • 軽い
    • 1Gbps を超える様ならTSharkが望ましい

LANケーブルに流れるパケットのキャプチャー

  • リンクを分岐してPCで取り込む
    • この方法はできない
    • 自分宛以外のパケットを受け取れないため
    • LANケーブルは分岐できる構造にない
    • どうしても行うためには、
      • 「プロミスキャスモード」で動くネットワーク処理プログラム
  • プロミスキャスモード
    • NICに届いたすべてのパケットをパケットキャプチャーソフトに転送する
    • ソフト名:Npcap (Wiresharkに入ってる)

分岐

  • ミラーリング, フラッディング機能を持つスイッチを使うことで解決
    (普通のスイッチでできる)
  1. ミラーリング
    • ユーザーが指定したポートの通信を特定のポートにコピーする機能
  2. フラッティング
    • スイッチのどのポートに届いたパケットもすべてのポートに転送する機能

取り込みたいパケットを考える

  1. どこでパケットキャプチャーを実行すべきか
  2. パケットキャプチャーソフトをインストールできるか
    • PC Aでトラブル発生
    1. パケットキャプチャーソフトをインストールできる
    2. パケットキャプチャーソフトをインストールできない
      • PC AにつながっているL2スイッチで分岐する
      • 徐々に上流に上がって分岐する

フィルター(Wireshark)

Wireshark(使い方とインストール)

  • 対応プラットフォーム
    • Windows
    • macOS
    • Linux
  • 無償
  • 前身は「Ethereal(イーサリアル)」
  • 2019年2月 Ver 3.0.0
  • Install
    • 全てデフォルトのままでOK
    • Npcap も一緒にインストールしておく
      (デフォルトのままでインストールする)

基本的な使い方

  • インターフェースの選択
    • 右側の折れ線グラフがトラフィックの状況
    • ダブルクリックで選択するとキャプチャが開始される
    • キャプチャの解析は一旦セーブしてから行うと良い
  • ボタン(左から)
    1. キャプチャーの開始
    2. キャプチャーの停止
    3. キャプチャーのやり直し
    4. オプション設定画面の表示
    5. ファイルを開く
    6. セーブする
    7. 閉じる
    8. 読み直す
  • 3つの画面領域(上から)
    1. パケットリスト
      • キャプチャー開始後、パケットの情報が1行ずつ追加されていく
      • 項目(左から)
      1. 時間
      2. 送信元/宛先
      3. プロトコル
      4. パケット長
      5. 概要
    2. パケットディテール
      • 選択したパケットの詳細が表示される
    3. パケットバイト
      • 選択したパケットのパケットバイトが表示される

フィルター

  • よく使う条件式
    • ip.addr == 192.168.0.1
    • tcp.port == 80
    • ip.addr == 192.168.0.1 and tcp.port == 80
    • ip.src == 192.168.0.1 and ip.dst==192.168.0.254
    • !(ip.addr==192.168.0.1)
    • プロトコル名(arp, http, dhcp 等)

https 通信で暗号化方式の違いを確認する例

  • TSL1.2 と 1.3 では、TLS1.2 の方が通信が多い
  • 手順
    1. Wiresharkを起動し、キャプチャーを開始
    2. ブラウザでhttpsサイトへアクセス
    3. キャプチャーの終了。保存
    4. 対象のIPアドレスでフィルター
      • ip.addr==123.123.123.123
    5. パケット・ディテールは畳まれているため、
      クリックすると開ける

3ウェイハンドシェークの確認

TCPのシーケンス(流れ)

  1. コネクションの確立
  2. データのやり取り
  3. コネクションの終了
  • コネクションが確立してからデータのやり取りが始まる。
  • データのやり取りが終わるとコネクションは終了する

語句

  • コネクション
    • 確実に通信できるように確保する仮想的な通信路
  • ハンドシェーク
    • コネクションを確立するために通信相手とやりとりすること
  • 3ウェイハンドシェーク
    • コネクションを確立するために、通信を開始する機器と送信相手の間でパケットを3回やり取りする。

3ウェイハンドシェイク

  1. 「通信を開始する機器」が
    SYN(同期を表す)というTCPパケットを
    通信相手に送る
  2. 「通信相手」は、
    「SYN」と「ACK(承諾を表す)」を
    送信元に返す
  3. 「通信を開始した機器」が、
    「SYN」,「ACK」のTCPパケットを受け取ったら
    通信相手に
    ACKのTCPパケットを送る。
  • 以上でコネクションが確立

WireShark?で確認

  • どこかにアクセスする(httpとかWeb」とか)
  • キャプチャーを取り保存する。
  • 保存したファイルをWireShark?で開く。
  • tcp などでフィルター
  • さらに IP address と組み合わせてフィルター
    • tcp and ip.addr==123.123.123.123
  • 「SYN」,「SYN,ACK」,「ACK」の確認

IPv6

  • まだ自分もちゃんと理解できてません。以下の内容は間違えている可能性があります
  • IPの決め方
  • 手動設定方法

IPv6の基本

参考サイト

IPのパターン数

  • IPv4(32ビット): 約40億
  • IPv6(128ビット): 約300×1兆×1兆

表記方法

  1. 1桁16進数で表記する。(0〜F)
    • これにより16bitを4桁で表記する。
    • 128bitは、16bit * 8
    • ブロックは 16bit(4桁) * 8個
    • デリミッターはコロン「:」
  2. 0は省略できる。
    • 先頭の0は省略できる。
    • それ以外にも以下の通り省略可能。
      • fe80::ea07
        • = fe80:0:0:0:0:0:0:ea07
      • さらにわかりやすく書くと(6桁区切り)
        • = fe80:0:0:0 : 0:0:0:ea07
      • 2桁区切り
        • = fe80:0 : 0:0 : 0:0 : 0:ea07
  3. ただし2回は省略できない。

マスク

  • 半分(4ブロック)
    • fe80:0:0:0/64
  • フルは128(8ブロック)
    • fe80::ea07/128

特殊IPアドレス

  1. ローカルアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
    • fc00::/7
  2. マルチキャスト
    • ff00:/8
      1. ff01::(ノードローカル)
      2. ff02::(リンクローカル)
      3. ff05::(サイトローカル)
      4. ff0e::(グローバル)
  3. グローバル
    • 2000::/3
  4. ドキュメント用
    • 2001:db8::/32
  5. リンクローカル
    • fe80::/10

名前解決正引き(A record)

  • AAAA record

ループバック(127.0.0.1)

  • ::1

ネットワークレイヤー(L3)

  1. IPv6はL3領域。
    • L2 スイッチは影響を受けない
    • L3 スイッチやルーターは影響を受ける

各種利用できるアドレス名

グローバルGUA
グローバル・スコープ・マルチキャスト
2000::/3

ff0e::
GUA(Global Unicast Address)。
インターネット上で通信が許可されているIPアドレス

グローバル・スコープ・マルチキャスト
インターネット上で使用できるマルチキャスト
サイトGUA
グローバル・スコープ・マルチキャスト
ULA
サイト・スコープ・マルチキャスト
fc00::/7

ff05::
ULA(Unique Local Address)
インターネット上では使用できない
リンクGUA
グローバル・スコープ・マルチキャスト
ULA
サイト・スコープ・マルチキャスト
リンク・ローカル・アドレス(LLA)
リンク・スコープ・マルチキャスト
fe80::/64

ff02::
リンク・ローカル・アドレス:
リンク内部でユニーク。
リンクを超えた通信はできない。サイト内部での重複はOK
ノードGUA
グローバル・スコープ・マルチキャスト
ULA
サイト・スコープ・マルチキャスト
リンク・ローカル・アドレス(LLA)
リンク・スコープ・マルチキャスト
ループバック・アドレス
ノード・スコープ・マルチキャスト
::1

ff01::
ノード内部でのみ使用。ノードの外に出ることは無い

3種類のIPv6アドレス

  1. ユニキャスト・アドレス
    • 1対1の双方向通信。大半のデータはユニキャスト・アドレスを使用。
      スコープ呼称IPv6アドレス
      グローバルGUA2000::/3
      サイトULAfc00::/7
      リンクリンクローカルアドレスfe80::/10
      ノードループバック::1/128
  2. マルチキャスト
    • 1対多
    • ストリーミングなど。
      スコープ呼称IPv6アドレス
      グローバルグローバル・スコープ・マルチキャストff0e::
      サイトサイト・スコープ・マルチキャストff05::
      リンクリンク・スコープ・マルチキャストff02::
      ノードノード・スコープ・マルチキャストff01::
  3. エニーキャスト
    • 1対多
    • あまり使われてない

クライアントへの設定可能数

  • IPv4 : 1NIC -> 1 アドレス
  • IPv6 : 1NIC -> 複数アドレス

わかってきた選択肢

  • 以下、さらに間違えている可能性大。あとで追記や修正します
  1. 一番簡単なのは、プロバイダから与えられてる固定IP(Global IP)で、内側のサーバーも作ってしまうこと
    1. メリット
      • 簡単に作れる
    2. デメリット
      • プロバイダを変更した時、内部のサーバーにも影響する
  2. ULA(Unique Local Address)を使う
    1. メリット
      • プロバイダ変更時、内部のサーバーには影響しない。
    2. デメリット
      • NetworkManager?が使えなくなるので、IPv6にしたときに~各サーバーの設定を変更する必要がある。
  3. ファイアウォール関連は設計、設定しなおし
    • うちは設定、監視システムを内製のプログラムで自動処理してるのでちょっとめんどい。。。
    • まずはサーバーを置いといて、クライアントから対応させよう。。。
  4. DHCPv6問題
    • これも面倒。。。

前提となる構成

やったこと

nslookup IPv6

  • nslookup
  • set type=aaaa

ping6 で「無効な引数です」と表示される。

  • -I でインターフェース名を明示する。
    ping6 -I eth0 hoge.tar3.net
  • tab補完も効く

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-17 (日) 15:26:21 (252d)