### NAT による準マルチホーム化技法 発表者: 梶田 将司 記録者: 加茂 智之 時間: 14:05 -- 14:40 * はじめに NAT ということで信条的・宗教的にいやがるかもしれないが (^_^;)、手法の一 つとして聞いてほしい 梶田の本職は音声認識で、ネットワークは本来は素人なので、まちがいなどがあっ たら指摘求む # マルチホームの一般化 複数の接続点でインターネットに接続すること 目的は信頼性向上と負荷分散 近年需要が高まっている # 様々なマルチホーム化手法 JANOG5 で発表があったように、さまざまな手法が存在する 場合によって条件がいろいろ違うので、それに合わせた手法を使用する IP レベル 経路制御にその他の技術 (NAT など) を組み合わせて実現 アプリケーションレベル プロクシ的な挙動を利用 # 発表内容 今回発表する例は IP レベルでの実装 # 名古屋大学のネットワーク事情 略称: NICE 基幹の ATM 網の周辺に部局 LAN がつながり、それに学科用、研究室用の LAN がつながる 研究室 LAN は NAT 経由でつなげているところもある 対外接続には SINET のみでつながる SINET 基幹大学の中では名古屋大だけ SINET は研究用ネットワーク SINET に接続する FW では簡単なフィルタリングを行うのみ 情報教育メディアセンターの新設 端末を約800台導入 センターのネットワークをどうつなぐか? 教育用システムであり、NICE 内の研究用システムとは性格が違う # 当初の接続ポリシー 教育用システム 外へのアクセスはできるだけ透過にしたい 800台の端末 (UNIX と NT) FW で外部からのアクセスを限られたホストのみに制限したい 割り当てられた IP アドレスは500しかない プライベートアドレスを使用する必要がある 外向けのアクセスが多い 高速なアドレス変換が必要 → PIX を使うつもりで準備 # 突然の複数接続化 補正予算およびメディアセンターの予算構成から通信費用としての予算が存在す ることが判明した 研究用のみのシングルホームをなんとかしたい 教育専用を目的として複数接続を、と考えた 対外接続の信頼性・帯域確保 講義でインターネットを使う場合も増えている 信頼性を上げる必要がある みんなで一斉に同じところを見に行くことがある 特定の短時間に負荷が集中する 学内の研究用ネットワークに迷惑をかけたくない 接続先が既知の場合もある センタ独自の routing policy を使用したい AS 取得も考えた 今回はあくまでもセンターの複数接続 AS 取得となると大学全体の話になってしまう → CISCO 7204 (NAT 機能付き) の追加 コスト最小で複数接続が可能 構成変更も小さくてすむ # 問題の一般化 (logger 注: "_" は下付きの添字を表します。 "NAT_x" は "NAT" の右下に "x" を書くことを表します。) LAN Z の router r から、NAT_x と NAT_y を介してそれぞれ ISP X と ISP Y に接続 デフォルトルートは ISP X に向け、いくつかのルートを ISP Y に向ける インターネットを「ISP X 経由で接続するサイト群 I_x」と「ISP Y 経由で接続 するサイト群 I_y」の2つにわけて考える 4通りのケースを考える # 内部ホストからの通信 内部ホストからセッションを張る場合は、ISP X 経由の場合も ISP Y 経由の場 合も問題なく通信できる # 外部ホストからの通信 (1) I_x に属するホストからセッションが張られた場合は、問題なく通信できる # 外部ホストからの通信 (2) I_y に属するホスト h_y からセッションが張られた場合 行きは ISP X を経由するが、戻りは ISP Y を経由する非対称経路となる h_y から見ると異なるアドレスからパケットが戻ってくるため、うまく通信でき ない 初めのうちは問題が起きることに気づかなかった 機器をつなぎこんでから気付いた (^_^;) # 論理 IP アドレス&ポリシールーティング それぞれの ISP からもらってるアドレスを2つずつにわける 内部で使用するプライベートアドレスとして「実アドレス」「ISP X 用の論理ア ドレス」「ISP Y 用の論理アドレス」の3種類を用意し、外部からアクセスされ るホストには3種のアドレスを振る 実際は3種は必要なく、2種でも十分 内部から外部にセッションを張る場合 「実アドレス」を使用し、通常どおり NAT をかけてアクセスする 外部から内部にセッションを張る場合 往路は ISP X 経由のとき = ISP X からもらったグローバルアドレスにアクセスされたとき NAT_x で「ISP X 用の論理アドレス」に変換 ISP Y 経由のとき = ISP Y からもらったグローバルアドレスにアクセスされたとき NAT_y で「ISP Y 用の論理アドレス」に変換 復路は ポリシールーティングを利用し ソースアドレスが「ISP X 用の論理アドレス」のときは ISP X に向ける ソースアドレスが「ISP Y 用の論理アドレス」のときは ISP Y に向ける # 外部ホストからの通信 (2) の改善結果 h_y から内部ホスト h_z にセッションを張る場合 h_z のアドレスを 「実アドレス」: 172.16.1.1 「ISP X 用の論理アドレス」: 172.16.1.101 「ISP Y 用の論理アドレス」: 172.16.1.111 ISP Y 側のグローバルアドレス: 210.235.232.111 とする 各時点でのパケットの発アドレスと着アドレスは以下のようになる 往路 h_y を出発してから NAT_y に到着するまで 発: h_y 着: 210.235.232.111 NAT_y から router r を経由して h_z に到着するまで 発: h_y 着: 172.16.1.111 (NAT_y で変換された結果) 復路 h_z を出発してから router r を経由して NAT_y に到着するまで (ポリシールーティングにより、router r では NAT_y にルーティングされる) 発: 172.16.1.111 着: h_y NAT_y を出発してから h_y に到着するまで 発: 210.235.232.111 着: h_y # 本手法の特徴 自ネットワークのアドレスを広報しなくていい 外部からの到達可能性は一部犠牲にしている そのため、"準" マルチホームと呼んでいる Provider Independent であろうが Provider Aggregatable であろうが関係ない NAT を使用するのでアプリケーションは限定される 教育システムとして使用している分には問題となっていない 中継は不可 既存の設備で実現可能 # 本センターでの実現 Cisco 7204 のポリシールーティングを使用している # 運用状況 (外部→内部) # 運用状況 (外部→内部) # 内部を起点とした通信の負荷分散 デフォルトは SINET に向けている 現在の所は CTCN からプライベート BGP をうけとり、学術系サイトをフィルタ リングして CTCN に向けている # まとめ 1年間運用した限りでは大きな問題は発生していない # 今後の課題 現状ではデフォルトルートは static に指定しているため NICE 側の回線障害の 場合はマニュアルで切り替えが必要となっている →要改善