247 Views
September 09, 23
スライド概要
DMMの社内向け勉強会資料
インターネットの仕組みについて知りたい、と若者が言ってたので、開催した勉強会
5回目はRFCついて説明
SlideShareが使いにくくなってしまったのでこちらに全部移してみた。 - 勉強会で使った資料 - イベントでの登壇資料 等を中心に上げてあります。
ネットワークの基本について学ぶ 第5回 RFC 2017/11/07 佐々木 健
この文書について 毎度おなじみ、日々のお菓子をめぐんでもらうた めの勉強会です。いつもありがとうございます。 前回までは昔話が多かったのですが、今回は今の 話、ネットワーク関連機器界隈で今起きているイノ ベーションの話、なんかができれば良いかな、と 思っています。
お願い 定時後の勉強会なので気楽に行きましょう。 飲食、雑談は自由にしてください。 みんなであれこれ雑談してくれるほうが私もおやつ を食べやすいです。 わからないことがあったら遠慮せずに聞いてね。 #beginner-net-study というSlackチャンネルを 作ったので雑談に使ってくださいませ。
本日のタイムスケジュール(予定) ● 参加者の自己紹介(5分) – 人数が少なかったら全員 – 人数が多かったら近くにいる5人に自己紹介 ● 前回までのおさらい(5分) ● 本編(15分) ● 質疑(5分)
自己紹介 ● 名前 ● 所属 ● 趣味 ● 意気込み ● ネタ
前回までのおさらい
RFC:791 INTERNET PROTOCOL 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address 差出元 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example Internet Datagram Header 宛先
RFC:8200 Internet Protocol, Version 6 (IPv6) Specifcation 3. IPv6 Header Format +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | 差出元 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 宛先
こんなヘッダとして実装されている 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | Offset| Reserved |R|C|S|S|Y|I| | |G|K|H|T|N|N| | | Window | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TCP Header Format RFC793
RFC 793 に書いてあること 2.10. Robustness Principle TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others. 己のなすことには慎重たれ、 他人のなすことに は寛容たれ
こんなヘッダとして実装されている 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | Length | | Checksum | +--------+--------+--------+--------+ | | data octets ... +---------------- ... User Datagram Header Format RFC768 3ページ!!
WELL KNOWN PORT NUNBERS ● ● ● IANA(Internet Assigned Numbers Authority)が管理してい る。 UNIX系OSでは /etc/services というファイルに記述されてい る。 一般的に良く使われるポート番号 – TCP/22: SSH (リモート接続) – TCP/25: SMTP (メール送信) – TCP/80: HTTP (ウェブアクセス) – UDP/123: NTP (時刻同期) – TCP/443: HTTPS (セキュアなウェブアクセス)
本日の内容 ● RFC って何? ● RFC の調べ方 ● RFC の読み方 ● RFC の作り方 ● RFC は絶対的なものか? ● 標準化の価値 ● Joke RFC
RFC って何? ● インターネットで用いられるさまざまな技術の標準化 や運用に関する事項など幅広い情報共有を行うため に公開される文書シリーズ。 ● 50年近く(1969年〜)維持され続けている歴史書 ● 書かれていること – インターネットの様々な技術的仕様 – インターネットに係わるルール – 良い知識、良い方法 – 遊び心に溢れるジョーク
RFC は何の略? ● Request for Comments(リクエスト フォー コメンツ、略称: RFC) – 直訳すると「求むコメント」 – インターネット技術の研究開発は、 米国国防総省のARPA/DARPAが 資金援助を行い研究開発活動が推進されたために、 研究開発の結 果は、広く公開できないことになっていた。 – しかし、研究結果を公開し、インターネットに関わる人々に広くその 仕様を流布し 普及させることが重要。 – 「コメントを広く募集する」ための、ドキュメント であって、研究成果 を公開しているのではない、むしろ、研究成果をより良いもの にす るために、外部からのコメントを募集するためのドキュメントであ る、というトリック。
とりあえず読んでみる https://tools.ietf.org/html/rfc1149
Google翻訳!!
Google翻訳は使えない?? ● ● 概要、単語を知ることはできる。 母国語のほうが斜め読みの速度はあきらかに速 いはず。 ● 昔のRFCは翻訳しにくい。 ● 最近のRFCはわりと良い翻訳をしてくれる。 ● とはいえ、ちゃんと理解するには英語で読む必要 がある。
RFC1149って何? ● 1990年のエイプリルフールに発表されたジョーク RFC。 ● 伝書鳩を使ったIPのデータ転送を行なう方法 ● 教養として知っておいて欲しいRFC ● Wikipediaの解説がわかりやすい。 Wikimedia:Junge_Frau_mit_Taubenpost.jpg
Errata(修正)があるRFCもある
RFC1149のErrata 特別な考慮事項: ミラーとの1回の衝突でそのキャリアが 100%損失するため、ポートミラーを鳥類 キャリアと一緒に使用しないでください。 - 研修員のメモ Windowsとの1回の衝突も同様です。
UpdateがあるRFCもある
RFC2549
RFC6214
Joke RFC 一覧 ● 英語版のWikipediaを参照するのが一番楽 – https://en.wikipedia.org/wiki/April_Fools%27_ Day_Request_for_Comments ● ● Joke RFCはたいてい誰かが日本語訳をしてる。 – – ● 日本語版はない http://www.kt.rim.or.jp/~ksk/joke-RFC/index.ht ml http://naglly.com/archives/2009/04/rfc.php でも意外と新しいのはないのでうまく翻訳すれば buzzるかもしれないよ。
嘘が本当になった例もある Evil Bit ● ● 2003年のRFC3514 – IPv4ヘッダに使われていない領域が1ビットある – このビットに1がセットされていれば、パケットは悪意を持っていると する。 – 攻撃者がこの悪意のビットを立ててくれれば、安全なシステムは防衛 が可能になる。これで世界に平和が訪れる。すばらしい、実装しな ければいけない。 RFC発表とほぼ同じぐらいのタイミングで、FreeBSDに実装さ れる – ● 他のソフトウェアにも続々と実装されてる もちろん実際には無意味な仕様と実装なんだけどね
そろそろ役に立つ話も ● RFC って何? ● RFC の調べ方 ● RFC の読み方 ● RFC の作り方 ● RFC は絶対的なものか? ● 標準化の価値 ● Joke RFC
RFCの目次みたいなもの ● ● ● STD-1 – 仕様 – https://tools.ietf.org/html/std1 FYI-1 – 標準化が目的でない情報提供が目的の文章。公式度が低い前提。 – https://tools.ietf.org/html/fyi1 BCP-1 – Best Current Practice。現時点での最良の実践 – https://tools.ietf.org/html/bcp1
ISOC-JP ● ● https://www.isoc.jp ISOC-JP は,ISOC の日本支部です.ISOC の理念 に従い,日本国内におけるインターネットの普及啓 蒙,日本の状況の海外発信といったアクティビティ を中心に,ボランティアベースで活動を実施してい ます. ここで2015年に開催された IETF勉強会の資料がとても良い!!
第1回IETF勉強会 ● ● ● https://www.isoc.jp/wiki.cgi?page=PreIETF 93 2015/11の横浜でのIETF開催に向けた第1回勉 強会 西塚さん、林さん、の「RFC/Internet-Draftの 読み方」の資料を見れば、RFCの読み方はざっく りわかる。 調べ方、読み方の説明は以上!!
IETF報告会 ● ● IETF開催後に、IETFの動向を報告する回が開か れている。 最新のは→IETF99報告会 – IPv6の標準化の話等はチェックしておきましょう。
標準化は何のため? ● ● ● ネットワークはお互いが繋がらないと成りたたな い。どうやって繋ぐかを決めておいて、みんなで それを守るほうが良さそう。 良さげなことは共有したい。 機器を導入する側の視点に立つと、標準化され ているものを選択したい。中身もわかるし、なに かあったときに交換可能だから。 – 標準化された製品のほうが競争力が高くなる。
微妙な標準化もある ● MessagePackの標準化 – ● 元々の作者じゃない人が標準化提案をしちゃったとい う事案 OpenBSDのTheo de RaadtがIETFに対して激怒 – OpenSSLの脆弱性「Heartbreed」 – 誰からも必要とされない仕様がセキュリティホールの 元になった
The Internet is for Everyone ● RFC3217 – ● ● ● ● https://tools.ietf.org/html/rfc3271 2002年にInternet Societyから出された文書 インターネットに関わる人が増えてきて、お金も沢山動く ようになって、インターネットは誰の物か?、という議論 が盛んになったころに出された声明。 RFCを正しく理解するにはContext(文脈)を知っておくほう が良いことが多い。歴史と一緒。 新し目のRFCではContextが省かれていることが多いので 行間を想像しつつ読むほうがより面白いよ。
質疑応答
次回予告 ● 次に聞きたいネタはあるかしら? – Ethernet – ルーティング – ネットワークプログラミング – サーバハードウェア – ネットワーク仮想化 – 機器管理 – 監視 – ICN(Information Centric Networking) – IPv6