鮫鮫鮫#Techlunch

 鮫鮫鮫#Techlunch

鮫! 鮫! 鮫!
2013/02/05 (水) 12:00-13:00 @ Livesense TechLunch
発表者:鈴木 翔一郎

E60aa4f80303f3f386898546ddb3686a?s=128

Livesense Inc.

April 21, 2014
Tweet

Transcript

  1. 鮫! 鮫! 鮫! CTO室 鈴木 翔一朗

  2. None
  3. None
  4. None
  5. None
  6. None
  7. 鮫! 鮫! 鮫! ネットワークはなぜつながるのか Deep Dive CTO室 鈴木 翔一朗

  8. None
  9. DHCP アドレス取得

  10. DHCP Dynamic Host Configuration Protocol‎ •  PCへのIPアドレス割当 •  PXE boot

    : サーバセットアップ •  Vitual Box VMの起動
  11. None
  12. DHCP 大事なんです いいんです DHCP!!!!!!

  13. Broadcastを使用している事に注意

  14. gateway, DNS等 割当可能なパラメタは多い

  15. DHCPはルータ越え られないんです DNS割当できなきゃ yum updateこける んです いいんです DHCP!!!!!!

  16. 名前解決

  17. DNS 割当 端末 DNS割当 クライアントPC DHCP Vitrula Box DHCP 推奨

    DHCPを使っても、同じIPアドレスが 割り当てられる事が多いです。 Staticに設定するならば、Virtual Box内部の仮想ネットワークを正しく 理解し、gateway, DNS等の設定が 必要。Virtual Boxから外部ネット ワークへのNATでハマる事もあり。 サーバ機器 /etc/resolv.conf でstaticに定義
  18. ルーティングテーブルに基づき パケットを送信

  19. Longest match 法則 例 : 宛先 192.168.20.24 192.168.0.0/22 gw N/A

    : 該当せず 192.168.0.0/16 gw 10.49.0.254 : 優先する 0.0.0.0/0 gw 180.214.38.254 : 優先しない Windows端末やネットワーク機器では、 metric, Adminitrative Distance等の概念あり
  20. ARPテーブルに基づき next hopのMACアドレスをlook up

  21. ARPテーブルにhitしない場合は、 ARP リクエストを送信

  22. DNS query 送信

  23. DNS タイムアウトはくせもの 多くのミドルウェアが名前解決に依存している DNS障害時は多くのミドルウェアが名前解決待ち の状態になり大規模障害を引き起こしやすい Timeoutを短めにする事で被害を軽減できるが、 それでもある程度の被害は避けられない

  24. DNS timeout 設定例

  25. 怖いんです DNS 障害!!!!!!

  26. HTTP connection 確立

  27. 3way handshakeによるコネクション確立

  28. 上位Layerでtimeoutが定義されていない場合 約30秒程の待ち時間が発生 待ち時間はretry毎にベキ函数的に上昇

  29. Retry回数は容易に設定変更可能 sysctl : net.ipv4.tcp_syn_retries = 5 Timeout時間はハードコードされている ref ; include/net/tcp.h

    CentOS 6.4くらいからTimeoutが3秒から1秒に 減ったので、総待ち時間が180秒から30秒に
  30. gateway 冗長化 ISP業者 冗長化

  31. ゲートウェイ冗長化 HSRP VRRP GLBP Cisco 独自 IEEE 標準 Cisco独自 Udp

    1985 proto 122 udp 3222 一番実績豊富 IEEE 標準とは名ばかり 宛先MACアドレスやVRRP GROUP等について、独自 実装しているソフトウェ アが多いです。 ベンダー混在は極力避け る事が望ましいです。 負荷分散機能が実装 されたプロトコル。 他プロトコルに比べ 高機能だが、実績が 少なく使うには人柱 になる覚悟が必要。
  32. Protocol number 全ての通信はTCP, UDPのみではありません。 TCP, UDPはProto 7, 19のIPです。 Proto 122のvrrpは以下のように指定します。

  33. ISP 冗長化 方法 GLBP IGP/BGP ISP業者との事前取り決めが必要 調整工数が大きいですが、一度構築して しまえば安定して動く事が多いです 例 :

    リブセンス – ビットアイル間 static route with tracking ある場所をping等で監視し、監視結果に 応じでstatic routeが変わります。 机上デバッグが非常に困難で、事前に入 念なテストをしないと、酷い障害につな がります。 例 : 管理本部
  34. HSRP

  35. 実演中

  36. IGP

  37. Static Route —  ルータ2台程度までの小規模向け設定 —  ルータが増えると、設定工数が指数函数的に膨 れ上がる —  障害発生時に自動的に切り替わらない IGP

    (Interior Gateway Protocol) —  経路情報を自動的に交換してくれる
  38. Static routeが 許されるのは 小学生までだよねー

  39. IGP 比較 プロトコル 説明 RIP レガシーなルーティングプロトコル “最大ホップ数15”等の様々な使いづらい制約がある OSPF 各ルータのリンク情報を収集し、ダイクストラ法に基づ いて最短経路を算出。

    最も汎用的で最も実績豊富なプロトコル ISIS 各ルータのリンク情報を収集し、高速ダイクストラ法に 基づいて最短経路を算出。 OSI参照モデルに基づかず、非IPもルーティング可能 実績は皆無ですが、googleはISISを採用 EIGRP Cisco独自のプロトコル。OSPFに比べて、高速な切り替 わりが実装されている等のメリットがあるが、 Ciscoにベンダーロックされてしまうのが難点。
  40. デフォルトは30秒程度で切り替わります Hello timerを短くする事で切替を早められます が、flappingに弱くなるデメリットがあります

  41. OSPF

  42. BGP

  43. BGP —  AS (Autonomous System)間のルーティング —  Flapping対策のため、切り替わりは緩やか —  様々な属性情報を付与して経路を送付 — 

    どの属性を優先させるのかはASのポリシー次第 —  local pfre > AS PATH > MED
  44. BGP

  45. 実演中

  46. DSR 負荷分散

  47. 負荷分散方式 方式 サーバ 負荷 学習 コスト DSR (L4LB) 小 大

    宛先MACアドレス変換による負荷分散 戻りパケットはLBを経由しないよう設計 BIG-IP, keepalived NAT (L4LB) 中 中 IPアドレスを変換 戻りパケットがLBを経由するよう設計 ログ集計, 送信元制御など業務要件への配慮 BIG-IP, keepalived Proxy (L7LB) 大 小 代理アクセスによる負荷分散 ログ集計, 送信元制御など業務要件への配慮 Layer7制御が可能 BIG-IP, apache, nginx, HA-proxy, mysql-proxy DNS 小 小 名前解決による負荷分散 MyDNS
  48. 業務もインフラも 両方分からないと メンテできないんです ロードバランサー!!

  49. None
  50. 仮想IPをListenする仕組み —  Loopback I/F (ARPに応答しないよう注意) —  NAT で問答無用でListenしてしまう

  51. None
  52. proxy 負荷分散

  53. HTTP proxy

  54. REMOTE ADDR書き換え livesense 独自拡張モジュール

  55. apache 最低限の業務要件なら普通のmod_rpafでもok ubuntuはapt-getで一発インストール可 Nginx header 書き換え 駆使 HttpProxyModule 使用

  56. どんなプロトコルも一長一短です。 特にLB関連は、業務要件に応じた構成を採用して 頂ければと思います。

  57. おまけ GNS3 とっても便利なんです CTO室 鈴木 翔一朗

  58. このネットワーク環境を5分で構築します もう3分頂ければIPv6も設定します

  59. ルーティングのお仕事をすべて湖山さんがやるの は無理があるので、実機orエミュレータ検証がで きるレベルのエンジニアがもう一人いると助かり ます。 GNS3に興味を持って頂けましたでしょうか…