NETCON委員の竹田です。
先日、JANOG49で行われたNETCONの「カテゴリMISC, 問題名MISC-2」について解説したいと思います。
問題文
2つの拠点を持つオフィスがあり、R1とR2はそれぞれの拠点のインターネット向けのゲートウェイとなっており、
NATを使用してそれぞれの拠点のローカルIPアドレスをグローバルIPアドレスに変換しようとしています。
しかし現状両拠点でNATがうまく動作していません。R1とR2で足りない設定を追加し、NATが正しく動くようにしてください。
Linux1(192.168.1.1)⇒R2(1.1.1.2)へのPing
Linux2(192.168.2.1)⇒R1(1.1.1.1)へのPing
がうまくいけば完了です。
また、拠点2のLinux2からLinux1に22222/tcpでSSHできるようにしたいと考えています。
R1に設定を追加して、Linux2から1.1.1.1に22222/tcpでSSHした際にLinux1に接続されるようにしてください。
解説
NATがテーマの問題となります。
まずは拠点のローカルIP⇒グローバルIPのNATがうまくいっていないので、これを解決していきます。
R1のConfigを見てみると以下のような設定がされています。
## インターネット向けIFの設定
interface GigabitEthernet1
ip address 1.1.1.1 255.255.255.0
no shutdown
## 拠点内部向けIFの設定
interface GigabitEthernet2
ip address 192.168.1.254 255.255.255.0
ip nat inside
no shutdown
## NATする送信元IPアドレスを指定するaccess-list
access-list 1 permit 192.168.1.0 0.0.0.255
## NAPTの設定
ip nat inside source list 1 interface GigabitEthernet1 overload
ぱっと見るとなんか動きそうな設定なのですが、1行だけ設定が足りません。
NATのoutsideとなるIFには明示的にip nat outsideの設定が必要なので、以下の設定を追加する必要があります。
R1追加Config
## インターネット向けIFの設定
interface GigabitEthernet1
ip nat outside
R2も同様の設定を追加してあげると、拠点のローカルIP⇒グローバルIPのNATが2つの拠点でできるようになります。
R2追加Config
## インターネット向けIFの設定
interface GigabitEthernet1
ip nat outside
つぎに、Linux2から1.1.1.1に22222/tcpでSSHした際にLinux1に接続されるようにポートフォワーディングする部分の解説となります。
R1にはポートフォワーディングの設定が入っていないので、追加してあげる必要があります。
追加設定は以下の1行だけです。
R1追加Configその2
## Gi1に着信した22222/tcpの通信の宛先IPを192.168.1.1にして22/tcpに変換する設定
ip nat inside source static tcp 192.168.1.1 22 interface GigabitEthernet1 22222
もしくは
ip nat inside source static tcp 192.168.1.1 22 1.1.1.1 22222
というように、インターフェースではなくIPアドレスを指定して記述する方法もあります。
以上となります。
あまりひねりのない問題でしたが、楽しんでいただけたでしょうか?
次の機会があれば、もう少し凝った問題を作ってみたいと思います!
おつかれさまでした!