はじめに
Ciscoルータ(C1812)でポート転送をする時に色々と実験した時のメモ。
他の人がやっているかも知れないので重複する話があるかと思うけど御愛嬌。
前提条件
検証機器 CISCO1812-J/K9
IOS Version 15.1(4)M12a
基本的なnatの設定は済んでいるものとする。
1.無条件で全転送
インターフェースyyyから入って来たパケットを無条件にxx.xx.xx.xxに送る。
ip nat inside source static xx.xx.xx.xx interface yyy
2.特定サーバへポート転送
インターフェースyyyの80番ポートから入って来たパケットをアドレスxx.xx.xx.xxの80番ポートに送る。
ip nat inside source static tcp xx.xx.xx.xx 80 interface yyy 80
3.特定サーバへポート転送し且つICMPを転送先のサーバまで通す。
tracerouteをサーバまで通したい時などで使うかと思う。
ip nat inside source static tcp xx.xx.xx.xx 80 interface yyy 80
ip nat inside source static xxx interface yyy
ここで重要なのは2行目。
これを設定しないとcisco側のインターフェースyyyでicmpが返されてしまう。(転送先までICMPが行かない)
2行目を設定すると1行目が無効になりそうだけど、どうやら優先順位的には
ip nat inside source static tcp xx.xx.xx.xx 80 interface yyy 80
が優先されるらしい。(正直よくわからん)
cisco機器には特定のサーバを指定してicmpを通過させる方法が用意されて無いっぽい。
NECのIXシリーズではできるので需要が全く無いわけでは無いと思うんだけどな。
Linux、macos、BSD、ciscoではtracerouteにUDPのポート33434〜33499を使うのでアクセス制御を設定した場合、以下のようにudpを許可しておく。
permit udp any any range 33434 33499
もし、間違いがあったら教えていただきたい。