この記事からの続き。構成を把握した前提で話が進むので注意。
iosv-3→iosv-1へpingを実行した場合、Src/Dstの関係は以下のようになる。
Inside(iosv-3→iosv-2)
- 送信元:10.1.1.3
- 宛先:10.1.1.1
outside(iosv-2→iosv-1)
- 送信元:20.1.1.254
- 宛先:20.1.1.1
今回のテーマ
Q: 10.1.1.1の変換前アドレスは20.1.1.1である。つまり10.1.1.1のARPを解決するためにはiosv-3→iosv-1でのARPが成功しなければならない。しかし、iosv-3,1は別セグメントにいるため理論的にはARPが失敗する。どうすればこの問題を解決できる?
A: iosv-2がiosv-1の代わりにiosv-3からのARPに応答している。
検証
コンフィグ
◎iosv-2のGigabitEthernet0/1(inside向きのインターフェース)でプロキシARPを無効にする。
iosv-2(config)#int gi0/1
iosv-2(config-if)#no ip proxy-arp
結果
pingが通らなくなる。
iosv-3#ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
パケットキャプチャで確認
- No.599からno ip proxy-arpが適用されている。
- No.237-238では10.1.1.1のARPに対してiosv-2(50:18:00:02:00:01)がリプライを送信していたが、プロキシARPの無効化により、リプライがなくなりNo.599以降ARPが解決できなくなっている。