2016/10/07 13:00 python [前回] オブジェクト指向 ( Object Oriented ) の話 オブジェクト 状態をもっていて、手続と対でカプセル化された物 クラスからインスタンスとして作る事ができる オブジェクト指向の発想 プログラムをシミュレーションで作成する 「事象(機能)」を、「物」と「事」の組み合わせで表現 「物」=「オブジェクト」 「事」=「関係」 例: 交通量シミュレーション 十字路があり、信号が設けられている 車が、ランダムにやってくる状況 実際に車が動きをみて、そこから、様々な観測量を採取し、その採取した観測量で、(人間が..)判断を行う どのくらい、車が待ったか ? オブジェクト指向的なプログラムの作成 1. 分析: どんな問題をときたいか ? (要求仕様) 「適切な信号機の制御を探す事」をしたい(詳細は省く) 2. 設計: 問題をどの様な手段で解くかを考える シミュレーションで解く 描画には curses library を利用 3. コーディング: 実際のプログラム作成 設計に基いて、言語の規則に従ってプログラムを作成 # 設計は、言語と無関係に可能 # 実際は、言語と独立に設計すると、コーダが困る事が多い 4. テスト: プログラムが正しく動いているかを 1. の要求仕様に照らし合せて、チェックする 1 の作業の人と同じ人が行い、2., 3. とは違う人が行う事が望ましい 5. 保守 == Class 間の継承 Object : 状態(attribute)+手続(method) (共に、幾つかの集まり) attribute (変数) は、Object 毎に異る(共有しない) method (手続) は、Class を経由して、共有 Class : attribute 宣言と method の定義 # 定義:中身がある # 宣言:形だけを指定して、中身がない # Object (Instance) が作られる時に attribute に対応する変数(メモリ領域)が確保される # # method の方は共有される Class A を作る時に、Class B を継承すると Class A のインスタンスは、 Class B のインスタンスの全ての属性を持ち、 かつ、Class A で追加された属性も持つ # Class A を作る時に、Class B を継承せず、 # Class A の中に Class B の内容を Copy/Past しても # Class A の(中の)機能は実現できる # -> Class A のインスタンスは Class B のインスタスにはならない # -> Class A を使う所で、困ってしまう # Class A のインスタンスと Class B のインスタンスを混在させる事ができなくなるから 例: Class Animal: # 動物 Attribute: 年齢、鳴き声、体重.. Class Cat(Animal): # 猫 食べ物 (肉) 鼠を掴まえる 爪でひっかく Class Cow(Animal): # 牛 食べ物 (牧草) 尻尾を振って、蠅を追い払う 角で突く 2016/10/07 15:00 comp-alpah [今回の目的] CISCO Router 設定の総復習 CISCO Router を、沢山つないで RIP で Routing [新] default Routing R3 で、ip default-route を設定すると、自動的に、 RIP 経由で、アナウンスされる [実験 Network] Nk=192.168.k.0/24 Mk=10.0.k.0/24 Rk=X.X.X.k Hk=X.X.X.10k << Network 図 >> N3 (default) N7 M8 N8 >---+---< >---+< >--+---+-< >---+-< | | | | | +- R3 --+ +---R7--+ R8------+ M3 | M4 | M7 | M9 | >---+-< >---+-< >---+-< >---+--< | | | | +------ R2 R4------+ R6----+ R9------+ |N2 M2 | M1 | M5 | M6 | | | | >--+-< >---+-< >---+-< >---+-< >---+-< >-+-+-< >---+-< | | | | M10 N9 R1------+ R5------+ N1 | N5 | >---+-< >---+-< [Network 構築手順] 1. R1 から R9 のラベルを Cisco 2800 に貼る 2. 設定担当者を決める 3. 個々の R で、どの I/F に、どの IP Address を付けるかきめる 例: R1: FE0/0 N1 192.168.1.1 FE1/0 M1 10.0.1.1 FE1/1 M2 10.0.2.1 R2: FE0/0 N2 192.168.1.2 FE1/0 M2 10.0.1.2 FE1/1 M3 10.0.2.2 4. 3. を利用して、配線を考える 例: R1 の FE1/1 と R2 の FE1/1 をケーブルで直接接続 # Network 図から、配線図が作れる 5. 3. を利用して、設定案を作る ルーティングは、RIP を利用する 6. 4. を利用して、N3 に近い方から、配線を行う(できる順に行う) 7. 5. 担当の R の設定を、5. を参考に行う 8. 設定済 R が、他と通信できる事を確認する 9. まだ繋っていない R があれば、それを担当する 今日中におわらなくても、設定済の R は、そのまま設定を保存すれば、 次回、ケーブリングだけすれば、そのまま動く 次回続きができるように準備する [概要] 上記の <> の R3 は、対外口の Router なので、 default gateway : 192.168.3.232 経由で、外に出る事が可能である。 # 192.168.3.232 では、次の設定がなされている # Target Network # 192.168.0.0/16, 10.0.0.0/16 # NAT # Target Network は マスカーレードする # Routing (Static) # Target Network は 192.168.3.3 (R3) に投げる # この結果 Target Network では、R3 との通信が可能であり、 # 更に、R3 以外は、R3 を default route とする事により、 # 対外接続が可能となる R3 自身は、次の ip route (static route 設定) により、 対外接続が可能となる -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- ip route 0.0.0.0 0.0.0.0 192.168.3.232 -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- しかし、R3 以外に、この情報を伝搬させるためには、RIP に、 この default route を報せる必要がある。 そのための設定(static route を RIP でアナウンスする)が、 次の設定となる。 これは R3 だけが行えばよい。 -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- router rip -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- [参考] http://beginners-network.com/catalyst_config_rip.html RIPの設定 - Catalyst スタティックルートやOSPFの経路を再配布する設定 http://www.cisco.com/cisco/web/support/JP/docs/SEC/Multi-FunctionSecur/ASA5500AdaptiveSecurAppli/CG/004/route_rip.html?bid=0900e4b1825ad74a