ダイナミックNAT+RIP

ダイナミックNATのプールアドレスをRIPにのせたい

プールアドレスに関する経路情報をISP(RouterX, Y)にどのようにして伝えれば良いか。

制約:X、YにはRIPを流す以外に経路情報を伝える方法はなく、X、Yにstaticルートを書く方法は不可

RIPの設定

RouterX
router rip
version 2
network 10.0.0.0
network 172.16.0.0
network 172.16.1.0
no auto-summary

RouterY
router rip
version 2
network 10.0.0.0
network 172.16.2.0
network 201.1.1.0
no auto-summary

RouterZ
router rip
version 2
network 201.1.1.0

結果

RouterXのshow ip route

200.2.2.0/24がない!

なぜ経路情報が広告されないか

RIPは直接接続しているネットワークが広告対象なため

解決策

その1:プールアドレスのループバックインターフェースを作成(非推奨)

なぜ非推奨なのか

Loopbackを無駄に作成するのは良くない

→OSPFなどではLoopbackが特別な意味を持つため

その2:RouterZにstaticルートを書いて、RIPにredistribute(再配布)する(推奨)

Null0インターフェースへ向けたスタティックルート

Router(config)# ip route 200.2.2.0 255.255.255.0 Null0

ripに再配布

Router(config)# router rip
Router(config-router)# redistribute static

結果

webサーバーのアクセスログ

どちらもダイナミックNATで変換された

おまけ

なぜパケットが捨てられない?

webからNAT内にレスポンスを返す時、その1ならLoopbackに、その2ならNull0に捨てられるので、PCに届かないのでは?

insideのインタフェースからoutsideのインタフェースの処理のときには、ルーティングしてからNATの処理を行います。

outsideのインタフェースからinsideのインタフェースの処理のときには、NATの処理をしてからルーティングします。

つまり、NAT動作の優先度が高いため

参考:https://www.cisco.com/c/ja_jp/support/docs/ip/network-address-translation-nat/6209-5.html

まとめ

  • 目的: ダイナミックNATのプールアドレス(例:200.2.2.0/24)をRIP経由でISP(RouterX, Y)に伝える
  • 制約: X、YにはRIP以外の方法やstaticルート設定はできない
  • 解決策(推奨): RouterZに対して、以下の設定を行う
    1. ip route 200.2.2.0 255.255.255.0 Null0
    2. RIPプロセスで redistribute static を実施
  • ISP側にはプールアドレスの存在がRIPで広告され、なおかつ実際のNAT処理には影響を及ぼさない形で実現できる。

    ← Go home