Your SlideShare is downloading. ×
0
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tremaで構築!中小企業の社内LAN #Tremaday 120419

2,931

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,931
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • それぞれの通信で、優先度がかぶらないようにフローを規定。
  • それぞれの通信で、優先度がかぶらないようにフローを規定。
  • それぞれの通信で、優先度がかぶらないようにフローを規定。
  • 一般的な、 DHCP Relay の動作を Ruby で再現。
  • 一般的な、 DHCP Relay の動作を Ruby で再現。
  • フローなしの状態から、通信を開始すると、パケット一発目が 100ms 以上かかるのが少しきになる…。
  • 4番目、わがまま。
  • 今回のシステムよりも、もうちょっとまともなものです。
  • Transcript

    • 1. 2013 年 4 月株式会社エーピーコミュニケーションズ:近藤TremaTrema で構築!で構築!中小企業の社内中小企業の社内 LANLAN
    • 2. 自己紹介 エーピーコミュニケーションズという会社で働いています。 中小規模の Sier でネットワーク、サーバ、開発をやっています。 でも、私は“フツー“のネットワークエンジニアです。 プログラミングは、趣味でも仕事でもやったことありませんでした2
    • 3. 今日の目的 社内 LAN を Trema+Pica8 を使って NW 更改した話をします、 Trema.0.3.14 Pica8 Pronto3290(PicOS1.6.1) Trema ユーザー的な視点で。 そして、地味です。 GUI の実装はしていません。 要はレイヤ 3 までのはなしです。3
    • 4. 目次 社内 LAN の構成 動作の仕組みなど 導入後のフローテーブルの状態 性能について まとめ4
    • 5. 社内 LAN の構成5 規模と構成(既存) 規模 クライアント :30 台(色々な部門) 検証用 SV:40 台(仮想&物理) ファイルサーバ :1 台 プリンタ:1台 無線 AP :1台
    • 6.  規模と構成(既存)(続き) 超概略構成 すべてのホストが一つのセグメント。 ちょうど、社内 LAN 更改の話が出たので、社内 LAN の構成6HubL2SWFW… となった訳です私の上司
    • 7. 社内 LAN の構成7 移行後 OpenFlow スイッチは物理的な HW*1 台 実は、フルメッシュでも動作。経路切替もできます。 スイッチが全セグメントを集約する 各部門ごとに別のセグメントへ移動 アドレスのアサインは DHCP をつかう ブラウジングは、 WebProxy 経由 …一部通信制限あり(コードにベタ書き )…            という感じ。です
    • 8. 社内 LAN の構成8 移行後(続き) … 構成図Server Seg.DHCP SVWeb Proxy SVFile SVWLANClient Seg.(DHCP Client*??hosts)B Group Seg.(DHCP Client*10hosts)A Group Seg.(DHCP Client*10hosts)C Seg.*20~30hostsOF Mgmt Seg.OF Ctrlr SV,Remo-maintainance SV.Traffic Monitor SVon ESXTestSV*40hosts On ESXMgmt Eth0GW Seg.C. Seg.GW今回は、 DHCP を使う上、オフィス LAN という特性上リアクティブ型です。
    • 9. 動作の仕組み このスクリプトでできること LLDP のトポロジ管理 CapabilityTLV で簡単な接続機器識別 おまけ:トポロジー描画 フルメッシュ・シングル構成での L3 ルーティングと L2 スイッチング DHCP リレーエージェント ARP の返答と L2 的な透過 ブロードキャスト / マルチキャスト制限 経路切り替え9
    • 10. 動作の仕組み 転送処理のルール(とエントリの優先度) ARP ・ LLDP のような特殊なやつは常に、 Packet_In で処理 同じセグメント間の ARP であれば、 Flow で通過させてあげる DHCP パケットは常に、 Packet_In で処理 コントローラで、 DHCP リレーをやらせる DHCP フィールドをいじる必要がある(後述) そのほかの IP パケット 同じセグメント間通信 異なるセグメントへの通信 Internet への通信※ 例外はあるが、基本的にリアクティブにフローを学習10
    • 11. 動作の仕組み 転送処理のルール(とエントリの設計)11…たとえば サーバからインターネット向けの Web 通信サーバから DHCP クライアント向けの DHCP 通信…たとえば サーバからインターネット向けの Web 通信サーバから DHCP クライアント向けの DHCP 通信DHCPWebIn_port:SV SideIn_port:SV SideEther src:SVEther src:SVEther dst:OFSEther dst:OFSEther type:IPEther type:IPVLAN id:0VLAN id:0VLAN pcp:0VLAN pcp:0IP src:SVIP src:SVIP dst:OFSIP dst:OFSIP proto:17IP proto:17IP ToS bits:0IP ToS bits:0Tp Src:67Tp Src:67Tp Dst:68Tp Dst:68In_port:SV SideIn_port:SV SideEther src:SVEther src:SVEther dst:OFSEther dst:OFSEther type:IPEther type:IPVLAN id:0VLAN id:0VLAN pcp:0VLAN pcp:0IP src:SVIP src:SVIP dst:InternetIP dst:InternetIP proto:6IP proto:6IP ToS bits:0IP ToS bits:0Tp Src:80Tp Src:80Tp Dst:xxxxxTp Dst:xxxxxDHCPSVWeb proxyIn Segment BDHCPSVWeb proxyIn Segment BFirewallFirewallDHCP ClientWeb BrowserIn Segment ADHCP ClientWeb BrowserIn Segment ADHCPDNSWebSMBWebDNSTo And From The InternetTo And From The InternetTo And From The ServerTo And From The ServerOFSOFSオフィス LAN …は色々な通信が飛び交うオフィス LAN …は色々な通信が飛び交う
    • 12. 動作の仕組み 転送処理のルール(とエントリの設計) リアクティブ型エントリを設計する際の注意点・やるべきこと 通信の種類の整理 HWSW は、 TCAM が小さい。「冗長なエントリ」は可能な限り集約。 ほかのエントリとマッチングフィールドが重複しないように注意する。 HW 処理から CPU 処理に切替わると、驚くほどパフォーマンス悪くなるよ。 フローの優先度。… だとおもいます。12サーバからインターネット向けの Web 通信 と サーバから DHCP クライアント向けの DHCP 通信の比較サーバからインターネット向けの Web 通信 と サーバから DHCP クライアント向けの DHCP 通信の比較DHCPWebIn_port:SV SideIn_port:SV SideEther src:SVEther src:SVEther dst:OFSEther dst:OFSEther type:IPEther type:IPVLAN id:0VLAN id:0VLAN pcp:0VLAN pcp:0IP src:SVIP src:SVIP dst:OFSIP dst:OFSIP proto:17IP proto:17IP ToS bits:0IP ToS bits:0Tp Src:67Tp Src:67Tp Dst:68Tp Dst:68In_port:SV SideIn_port:SV SideEther src:SVEther src:SVEther dst:OFSEther dst:OFSEther type:IPEther type:IPVLAN id:0VLAN id:0VLAN pcp:0VLAN pcp:0IP src:SVIP src:SVIP dst:InternetIP dst:InternetIP proto:6IP proto:6IP ToS bits:0IP ToS bits:0Tp Src: xxxxxTp Src: xxxxxTp Dst:80Tp Dst:80アクションが異なるほかのエントリと被る可能性がないフィールド1つ使う。たとえば、 IP dst 。
    • 13. 動作の仕組み DHCP リレーエージェント① …Racket というライブラリ Message.data から必要な値を取得して、 Racket にわたして、 パケット生成 ( 赤まるを書き換え ) ・ Packet_out 。「ほぼ」これだけ。13n.layers[5] = Racket::L5::BOOTP.newn.layers[5].type = typen.layers[5].hwtype = hwtypen.layers[5].hops = 0n.layers[5].id = tidn.layers[5].secsn.layers[5].flagsn.layers[5].cip = cipn.layers[5].yip = yipn.layers[5].sip = sipn.layers[5].gip = gi_addrn.layers[5].chaddr = macn.layers[5].server = niln.layers[5].file = niln.layers[5].fix! payloadn.layers[4].payload = n.layers[5]n.layers[4].fix!(n.layers[3].src_ip, n.layers[3].dst_ip)n.layers[4].payload = ""frame = ether_h << n.packreturn frame + message.data[-1, 1]
    • 14. 動作の仕組み DHCP リレーエージェント② …Packet_In の処理のかきかた。14if message.udp_src_port == 68/* 仮に、奇数ポートと偶数ポートでアドレス払い出しを替える場合 */    port = ( message.in_port ).modulo(2)if port == 1   gip_addr = "192.168.80.254"else   gip_addr = "192.168.81.254“enddata = rewrite_dhcp message, gip_addractions = []/* ながいので 省略。ここはブロードキャストをユニキャストに変更する為のアクション */send_packet_out(   dpid,   :actions => actions,   :data => data)send_flow_mod_add(   dpid,   :match => ExactMatch.from( message ),   :actions=>SendOutPort.new(:port=>OFPP_CONTROLLER, :max_len=>10000),   :priority => 65535,   :idle_timeout => 60)endDHCP リレーは、フィールドの書き換えを伴う為、コントローラに Packet_In させる為の Flow を追加する。デフォルトの max_len は 128Byte 、 DHCP は 128Byte よりも大きいので、Max_len を指定してあげる。
    • 15. 動作の仕組み ブロードキャスト転送 ローカルブロードキャストと DHCP のみ、転送を許可 DHCP だけは、 Packet_in させてあげる それ以外のブロードキャストは Drop させてやる フローを書き込んでおいて、二度と Packet_In させないようにする。15・ Flow Entrycookie=0x185b56, duration=57.864s, priority=10000,ip,in_port=9,dl_dst=ff:ff:ff:ff:ff:ff,nw_dst=192.168.83.255  actions=output:10,output:6,output:7,output:8,output:12cookie=0x186b9b, duration=41.695s, priority=65535,udp,dl_dst=ff:ff:ff:ff:ff:ff,tp_src=68 actions=CONTROLLER:10000
    • 16. 導入後のフローテーブルの状態 スイッチのフローエントリー数 最大でも、凡そ 600 フロー。 この程度なら、まだ余裕※です。 増減の時間帯に規則性がある※ 出典: Pica8 社製 Pronto のベンチマークでは、公称最大エントリ数 2048 。http://www.toyo.co.jp/page.jsp?id=1830416
    • 17. 性能について LAN 内通信(ファイル転送※ 1 ) …なぜかアップロードのほうが速度がはやい ※ 2※1 稼働中なので iperf できないのです※2 端末とサーバのディスク書き込み速度のせいか?17Upload Download=456Mbps =240Mbps
    • 18. 性能について …インターネット向け(下り)http://www.musen-lan.com/speed/18
    • 19. 性能について …インターネット向け(上り)http://www.musen-lan.com/speed/19
    • 20. 性能について コントローラの CPU 負荷とメモリ使用率 全時間帯でメモリは 2.5%(51MB) 利用可能メモリ: 2G 全時間帯で CPU は 30% …程度で稼働中 Intel(R) Xeon(R)2.4Ghz*2core20
    • 21. まとめなど21 小規模ですが、 Ruby コードでも性能面では全く問題なし! もっと小さなノート PC でもこの規模であれば、きっと大丈夫。かも サーバのスペックなどいろいろベースはできたはず。 スループット、文句なしに実用的。 もちろん、実装次第。今回は、 Trema(Ruby)+HW スイッチの構成。 やっぱり、動的に ACL を書くような GUI ツールがほしい。 これは、べつの件で開発中。 CLI だけなら(割と)簡単な方法あります!かっこいい GUI もつくってます! 今後の OpenFlow スイッチ開発に期待したいです。 おそらく、大きな NW や使いかたによっては、絶対に TCAM の容量が足りなくな…る 小さい規模の NW に GE48 …ポートは、すこしオーバースペック SDN なみなさま、小さな NW で OpenFlow 。どう思います?
    • 22. まとめなど22              質問?    私たちは、 Interop 2013 に出展します。

    ×