エッジ上のユニキャストRPF


10

ユニキャストRPFは、許可されるべきものとは異なる送信元アドレスを防止することになっています。URPFに関するシスコのドキュメントを読んでいるときに、ルーティングテーブルを通過させることにより、アップリンクインターフェイスで使用できるようにするオプションがあることに気付きました。

私の質問は、それがデフォルトルートを経由する場合、すべての送信元アドレスが許可されるわけではないということです。その時点でURPFはどのようなメリットをもたらしますか?

私は何かが欠けていると確信しているので、私は本当に正しい方向にポイントが欲しいです。

回答:


15

ユニキャストリバースパスフォワーディング(RPF)は3つの異なるモードで機能し、特にスプーフィングされたIPアドレスからのルーターの攻撃ベクトルを減らすのに役立つ可能性があります。

厳格モード

(config-if)#ip verify unicast source reachable-via rx

厳密モードでは、ルーターは着信パケットの送信元IPアドレスを検査して、一致するルートの転送情報ベース(FIB)テーブルと照合します。その送信元IPアドレスへのルートが、それが受信されたインターフェイスを介して到達可能である場合、パケットは受信されます。デフォルトでは、デフォルトルートはストリクトモードでは考慮されません(上記で設定)。

厳格モードのオプション:

特定のインターフェイスでユニキャストRPFストリクトモードを設定すると、ルータはそのインターフェイスで自分自身をpingできなくなります。

#sh ip int bri | ex unas|Int
FastEthernet0/0            11.0.11.1

#ping 11.0.11.1                                    
.....
Success rate is 0 percent (0/5)

URPFドロップパケットの確認:

#show ip int fa0/0 | i ^  [1-9]+ verification drops
     5 verification drops
#show ip traffic | i unicast
     0 no route, 5 unicast RPF, 0 forced drop

この動作は、allow-self-ping構文を追加することで変更できます。

(config-if)#ip verify unicast source reachable-via rx allow-self-ping

さらに、質問で述べたように、ストリクトモードでは、着信パケットの送信元IPアドレスをデフォルトルートに対してチェックできます。これは次の構文で有効になりますallow-default

ストリクトモードでは、構文を追加allow-defaultするだけで、受信したものとは異なるインターフェイスを経由するルートを持つ着信パケットの送信元IPアドレスからの受信のみが防止されます。これは、ルータにアクセスリストまたはヌルルートが設定されていないことを前提としています。受信したインターフェイスから到達可能なすべてのルーティング可能な送信元アドレスは、特定のルートまたはデフォルトルートと一致します。

ただし、nullルートを使用する場合、URPFチェックがデフォルトルートに到達する前に、最も具体的なルートが最初に評価され、既知の悪意のあるIP範囲のブラックリストとして機能します。

-3.0.0.0/8から送信されたすべてのトラフィックは、URPFチェックによってドロップされます。

(config-if)#ip verify unicast source reachable-via rx allow-default
(config)#ip route 3.0.0.0 255.0.0.0 null 0

Bad-Source-RTR#ping 11.0.11.1 so l1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.0.11.1, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3 
.....
Success rate is 0 percent (0/5)

さらに、allow-default構文を追加する代わりに、アクセス制御リスト(ACL)を指定して、許可および拒否されるアドレスの構造化リストを作成できます。受信したインターフェイスから到達可能で、定義されたACLで一致するアドレスは、それに応じてドロップまたは許可されます。

!
access-list 23 permit 3.0.0.0 0.255.255.255
access-list 23 deny   4.0.0.0 0.255.255.255 log
access-list 23 permit any
!
(config)#int fa0/0                                 
(config-if)#ip verify unicast source reachable-via rx 23

最後に、allow-default構文でACLを指定できますが、効果はありません。パケットは、allow-defaultオプションで指定されたACLに対してチェックされません。

#ip verify unicast source reachable-via rx allow-default ? 
  <1-199>          A standard IP access list number
  <1300-2699>      A standard IP expanded access list number

ルーズモード

R1(config-if)#ip verify unicast source reachable-via any

ルーズモードでは、ルーターは着信パケットの送信元IPアドレスを検査し、一致するルートのFIBテーブルと照合します。その送信元IPアドレスへのルートに到達できる場合、パケットが受信されたインターフェイスに関係なく、パケットを受信できますデフォルトでは、デフォルトルートはルーズモードでは考慮されません(上記で構成)。

ルーズモードとストリクトモードには、同様の構成オプションがあります。主な違いは、使用される構文(anyrx)と、受信パケットのソースIPアドレスが、それが受信されたインターフェースを介して到達可能かどうかです。

(config-if)#ip verify unicast source reachable-via any ?
  <1-199>          A standard IP access list number
  <1300-2699>      A standard IP expanded access list number
  allow-default    Allow default route to match when checking source address
  allow-self-ping  Allow router to ping itself (opens vulnerability in
                   verification)

VRFモード

VRFモードは、特定のVRFでルーズモードまたはストリクトモードのいずれかを利用でき、eBGPネイバー用に設定されたVRFテーブルに対して着信パケットの送信元IPアドレスを評価します。


参考資料:
Cisco URPFホワイトペーパー
ユニキャストReverse Path Forwarding
URPF構成ガイドについて


実用化はどうですか?それをアップリンクに配置することは本当に意味がありますか/違いがありますか?
codey、2013

3
@codey私は、アップリンクではuRPFを実行せず、顧客向けのインターフェイスでのみ実行します。one.time、+ 1、いい仕事、確かな回答、一部のCisco以外のプラットフォームではnull0へのスタティックルートが原因で「ルーズ」モードが失敗しないことを指摘したいと思います。おそらく「返信済み」の代わりに「受信」を使用する必要があります。つまり、RPFに失敗したパケットは受信されません。また、「against routing-table」(RIB)を「against forwarding-table」(FIB)に変更する必要がある場合もあります。「実現可能なルーズ/ストリクト」と呼ばれるuRPFのフレーバーがあるため、RIBに対してチェックします(シスコはこれをサポートしていないため、FIBに対してのみチェックします)。
ytti、2013

@yttiシスコのドキュメントを調べたところ、ルーティングテーブルに反するだけでした。私はそれが正しいと言っているわけではありませんが、もしそれが単なるFIBであるならば、彼らがそう言うのは奇妙です。
codey、2013

お客様がBGPプレフィックス192.0.2.0/24を発表した場合を想像してみてください。これには、コアを指す静的ルートもあります。カスタマーインターフェイスにuRPF / strictがある場合、送信元アドレスが192.0.2.42のカスタマーからのパケットをドロップしますが、RIB(ルーティングテーブル)にこのエントリが存在しても、それは/ best /エントリではなく、そのためFIBにはありません。ただし、「uRPF / strict feasible」を実行した場合、パケットはドロップされません(JunOSは実行可能であるため、ドキュメントに追加情報が記載されています)。
ytti、2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.