#author("2021-10-17T15:23:08+09:00","default:dramsukohome","dramsukohome") #author("2021-10-17T15:26:21+09:00","default:dramsukohome","dramsukohome") [[Dramsuko_wiki]] #shadowheader(1,Network); #shadowheader(2,目次); #contents *サブネットマスク [#yf0de760] ** サブネットマスク計算サイト [#ec6df931] -[[http://note.cman.jp/network/subnetmask.cgi:http://note.cman.jp/network/subnetmask.cgi]] ** サブネットマスク、仕組み [#l1503975] |>|>|CENTER:サブネットマスクの算出方法|h |CIDR表記|10進数表記|2進数表記| |/24|255.255.255.0|11111111.11111111.11111111.00000000| |/25|255.255.255.128|11111111.11111111.11111111.10000000| |/26|255.255.255.192|11111111.11111111.11111111.11000000| |/27|255.255.255.224|11111111.11111111.11111111.11100000| |/28|255.255.255.240|11111111.11111111.11111111.11110000| |/29|255.255.255.248|11111111.11111111.11111111.11111000| |/30|255.255.255.252|11111111.11111111.11111111.11111100| |/31|255.255.255.254|11111111.11111111.11111111.11111110| |/32|255.255.255.255|11111111.11111111.11111111.11111111| * OSI(Open System Interconnection)参照モデル,TCP/IP [#rb282433] |>|CENTER:層|CENTER:例・その他|CENTER:IP suite|AppleTalk&br;suite|CENTER:TCP/IP|h |CENTER:No|CENTER:名称|~|~|~|~| |7|アプリケーション層||||アプリケーション層| |6|プレゼンテーション層||||~| |5|セッション層||||~| |4|トランスポート層||||トランスポート層(L4)| |3|ネットワーク層||||インターネット層(L3)| |2|データリンク層||||リンク層(L1/L2)| |1|物理層|RS-232C&br;100BASE=TX|||~| * 語句 [#f1d82ecf] - IP(Internet Protocol) - TCP(Transmission Control Protocol) - ARP(Address Resolution Protocol) -- MAC Addressを知るためのプロトコル -- IP に対応するMACアドレスをARPにより解決する。 -- ルーターではイーサネットヘッダを順次付与していく - ICMP(Internet Control Message Protocol) -- Ping に使用されるprotocol。 * パケット・キャプチャ [#x474f57b] **ソフト [#k85132ed] -Wireshark -Microsoft Message Analyzer -PacMon ** キャプチャーする場所 [#i8fd88c2] *** PCでキャプチャー [#o0bb18d9] -PCに届いたパケットをストレージに保存していくこと。 - 保存したデータ -- キャプチャーデータ -- キャプチャーファイル *** パケット解析 [#u56c3a27] - キャプチャーデータに対して行う - 可能なら保存したデータで行う方が望ましい -- キャプチャーはパソコンにかかる負荷が大きく、~ 解析しながらだとパケットを取りこぼす恐れがある - Tshark -- コマンドラインで実行できるパケットキャプチャーソフト -- 軽い -- 1Gbps を超える様ならTSharkが望ましい *** LANケーブルに流れるパケットのキャプチャー [#f5d10394] - リンクを分岐してPCで取り込む -- この方法はできない -- 自分宛以外のパケットを受け取れないため -- LANケーブルは分岐できる構造にない -- どうしても行うためには、 --- 「プロミスキャスモード」で動くネットワーク処理プログラム -プロミスキャスモード --NICに届いたすべてのパケットをパケットキャプチャーソフトに転送する --ソフト名:Npcap (Wiresharkに入ってる) *** 分岐 [#lc79307e] -ミラーリング, フラッディング機能を持つスイッチを使うことで解決~ (普通のスイッチでできる) +ミラーリング --ユーザーが指定したポートの通信を特定のポートにコピーする機能 +フラッティング --スイッチのどのポートに届いたパケットもすべてのポートに転送する機能 *** 取り込みたいパケットを考える [#odc7e274] +どこでパケットキャプチャーを実行すべきか +パケットキャプチャーソフトをインストールできるか -例 --PC Aでトラブル発生 ++パケットキャプチャーソフトをインストールできる ++パケットキャプチャーソフトをインストールできない --- PC AにつながっているL2スイッチで分岐する --- 徐々に上流に上がって分岐する ** フィルター(Wireshark) [#b309244f] ***Wireshark(使い方とインストール) [#c1c917c0] -- 対応プラットフォーム --- Windows --- macOS --- Linux -- 無償 -- 前身は「Ethereal(イーサリアル)」 -- 2019年2月 Ver 3.0.0 -- Install --- 全てデフォルトのままでOK --- Npcap も一緒にインストールしておく~ (デフォルトのままでインストールする) ***基本的な使い方 [#h572e0bb] -インターフェースの選択 -- 右側の折れ線グラフがトラフィックの状況 -- ダブルクリックで選択するとキャプチャが開始される -- キャプチャの解析は一旦セーブしてから行うと良い -ボタン(左から) ++キャプチャーの開始 ++キャプチャーの停止 ++キャプチャーのやり直し ++オプション設定画面の表示 ++ファイルを開く ++セーブする ++閉じる ++読み直す -3つの画面領域(上から) ++パケットリスト ---キャプチャー開始後、パケットの情報が1行ずつ追加されていく ---項目(左から) +++時間 +++送信元/宛先 +++プロトコル +++パケット長 +++概要 ++パケットディテール --- 選択したパケットの詳細が表示される ++パケットバイト --- 選択したパケットのパケットバイトが表示される *** フィルター [#s42c1129] -よく使う条件式 -- 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 通信で暗号化方式の違いを確認する例 [#w2c8830d] -TSL1.2 と 1.3 では、TLS1.2 の方が通信が多い -手順 ++Wiresharkを起動し、キャプチャーを開始 ++ブラウザでhttpsサイトへアクセス ++キャプチャーの終了。保存 ++対象のIPアドレスでフィルター ---例 ip.addr==123.123.123.123 ++パケット・ディテールは畳まれているため、~ クリックすると開ける ** 3ウェイハンドシェークの確認 [#ufbbbee8] *** TCPのシーケンス(流れ) [#f49d9a69] +コネクションの確立 +データのやり取り +コネクションの終了 -コネクションが確立してからデータのやり取りが始まる。 -データのやり取りが終わるとコネクションは終了する *** 語句 [#c591a5a7] - コネクション -- 確実に通信できるように確保する仮想的な通信路 - ハンドシェーク -- コネクションを確立するために通信相手とやりとりすること - 3ウェイハンドシェーク -- コネクションを確立するために、通信を開始する機器と送信相手の間でパケットを3回やり取りする。 *** 3ウェイハンドシェイク [#qf0729df] +「通信を開始する機器」が~ SYN(同期を表す)というTCPパケットを~ 通信相手に送る +「通信相手」は、~ 「SYN」と「ACK(承諾を表す)」を~ 送信元に返す +「通信を開始した機器」が、~ 「SYN」,「ACK」のTCPパケットを受け取ったら~ 通信相手に~ ACKのTCPパケットを送る。 -以上でコネクションが確立 *** WireSharkで確認 [#v75f5705] - どこかにアクセスする(httpとかWeb」とか) - キャプチャーを取り保存する。 - 保存したファイルをWireSharkで開く。 - tcp などでフィルター - さらに IP address と組み合わせてフィルター --例 tcp and ip.addr==123.123.123.123 - 「SYN」,「SYN,ACK」,「ACK」の確認 * IPv6 [#c52ae62e] - &color(red,){まだ自分もちゃんと理解できてません。以下の内容は間違えている可能性があります}; - IPの決め方 - 手動設定方法 ** IPv6の基本 [#wb756466] *** 参考サイト [#r0249854] -[[IPv6実践導入ガイド:https://www.vwnet.jp/IPv6ImplementationGuide/Index.htm]] -[[IPv6 に NAT が無いことの影響:https://july-diary.hatenablog.com/entry/20140316/p1]] *** IPのパターン数 [#y6976ff4] -IPv4(32ビット): 約40億 -IPv6(128ビット): 約300×1兆×1兆 *** 表記方法 [#x5df1ddd] + 1桁16進数で表記する。(0〜F) -- これにより16bitを4桁で表記する。 -- 128bitは、16bit * 8 -- ブロックは 16bit(4桁) * 8個 -- デリミッターはコロン「:」 + 0は省略できる。 -- 先頭の0は省略できる。 -- それ以外にも以下の通り省略可能。 --- fe80::ea07 > - = fe80:0:0:0:0:0:0:ea07 < --- さらにわかりやすく書くと(6桁区切り) > - = &color(red,){fe80:0:0:0}; : &color(blue,){0:0:0:ea07}; < --- 2桁区切り > - = &color(red,){fe80:0}; : &color(green,){0:0}; : &color(blue,){0:0}; : &color(darkred,){0:ea07}; < + ただし2回は省略できない。 *** マスク [#rfe20d1c] -- 半分(4ブロック) --- &color(red,){fe80:0:0:0};/64 -- フルは128(8ブロック) --- &color(red,){fe80::ea07};/128 *** 特殊IPアドレス [#y77003f4] + ローカルアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) -- fc00::/7 + マルチキャスト -- ff00:/8 +++ ff01::(ノードローカル) +++ ff02::(リンクローカル) +++ ff05::(サイトローカル) +++ ff0e::(グローバル) + グローバル -- 2000::/3 + ドキュメント用 -- 2001:db8::/32 + リンクローカル -- fe80::/10 *** 名前解決正引き(A record) [#i867863a] - AAAA record *** ループバック(127.0.0.1) [#v15e01c5] - ::1 *** ネットワークレイヤー(L3) [#jef0014e] + IPv6はL3領域。 -- L2 スイッチは影響を受けない -- L3 スイッチやルーターは影響を受ける *** 各種利用できるアドレス名 [#w784a939] |グローバル|GUA&br;グローバル・スコープ・マルチキャスト|2000::/3&br;&br;ff0e::|GUA(Global Unicast Address)。&br;インターネット上で通信が許可されているIPアドレス&br;&br;グローバル・スコープ・マルチキャスト&br;インターネット上で使用できるマルチキャスト| |サイト|GUA&br;グローバル・スコープ・マルチキャスト&br;&color(blue,){ULA};&br;サイト・スコープ・マルチキャスト|fc00::/7&br;&br;ff05::|ULA(Unique Local Address)&br;インターネット上では使用できない| |リンク|GUA&br;グローバル・スコープ・マルチキャスト&br;ULA&br;サイト・スコープ・マルチキャスト&br;&color(blue,){リンク・ローカル・アドレス(LLA)};&br;リンク・スコープ・マルチキャスト|fe80::/64&br;&br;ff02::|リンク・ローカル・アドレス:&br;リンク内部でユニーク。&br;リンクを超えた通信はできない。サイト内部での重複はOK| |ノード|GUA&br;グローバル・スコープ・マルチキャスト&br;ULA&br;サイト・スコープ・マルチキャスト&br;リンク・ローカル・アドレス(LLA)&br;リンク・スコープ・マルチキャスト&br;&color(blue,){ループバック・アドレス};&br;ノード・スコープ・マルチキャスト|::1&br;&br;ff01::|ノード内部でのみ使用。ノードの外に出ることは無い| *** 3種類のIPv6アドレス [#ra049b3d] +ユニキャスト・アドレス -- 1対1の双方向通信。大半のデータはユニキャスト・アドレスを使用。 |スコープ|呼称|IPv6アドレス| |グローバル|GUA|2000::/3| |サイト|ULA|fc00::/7| |リンク|リンクローカルアドレス|fe80::/10| |ノード|ループバック|::1/128| +マルチキャスト -- 1対多 -- ストリーミングなど。 |スコープ|呼称|IPv6アドレス| |グローバル|グローバル・スコープ・マルチキャスト|ff0e::| |サイト|サイト・スコープ・マルチキャスト|ff05::| |リンク|リンク・スコープ・マルチキャスト|ff02::| |ノード|ノード・スコープ・マルチキャスト|ff01::| +エニーキャスト -- 1対多 -- あまり使われてない *** クライアントへの設定可能数 [#kcf1d347] - IPv4 : 1NIC -> 1 アドレス - IPv6 : 1NIC -> 複数アドレス ** わかってきた選択肢 [#b0a47204] -&color(red,){以下、さらに間違えている可能性大。あとで追記や修正します}; + 一番簡単なのは、プロバイダから与えられてる固定IP(Global IP)で、内側のサーバーも作ってしまうこと ++ メリット --- 簡単に作れる ++ デメリット --- プロバイダを変更した時、内部のサーバーにも影響する + ULA(Unique Local Address)を使う ++ メリット --- プロバイダ変更時、内部のサーバーには影響しない。 ++ デメリット --- NetworkManagerが使えなくなるので、IPv6にしたときに~各サーバーの設定を変更する必要がある。 +ファイアウォール関連は設計、設定しなおし -- うちは設定、監視システムを内製のプログラムで自動処理してるのでちょっとめんどい。。。 -- まずはサーバーを置いといて、クライアントから対応させよう。。。 +DHCPv6問題 -- これも面倒。。。 ** 前提となる構成 [#w9e5340c] ** やったこと [#t2c1b3cd] ** nslookup IPv6 [#j1ef77ce] - nslookup - set type=aaaa ** ping6 で「無効な引数です」と表示される。 [#cfb92c95] - -I でインターフェース名を明示する。 ping6 -I eth0 hoge.tar3.net - tab補完も効く