レイヤ 3 スイッチの基本 ( 6 ) 図 6 ip-port オ諚列 0 . 0 . 0 . 0 / 0 : 0 . 0 . 0 . 0 / 0 : source 203.178.153.18 / 32 ip-port range 1024 5000 permit ports any precedence 320 Summit48i : 86 # create access—list wm. 003 udp destination any ip¯port any - source 203 .178.153.18 / 32 ip—port 1755 permit ports any precedence 310 * Summit48i : 85 # create access—list m. 002 tcp destination any ip—port any - source any lp—port any permit ports any precedence 300 Summit48i : 84 # create access-list m. 001 tcp destination 203.178.153.18 / 32 ip—port 1755 - source any ip—port any permit ports any precedence 210 Summit48i : 83 # create access—list ssh. 001 tcp destination 203.178.153.18 / 32 ip—port 22 、 source any ip—port any permit ports any precedence 200 Summit48i : 82 # create access—list web. 001 tcp destination 203.178.153.18 / 32 ip-port 80 ・ 202.244.164.15 / 32 から 202.244.161.108 (fs03. kusa ・ ac ・ (p) への telnet アクセスは言午可 source any ip—port any permit¯established ports any precedence 20 * Summit48i : 151 # create access—list tcp ・ es tcp destination 202.244.164.15 / 32 ip¯port any ・ * Summit48i : 150 # create access—list denyall ip destination any source any denyports any 図 7 permit-established 指定列 access—list 100 permit udp host 203.178.153.18 any range 1024 5000 ! (Windows Media) access-list 100 permit tcp host 203.178.153.18 any eq 1755 ! (Windows Media) access-list 100 permit tcp any host 203.178.153.18 eq 1755 ! (Windows Media) access—list 100 permit tcp any host 203.178.153.18 eq 22 ! (ssh) access—list 100 permit tcp any host 203.178.153.18 eq www ・ Cisco IOS のアクセスリストで同じものをま諚する場合 Digita1 UNIX (fs03. kusa. ac. (p) (ttyp2) Connected . Type ] ' tO exit . Trying 202 . 244.161.108 : 23. * Summit48i: 153 # telnet 202.244.161.108 * Summit48i: 154 # show access—list Connection closed by foreign host . login: Ru1e Dest/mask : L4DP Src/mask : L4SP tcp. es 202.244.164.15 / 32 : 0 0 . 0 . 0 . 0 / 0 : 0 denyal 1 * Summit48i: 155 # N=Port Specific RuIe , X=Any Port P=Permit Ru1e , D=Deny Ru1e F1ags : I=IP , T=TCP , U=UDP , E=Estab1ished , M=ICMP 0 0 F1ags Hits E—D-X 2 I—D-X 190 ・ fs03. kusa. ac ・ jp から 202.244.164.15 / 32 への telnet アクセスは許可されない fs03. kusa. ac . jp% telnet 202.244.164.15 Trying 202.244.164.15. telnet : Unab1e tO connect tO remote host : Connection timed out fs03. kusa. ac ・ jp% アクセスリストに permit-established" の指定があ ると、 TCP の SYN や ACK を石忍するようになりま す。これで、内部から外部への TCP による通信は許可す るが、外部から内部への通信は許可しないといった設定が 可能になります。 図 7 では、 202.244.164.15 / 32 への TCP コネクショ UNIX MAGAZINE 2001.10 ンについて、 EstabIished なコネクションのみ許可する ように設定しています。このように設定すると、 202.244. 164.15 / 32 から 202.244.161.108 (fs03. kusa. ac ・ (p) へ の telnet は間題なく実行できますが、逆向きの fs03. kusa . ac. jp から 202.244.164.15 / 32 への telnet は実行でき なくなります。 93
図 10 アクセスリスト・エントリのの詳畩示 * Summit48i:213 # show access—list 1an . icmp lan. icmp Protoc01: icmp Action: permit Log: No Destination: 202 .244.160.0 / 19 Source : 202.244.160.0 / 19 Hit Count : 0 icmp type : any icmp code : Ports : any * Summit48i:214 # show access—list denyall denyall P て 0t0C01 : ip Action : deny Destination: 0.0 .0.0 / 0 any Precedence : レイヤ 3 スイッチの基本 ( 6 ) 20 Source : any Precedence : 0 Ru1e Number: 0 Hit Count : 294 Ports : a-ny * Summit48i : 215 # any F1ags : 図 11 物里ポートのアクセスリストの新 Destination: 0 . 0 . 0 .0 / 0 80 Protoc01 : tcp Action: permit web .001 * Summit48i:223 # show access—list port 1 ip—port 80 permit ports 1 precedence 100 * Summit48i:222 # create access—list web. 001 tcp destination any 1P¯port 80 source any F1ags: * Summit48i : 224 # 1 Ports : Hit Count : 0 Ru1e Number : 234 Precedence : 100 any Source : 80 create access—list denyicmp icmp destination any source any type 255 code 255 deny ports any enable access—list tcp. es counter permit—established ports any precedence 20 create access—list tcp ・ es tcp destination 202.244.164.15 / 32 ip¯port any source any ip¯port any enable access¯list denya11 counter create access—list denya11 ip destination any source any deny ports any precedence 0 # Access list configuration 図 12 show configuration の実行結果 ( 一部 ) create access—list 1a Ⅱ . icmp icmp destination 202.244.160.0 / 19 source 202.244.160.0 / 19 enable access—list denyicmp counter precedence 0 type 255 code 255 permit ports any precedence 20 図 13 show access-list-monitor コマンドの表示 enable access—list lan . icmp Access List denyall tcp . es denyi cmp la Ⅱ . icmp Proto IP t cp 1Cmp 1Cmp Destination 202.244.160.0 / 19 0 . 0.0.0 / 0 202.244.164.15 / 32 0 . 0 . 0 . 0 / 0 Source 202 . 244.160.0 / 19 0 . 0 .0 . 0 / 0 0 . 0 . 0 . 0 / 0 0 . 0 . 0 . 0 / 0 Hit Count 6 8 6 690 UNIX MAGAZINE 2001 ユ 0 95
レイヤ 3 スイッチの基本 ( 6 ) 図 1 アクセスリストの作成例 create access¯list denya11 ip destination any source any deny ports any create access—list tcp. es tcp destination 202 . 244.164.15 / 32 ip—port any source any ip—port any permit¯established ports any precedence 20 create access—list denyicmp icmp destination any source any type 255 code 255 deny ports any precedence 0 create access—list lan. icmp icmp destination 202.244.160.0 / 19 source 202.244.160.0 / 19 type 255 code 255 permit ports any precedence 20 ( 誌面ク ; 合斤り返しています。以下 1 研 図 2 アクセスリスト・エントリの書式 create access—list name ip destination [addr/mask ー any] source [addr/mask ー any] {denyl permit} ports [ れれ lany] precedence れ盟れ create access—list name tcp destination [ 佖・ / mas ん一 any] ip¯port れ社 m , source [ ad 市、 / m 川 any] ip-port れれ {denyl permit lpermit—established} ports [ れ社 77 any] precedence れ社 create access—list name udp destination [ addT 、 / mas ん一 any] ip¯port れ社 m - source [addr/maskl any] ip-port れ社 m {denyl permit} ports [ れ社 m lany] precedence れ社 m create access-list name icmp destination [addr/mask ー any] source [addr/mask ー any] type [ lany] code [ 引 any] {denyl permit} ports [ れ社 m lany] precedence れ社 m 図 3 から始まる名前にすると・・ * Summit48i : 13 # create access—list llist 11ist is not a va1id identifier . The maximum length for a name is 32 characters . This must be one alphabetic character followed by UP TO 31 alphabetic or numeric characters Syntax error at tOken llist ・ ICMP (icmp) のそれぞれについて個別にアクセスリストが設定できます ( 括弧内に示した小文字で言当します ) 。これらのプロトコ ルをまとめて指定することはできません。ここ日疋した プロトコルによって、以降のパラメータか変わります。 IP アドレスの指定 UNIX MAGAZINE 2001.10 トマスクを、、 / 32 " のように言己します。 トなど、 1 つの IP アドレスを指定する場合は、サプネッ ドとして、、 any " が用意されています。また、特定のホス すべての IP アドレスを表現するためク寺別なキーワー トワークに対して、このエントリ窈旨定が適用されます。 とすると、 202.244.164.0 ( サプネットマスク 24 ) のネッ destination 202 . 244.164.0 / 24 ホスト ) を指定します。たとえば、 や送信元 (source 。靃ツ m 碼ん ) のネットワーク ( または スクを組み合わせて、送信先 (destination 祠 / m ん ) IP アドレスの指定では、 IP アドレスとサプネットマ 典型的な指定の例を以下に示します。 ・送信先 / 送信元 IP アドレスの一ヨ勺な指定 destination 202.244.160.0 / 19 source 202.244.161.0 / 24 ・送信元にすべての IP アドレスを指定 source any 送信先の IP アドレスを 1 つだけ指定 destination 202.244.161.108 / 32 スイッチング里の不許可 / 許可 工ントリにマッチしたバケットをスイッチングするか 否かは、 {denylpermit} で指定します。 deny では不許 可、 permit では許可となります。 物理ポート指定 設定したアクセスリストを適用するスイッチの物理ポー トは、アクセスリスト・エントリで portsl" や、 ports 1 ー 5 , 7 , 8 " のように指定します。すべてのポートにこのエン 91
新・倉敷芸術科学大学のネットワーク構築・・・ 13 図 8 ICMP に対するアクセスリスト乍成 * Summit48i : 157 # create access—list denyicmp lcmp destination any source any type any code any deny ports any * Summit48i : 158 # create access—list 1a れ . icmp icmp destination 202.244.160.0 / 19 source 202.244.160.0 / 19 type any code any permit ports any precedence 20 ・ ping を実行して確認 * Summit48i: 168 # ping 203.178.153.1 Ping 203.178.153.1 : 4 packets, 8 data bytes, interval= 1 . 203.178.153.1 ping statistics 4 packets transmitted, 0 packets received, 100 % packet loss * Summit48i: 169 # ping 202.244.164.1 Ping 202.244.164.1 : 4 packets, 8 data bytes, interval= 1. 16 bytes from 202 . 244.164.1 : icmp-seq=0 ttl = 128 time=10 ms 16 bytes from 202 .244.164.1 : icmp-seq=l ttl = 128 time=O ms 16 bytes from 202 . 244.164.1 : icmp—seq=2 ttl = 128 time=O ms 202.244.164.1 ping statistics 3 packets transmitted, 3 packets received, 0 % packet loss round—trip min/avg/max = 0 / 3.33333 / 10 ms * Summit48i: 170 # 図 9 show access-list の実彳テ * Summit48i : 171 # show access—list Dest/mask : L4DP Src/mask : L4SP Ru1e 1aれ . icmp 202 .244.160.0 / 19 : 202.244.160.0 / 19 : 65535 0 tcp. es 202.244.164.15 / 32 : 0.0.0.0 / 0 : 0 0 0 . 0 . 0 . 0 / 0 : 0 . 0 . 0 . 0 / 0 : denyal 1 0 0 0 . 0 . 0 . 0 / 0 : . 0 / 0 : 65535 denyicmp 0 0 . 0 . 0 F1ags : I=IP , T=TCP , U=UDP , E=Estab1ished, M= I CMP P=Permit Ru1e , D=Deny Ru1e N=Port Specific Ru1e , X=Any Port * Summit48i : 172 # ICMP / ケットの code と type 示されます ( 図 11 ) 。ただし、エントリ作成時に ports any " で設定したエントリについては表示されません ( 理 ICMP に対するアクセスリストでは、 ICMP バケット 由は不明です ) 。現在のノヾージョンの ExtremeWare で の code や type カ甘旨定できます ( 図 8 ) 。特定の ICMP は、 ports でホート番号を直孑欝旨定したエントリだけか表 バケットに対してアクセスリストを適用するときは、 示されるようです。 で ICMP type や ICMP code を 0 ~ 255 の数字てオ旨定 show configuration コマンドを実行すると、その します。たとえば、 ICMP echo は type 8 、 code 0 で ままコマンドに使える形式で結果か表示されます ( 図 12 ) 。 す。すべての ICMP バケットに適用する場合は、 type や 出力が長いのでちょっと大変ですが、この部分を保存して code に any を指定します。 おけは設定の彳己かできます。 show access-list-monitor コマンドを実行すると、 アクセスリストの状態表示 設定したアクセスリストのルールにヒットしたバケット数 をリアルタイムで引算して表示します ( 図 13 ) 。 設定されているアクセスリストに関する情報は、 show access-list コマンドて市忍することができます ( 図 9 ) 。 表示されているときに、、 U " (up) 、 "D" (down) のキ どれか 1 つのアクセスリスト・エントリについて詳細な情 ーを入力すると画面が上下にスクロールします。表示を中 報を知りたい場合には、このコマンドの引数にエントリ名 断してもとのコマンド入力画面に戻すには、 ESC キーを を指定します ( 図 10 ) 。 入力します。 show access-list コマンドに続けて port" を指定する アクセスリストの表示には、リストにマッチしたバケッ と、物理ポートごとに設定されているアクセスリストが表 ト数が、 Hits " としてカウントされています。この値をク tn V ( 0 ( 0 ( 0 8 ・ 1 1 H 94 UNIX MAGAZINE 2001.10
新・倉敷芸術科学大学のネットワーク構築・・・ 13 図 4 同じ precedence 番号を言聢しようとした場合のエラー * Summit48i : 26 # create access—list u. 003 ip destination 202 . 244.164.0 / 24 source 202.244.160.0 / 19 permit ports any precedence 100 name u. 002 ← u. 002 のエントリと同じ 100 番を設定しようとした Dup1icate precedence 100 : Ru1e ERROR: Fai1ed to create rule u .003 図 5 アクセスリスト殳的な言聢例 * Summit48i : 10 # create access —list u. 001 ip destination any source any deny ports any -list u. 002 ip destination 202.244.160.0 / 19 - * Summit48i: 11 # create access source 202.244.164.0 / 24 permit ports any precedence 100 * Summit48i: 12 # create access-list u. 003 ip destination 202.244.164.0 / 24 source 202.244.160.0 / 19 permit ports any precedence 101 トリを適用する場合は、 any も指定できます。 u. 001 ) 、その後に、許可をケえる系目 : 合迂に対して prece- 現在の Summit スイッチにおけるアクセスリストで dence 番号を設定します ( 図 5 の u. 002 と u. 003 ) 。 は、そのインターフェイス・ホートへの入力バケットに TCP/UDP ポート番号の指定 対する適用 (Cisco IOS の、、 in") のみカ躾装されていま TCP と UDP のポート番号は、、、 ip-port" に続けて指 す。インターフェイスからのバケット出力 (Cisco IOS 定することができます。 ip-port が destination の後ろに の、、 out " ) については、則点では設定できません。 指定されている場合は destination のホート番号、 source 残念ながら、既存のポートに対して設定しているアクセ の後ろに指定されている場合は source のポート番号とな スリストを別のポートにも簡便に適用するコマンドはあり ります。 ません。新たに別のポートにアクセスリストを設定すると ip-port では、 きは、既存のポートと同しルールを適用する場合もエント リを新設することになります。 ・ port-num ( ポート番号 ) ・ range い疋範囲のホート番号 ) 面憂先立 ・ any ( すべて ) precedence 番号は、設定した複数のアクセスリスト・ 工ントリを評価する順番を明万前勺に指定する場合に利用し の 3 不頁カ甘旨定できます。 ます。 1 ~ 25600 の範囲の数か設定でき、数字が小さい port-num では、 0 ~ 65535 までの TCP/UDP ポー ほど優頂位が高くなります。図 4 に示したように、同し ト番号で指定します。 Cisco IOS では、一部のポート番 番号は指定できません。 precedence 番号は省略すること 号についてはサーヒ、ス名カイ吏えますが、 ExtremeWare で もできます。 は数字でしカ甘旨定できません。 Windows Media や Real などのアプリケーション・ precedence 番号が設定されたエントリと、設正されて いないエントリの内容か矛盾する場合は、前者が優先され サービスに対してアクセスリストを適用する場合は、クラ ます。既存のエントリに対し、それを上書きするような設 イアント向けの UDP ポートを範囲指定して許可する必要 定のエントリを追加するときは、かならす既存のエントリ があります。 range による指定は、このようなときに役に より小さな precedence 番号を指定します。 立ちます。 TCP/UDP に対するアクセスリストにおける ip-port ーヨ殳に、アクセスリストの設定は、 の設定例を図 6 に示します。記述友去はすこし異なって 1. ます、すべてのアクセスを不許可にする いますが、基本的には同等のルールカ甘旨定できます。 2. 次に、特定のアクセスのみを指定して許可する コネクションの向きによるアクセス制限 というパターンでおこなわれます。 TCP に対するアクセスリストでは、通信コネクション この場合は、ます precedence 番号を指定せすにすべ の、、向き " によるアクセス制限ができます。 てのアクセスを不許可にするルールを設定し ( 図 5 の 一三ロ 92 UNIX MAGAZINE 2001.10
図 9 / ヾーティションの作成 # /sbin/fdisk /dev/vsdl VMware ESX Server ( 3 ) ← vsdl にノ、一ティションを作成 The number 0f cylinders for this disk is set to 2231. There is nothing wrong with that , but this is larger than 1024 , and could in certain setups cause problems with: 1 ) software that runs at boot time (). g. , LILO) 2 ) booting and partitioning software from other OSs (e . g. , DOS FDISK, OS / 2 FDISK) 63 sectors, 2231 cylinders ←現在の状態をチェック Command (m for help) : p Disk /dev/vsdl : 255 heads , Units cylinders 0f 16065 * 512 bytes Device Boot Command (m for help) : 旦 Command action extended e Start End B10cks ld System 新しいパーティションを作成 ←プライマリ・ . パーティションを孑旨定 P primary partition ( 1 ー 4 ) Partition number ( 1 ー 4 ) : 1 First cylinder ( 1 ー 2231 , default 1 ) : Using default value 1 Last cylinder or 十 Size or 十 SizeM or Using default value 2231 Command (m for help) : Partition number ( 1 ー 4 ) : Hex code (type L t0 list codes) : fb 1 十 sizeK ( 1 ー 2231 , default 2231 ) : ←タイプを設定 、一ノ、一ティション : 番号 ← VMFS のタイプ ID ーノ、一一ティション : 番一号 ←ディスク全体を指定 Changed system type 0f partition 1 t0 Units cylinders Of 16065 * 512 bytes Disk /dev/vsdl : 255 heads, Command (m for help) : p 63 sectors, fb (Unknown) 作成したパーティションを確認 2231 cylinders Device Boot /dev/vsdlpl Start 1 End B10cks 2231 17920476 ld System f b Unknown ←設定の書込み ← Unknown は気にしない Command (m for help) : 旦 Ca11ing ioctl() t0 re—read partition table . The partition table has been altered! WARNING: If you have created or modified any DOS 6. x partitions , please see the fdisk manual page for additional information . Syncing disks . 言聢ファイル乍成 ESX サーバーでは、 1 台の仮想 PC につき、設定ファ イルなどをオ褓内するためのディレクトリが 1 つ必要です。 そこで、ます最初にディレクトリを作成します。この竹喋 は、一イ殳ューサーでおこなってください。 UNIX MAGAZINE 2001 ユ 0 このディレクトリは、ホーム・ディレクトリの vmware ( すでに作られているはすです ) の下に作成します。名前は なんでもかまいませんが、、、名は体を表す " という教え ( ? ) に従ったはうがよいでしよう。 次に、すでにある仮想 PC の設定ファイル ( 拡張子が 187
新・倉敷芸術科学大学のネットワーク構築・・・ 13 図 14 カウンタをゼロにリセット * Summit48i : 195 # clear counters * Summit48i : 196 # show access—list Src/mask : L4SP Dest/mask : L4DP Ru1e 202.244.160.0 / 19 : 65535 lan. icmp 202 .244.160.0 / 19 : 0 0 . 0 . 0 . 0 / 0 : tcp. es 202.244.164.15 / 32 : 0 0 0 . 0 . 0 . 0 / 0 : 0 . 0 . 0 . 0 / 0 : denyall 0 0 0 . 0 . 0 . 0 / 0 : 0 . 0 . 0 . 0 / 0 : 65535 denyicmp 0 F1ags: I=IP, T=TCP, U=UDP, E=Estab1ished, M=ICMP P=Permit Ru1e , D=Deny Ru1e N=Port Specific Ru1e, X=Any Port * Summit48i : 197 # 図 15 落としたバケットの言鞦田 * Summit48i : 174 # enable access—list denyicmp 10g * Summit48i : 175 # show 10g 08 / 26 / 2001 18 : 46.00 く INFO :KERN> last message repeated 3 times 08 / 26 / 2001 18 : 45.52 く INFO :KERN> ICMP Drop: 1 ー 4094 00 : eO : 2b: Od:d8: 00 / 203.178.153.18 ー > 202.244.164.15 TypeCode=0 * Summit48i : 176 # disable access—list denyicmp 10g P 0 0 2 0 ・ 1 1 H リアしたいときは、 clear counters コマンドを実行し ます ( 図 14 ) 。 現実の運用を考えると、特定のカウンタだけをクリアす るコマンドがほしいところですが、このコマンドではスイ ッチ内のすべてのカウンタがゼロにリセットされてしまい ます。不用意に実行すると、その他の必要な数値までクリ アされるので注意が必要です。 show access-list-monitor コマンドの実行中に 0 、 O 、 0 のいすれかのキーを入力すると、アクセスリスト関係の カウンタだけがゼロにリセットされます。 disable access-list e れーれ佖 7 〃 e counter コー ~ ンドを実行すると、 et 市 7 田 me のエントリによるバケ ットカウントの収集を中断することができます。収集を 再開したいときは、 enable access-list entry-name counter コマンドを実行します。 落としたバケットの詳細 enable access-list e れなれ佖 me log コマンドを実 行すると、エントリ entry-name のルールに沿って落と したバケットの言田を言当求できます。 図 15 の例では、エントリ denyicmp のルールにマッ チした情報を言当するように指定しています。ログの内容 は、 show log コマンドで参照します。この図では、 203. 178.153.18 からの ICMP Echo を落としていることカ蔀寉 認できます。 アクセスリストの削除 設定されているアクセスリスト・エントリを削除するに は、 delete access-list コマンドを使います。コマンド の引数に、アクセスリスト・エントリ名を指定します。図 16 の例では、 web. 001 というエントリを削除しています。 アクセス制限に関する制約 Summit スイッチは、はとんどのバケット処理をハー ドウェアでおこなうため、アクセスリストを言定してもパ ケットの中継能力は低下しない構造になっています。その 反面、いくつかの制約もあります。 アクセスリストのエントリで precedence 番号を設定 できるのは、最大で 255 個です。 precedence 番号を設 定しないエントリについては、以下の条件を満たしている 場合に限り、標準の 255 個に加えてさらに 255 個を追加 して言置できるようになっています。 ・送信元 IP アドレスがワイルドカードで指定されている か、ホスト指定 ( サプネットマスクが、、 / 32 " ) になって いる。 ・ TCP/UDP における port 指定が、 range" の指定に なっていない。 ・エントリにおける物理ポートの指定が、、 any " になって 96 UNIX MAGAZINE 2001.10
et's PIay with UNIX ⑩ 図 3 mp3PRO 形式のファイルを Winamp て再生 1. HE - TRHGBLE ( 9 59 ) ローロー 1- HE - 1 日 NG E - HP3PR0 ( 0 : 59 ) ルロロ : ヨ日 サンプリング・レートの表示は、 22kHz " で、音質は MP3 の 64Kbps とほは同し ルロロ : 旧 156 読み書きができるようになっているらしい。 SoundForge foundry.com/) の最新片反でも、この Vorbis ファイルの サウンドエデイタ Sound Forge (http://www.sonic- ミュージシャンにはおなしみの Windows 用 さらに、 Winamp 、 Mac OS なら MacAMP などである。 UNIX では XMMS や FreeAMP 、 Windows なら いくっかのプレイヤー用のプラグインが公開されている。 現在のところ、専用のエンコーダ / デコーダのほかに るオープンソース形式で開発されている。 は欠点かもしれない。配布条件は GNU GPL で、いわゆ MP3 と上交するとエンコード速度が遅いのが欠点といえ (CBR) は j 尺できない ) 。実用上はこれで問題はないが、 ルトになっていることだ ( そもそも、固定ビットレート のは、エンコーダで可変ビットレート (VBR) がデフォ 128Kbps 程度のピットレートに圧縮する。 MP3 と違う 式で、 CD 音質の 44.1kHz / 16bit / ステレオの情報を これは MP3 と同様、非可逆圧縮の音声ファイル形 るので、簡単におさらいしておこう。 以前に Ogg Vorbis を紹介してから 1 年ほど経ってい あったようだ。 けではないのが世の常であり、当初はいろいろと不具合も いう文字がなくなったからといって急に元成度か高まるわ 文字が外れた。当然、期待は高まるわけだが、 BETA と 1.0rc1 がリリースされて以来、ようやく BETA" の 4 新版は 1.0 ReIease Candidate 2 ( 1.0rc2 ) で、 6 月に トの表示が、 44kHz " になり、高音域もに改善される。 mp3PRO 用のプラグインを組み込むと、サンプリング・レー 国ロ画ロ新 図 4 Ogg Vorbis の、 Veb ページ bitrate, ( : a : dd ⅲリ and channel COR 一回ⅲ 9 d ( 田・ and を 00 協 now implernent 日 VO 市 1.0 町を ( Ⅲ c 日目ーー・ at 町、 including low Thisisa れ川 testreleaæofa p 「 e -1. Oenc 厄し d : 儀「 and to しれに en ( : ( .d ′ Release Candidate 2 ( 1.0 代 2 ) 協い OW and レ 00 ⅲ、 5 Release update ・当り生三 毎取新明議町い睡 -0 山 を盟リ朝田 Y. 水当 10 当担 5 Vorbis Home Table of Contents dev 可肥 d as 国代刈 ( ho 「 us 第イい保山を朝 0 . VO 市協協物 e は可 a plannedfamilyof ( 瓣 9 m 田朝第ⅱ a ( 明 formats MPEG-4audiO(MCand 1 ・ w ⅲ VQ ) 第 PAC. VO 市ⅲ the same cl 日 as audio 田 e & en 目 0n5 including MPEG- 1 audio 信 y 円 - 3. and 行Ⅲ si( : れ x d and 新 b い bitr fro " 1 16 い 128kbvs/channeI. This places COrnpressed audiO forn 旧に信「 high quality ( 44.1-4 圧 Ok 日ら 16 十 bit, polyphonic) audio Ogg Vorbis ぉ fully n , non-proprietary, 恤 " ト and oy ty ・斤 8. gen a ト p 餌汚 e み uO ″ 13 ′ 2001 The Ogg Vorbis CODEC project OggVorbis http://www.xiph.org/ogg/vorbis/ UNIX MAGAZINE 2001 ユ 0 0 ( 余談になるが、 1 年半はど前、この連載を始めたときの ログモデムか 64Kbps の ISDN といったところだった ぜい数 GB 、インターネットへの接続も 56Kbps のアナ 数年前の個人ューサーの環境は、ハードディスクはせい とだ。が、現在ではいすれも別の鮹夬方法がある。 て接続している場合でも高音質のストリームカ碍られるこ クスペースの節約とダウンロード時間の矢可宿、そしてイ 低ビットレートによって得られるメリットは、ディス トレートに弱いのは事実だが、それば々たる欠点にすぎ は、やはり Vorbis をおいてほかにない。 Vorbis か低ビッ かも MP3 と同等の音質か得られる音声宿フォーマット えている。 MP3 のようなライセンス上の間題がなく、し しかし、 Vorbis の価値は別のところにある、と私は考 を意識しているのかもしれない。 だ。あるいは、 mp3PRO や WMA の 64Kbps の音質 開発チームはこのビットレートが必喫だと考えているよう まだ音楽向けの水準に達しているとはいいがたい。だが、 可能になったことだ。ただし、残念ながら、その音質は 64Kbps ( 1 チャンネルあたり 32Kbps) のエンコードが Vorbis 1. Orc2 の特徴は、ターゲット・ヒ、ツトレート 低ビットレートのサポート といってもいい。 高い商用ソフトウェアで Vorbis カリ用できるのは画期的 は以前から多くのファイル形式に対応しているが、人気の
とも現状では IPv4 のことを忘れるわけにはいかないで ただし、 IPv4 と IPv6 の両方か利用できるような環竟 でうまく重川するプログラムを作ったとしても、寸分とは いえません。どちらか一方しか実装されていないシステム でも利用できなければなりません。はかにも、システムの カーネルは IPv4 と IPv6 の双方に対応しているが、実 際のインターフェイスには IPv4 アドレスしか割り当て られていないなど、複雑なケースを考えれはキリがありま せん。 現実的な解としては、すべての組合せを試してみて、う まくいったものを使って実際の通信をおこなうといったと ころでしようか。 getaddrinfo は、このような方針でプロ グラミングする際に好都合な関数です。この関数は 4 つの 引数をとります。最初の 2 つはホストとサービスを表す文 字列です。 3 番目は、 getaddrinfo 関数の乍を変えるた めのオプションを指定する引数です。最後の引数は結果を 返すためのもので、変数のアドレスを指定します。 addrinfo 本冓造イ本 第 3 、第 4 引数の型を考えるときに、 addrinfo 構造体 canonname ; addrlen; al—protocol; ax—socktype ; al—family; al—flags; か重要になります。この構造体の定義は次のようになって struct addrinfo います。 int int int int size_t char struct struct a1 addrinfo *ai_next ; sockaddr *ai_addr ; 最初の aiÆags は関数にオフションを渡すときに利 用するもので、あらかしめ決められた記号定数を論理和 で結んで指定します。 ai-family はフロトコル・ファミ リーです。 PF-INET や PF-INET6 などが格納され ます。次の ai-socktype はソケットの型を示すもので、 SOCK-STREAM や SOCK-DGRAM などをイ褓内しま す。 ai-protocol は、 /etc/protocols にオ内されている プロトコル番号 (IPPROTOACMP など ) 尉寺するた UNIX MAGAZINE 2001.10 めに利用します。 プログラミング・テクニックイ 次の ai-addrlen は、後ろにある ai-addr カ甘旨してい る sockaddr 構造体の大きさを示します。 sockaddr 構 造体は、利用するプロトコルによって大きさが変わりま す。構造体の大きさが分からなければほかの呼出しに利 用できないので、ここに大きさの情報い内しています。 ai-canonname には、対象となるホストの正式なホスト 名かオ内されます。 ai-addr には、実際にソケット盟連の 呼出しで用いられる、 sockaddr 構造体として利用可能な 情幸財褓内されます。 最後の ai-next は、次の情報へのポインタとなってい ます。たとえは、 IPv4 と IPv6 のどちらでも通信できる など、ある接続先について複数の情報か存在することがあ ります。このような場合に、そのなかの 1 つだけを返すの ではなく、すべての情報を返そうというのが getaddrinfo 関数の方針です。そのため、複数の情報を表現できるよう に辛杉リスト形式になっています。 getaddrinfo の第 3 、第 4 引数 getaddrinfo 関数の第 3 引数として、 addrinfo 構造体 を利用して関数の重川を指定する場合には、あらかしめ決 められた情報をそれぞれのフィールドに設定して引数とし ます。とくにオフションを指定する必要がなけ川ま、この 部分には NULL を指定できます。 オフションの指定は、プロトコル・ファミリーとして IP v4 のみを利用するのであれは、 ai-family に PF-INET を設定して引数とします。 aiffags は第 3 引数として使 ーこに AI-PASSIVE を指定 うときに意味をもちます。 した場合、サーバーとして測イするプログラムが、返され る情報をそのまま bind システムコールに用いることを示 します。そのため、 getaddrinfo 関数はサーバー名として 何も指定されていなけれは、アドレスとして INADDR- ANY や IN6ADDR-ANY-INIT などを設定します。 方、 AI-CANONNAME を指定した場合には ai-canon- name に値かオ褓内されます。逆にいうと、これを指定しな けれは値はオ内されません。なお、サーバー名として数値 のアドレスカ甘旨定されている場合にも、 ai-canonname に 値は内されません。 ai-flags に指定できる値としては、 AI-NUMERIC- HOST もあります。この値を指定すると、 getaddrinfo 関数は名前鮹夬を試みません。つまり、指定した名前がホ 101
レイヤ 3 スイッチの基本 ( 6 ) 図 16 アクセスリストの削除 * Summit48i : 224 # show access—list Dest/mask : L4DP Ru1e Src/mask : L4SP lan. icmp 202.244.160.0 / 19 : 202 . 244. 160.0 / 19 : 65535 0 tcp. es 202 . 244.164.15 / 32 : 0 . 0 . 0 . 0 / 0 : 0 0 0 . 0 . 0 . 0 / 0 : web .001 0 / 0 : 80 0 . 0 . 0 . 80 denyall 0 . 0 . 0 . 0 / 0 : 0 / 0 : 0 0 . 0 . 0 . 0 denyicmp 0 . 0 . 0 . 0 / 0 : 0 / 0 . 0 0 . 0 . 0 . ・ 65535 F1ags : I=IP , T=TCP , U=UDP , E=Estab1ished , M= I CMP P=Permit Ru1e , D=Deny RuIe N=Port Specific Ru1e , X=Any Port * Summit48i : 225 # delete access—list web .001 * Summit48i : 226 # show access—list Dest/mask : L4DP Src/mask : L4SP Ru1e lan. icmp 202 . 244.160.0 / 19 : 202.244.160.0 / 19 : 65535 0 tcp. es 202 . 244.164.15 / 32 : 0 / 0 : 0 0 . 0 . 0 . 0 0 . 0 . 0 . 0 / 0 : 0 / 0 : denya11 0 0 . 0 . 0 . 0 0 . 0 . 0 . 0 / 0 : 0 . 0 . 0 . 0 / 0 : 65535 denyicmp 0 F1ags : I=IP, T=TCP, U=UDP, E=Estab1ished, M= 工 CMP P=Permit Ru1e , D=Deny Ru1e N=Port Specific Ru1e, X=Any Port * Summit48i : 227 # 4 tn 9 V 0 0 0 2 0 ・ 1 4 9 0 0 2 0 ・ 1 b0A* Q Q Q 1 工 系緲。 いる。 せめて、 1 人あたり引出しを 1 つくらいは使えるように マニュアルによれば、一 - ヒ、位機種の BlackDiamond で しなけ川よと考えて、レイアウトを変更することにしたわ は、 I/O モジュールごとに 255 個のアクセスリストの工 けです。 ントリか記述できるようです ( 手許に評価できる BIack- 作業は、世の中がお盆休みに入る直前におこないまし Diamond がないのて材鄙寉認です ) 。 た。初日は研究室内の物を下に出し、本棚、ラック、机 i チッフをベースとした Summit48i や Summit5i な などの手 f 器を適当に移動して終了しました。 2 日目は什器 どでは、アクセスリストの設疋をレイヤ 3 でのルーティン をきちんとレイアウトし、 PC や本などの備品類を大染巴 グだけでなく、レイヤ 2 での VLAN にもそのまま適用で ロ内しました。 3 日目はその前日に適当に収めた備品類 きます。ただし、レイヤ 2VLAN でアクセスリストを利 をきれいに整理し、ネットワーク機材をそれなりにレイア 用すると、障害発生時の原因の究明か難しくなります。ど ウトして終了です。 こでどのようなアクセス制限を設けるかは、慎重に検詞す 学生のための空間の石呆を最優先としたため、古くなっ べきでしよう。 て使えなくなった備品はできるかぎり共同倉庫に移動し、 廃棄可能なものは捨てるという方針で臨みました。大切に 今月のあんか 保管していた ( 未整理ともいいます ) 書類も、きちんと仕 分けした結果、ほとんど処分されてしまいました。大型の 8 月初めに、数年ぶりに研究室の大幅なレイアウト変更 ゴミ袋で 10 袋くらいは廃棄したような気がしますにの をおこないました。運用に関する研究が中心ということも 大学に着任して、初めての大規模処分でした ) 。 9 月には、 あり、どうしてもネットワーク関係の機材や PC が数多 電源の増設も予定しています。ラックも作業しやすい位置 く必要になります。評価するためにべンダーから借りたス に移動できました。 イッチや、共同研究用に持ち込まれたネットワーク機材が 残された課題は、机の上のプラウン管式のモニターを、 所狭しと積み上げられ ( ラックだけでは足りす、机の上に 場所をとらない液品ディスプレイに買い替えるという難題 も積まれています ) 、学生の生活空間か圧迫されていまし です。なんとか今年度中に実現させたいのですが、 10 台 た ( 10 人部屋にラックが 4 本 ( 1 本はハーフラック ) も 近くを一気にというのは、財政か逼迫している私の研究室 立っています ) 。電源事情も最悪で、すべての機器の電源 ではそう簡単にはいきそうにありません。 を同時に入れるなど、とうてい不可能な状態です ( 電源は ( こばやし・かすまさ倉敷芸行州学大学 ) 2kVA x 2 系統、 CVCF 経由の安定化電源 1.5kVA x 1 第 97 UNIX MAGAZINE 2001.10