初めに
サービスプロバイダーは多数のユーザと接続するため、クラッカーからの攻撃を受けやすい。例えば、BGPピアを偽装した機器を接続され、悪意のある経路を流される事がある。これによって、誤った経路へパケットを流してしまったり、大量の経路を流されるDDoS攻撃を受けてしまう。
これを防ぐためのBGPのMaximum-Prefixというセキュリティ対策を行う。
Maximum-Prefixとは
クラッカーは偽のプレフィックスを流す事で、経路を誘導したり、攻撃対象ルータのCPUやメモリの無駄な消費をさせる。
企業側はこの攻撃に対し、BGPネイバーから受け取るプレフィックス数に制限を設ける事で対処する。
設定コマンド
BGPネイバーに対し、Maximum-Prefixを設定するコマンドは以下となる。
router bgp <AS>
neighbor <IP-Address>
address-family [ipv4|ipv6] unicast
maximum prefix <MaxPrefix-Number> [threshold]
!
!
受信経路が上限数(<MaxPrefix-Number>)を超過すると、BGPネイバーを強制的にダウンさせる。
※threshold(閾値)は0~100[%]で指定する。(デフォルト値は75[%])
閾値を超過すると警告(Warning)が表示される。
また、プレフィックス数の端数は切り上げて整数値となる。
検証
目的
Maximum-Prefixの設定例を学習する。
物理構成図
ダウンロードはこちら
論理構成図
IGP

注意点
- OSFPのプロセスIDは1とする
また、エリア0のシングルエリアとする - OSPFのLoopback0はPassive IFとする
- OSPFのネットワークタイプはP-to-Pとする
BGP

- R1のAS番号は”1″, R3のAS番号は”3″とする
- R1とR3は互いにLoopback0でeBGPネイバーを指定する
- R1とR3に対し、ebgp multihopは255を設定せよ
- R1及びR3のBGPネイバーに対し、in/out両方のルートポリシーを設定してはならない
- R3はLoopback1の全アドレスをBGPで広報する
アドレス設計

注意点
- 全ルータはLoopback0を持っており、アドレスはX.X.X.X/32とする (Xはルータの添え字)
- R3はLoopback1を持っており、10.10.10.10/32をPrimary Addressとし、残りの4つ(20.20.20.20/32, 30.30.30.30/32, 40.40.40.40/32, 50.50.50.50/32)はSecondary Addressとする。
- 物理IFのアドレスは192.168.YZ.X/24とする (Xはルータの添え字、Yはリンクを構成するルータの若番、Zはリンクを構成するルータの老番)
初期コンフィグ
R1
conf t
!
hostname R1
!
int lo 0
ipv4 add 1.1.1.1/32
!
int gi0/0/0/0
ipv4 add 192.168.12.1/24
no sh
!
router ospf 1
area 0
int lo 0
passive
!
int gi0/0/0/0
net point-to-point
!
!
!
router bgp 1
bgp unsafe-ebgp-policy
!
add ipv4 uni
soft-reconfiguration inbound always
!
neighbor 3.3.3.3
remote-as 3
update-source lo0
ebgp-multihop 255
add ipv4 uni
!
!
!
R2
conf t
!
hostname R2
!
int lo 0
ipv4 add 2.2.2.2/32
!
int gi0/0/0/0
ipv4 add 192.168.12.2/24
no sh
!
int gi0/0/0/1
ipv4 add 192.168.23.2/24
no sh
!
router ospf 1
area 0
int lo 0
passive
!
int gi0/0/0/0
net point-to-point
!
int gi0/0/0/1
net point-to-point
!
!
!
R3
conf t
!
hostname R3
!
int lo 0
ipv4 add 3.3.3.3/32
!
int lo 10
ipv4 add 10.10.10.10/32
ipv4 add 20.20.20.20/32 secondary
ipv4 add 30.30.30.30/32 secondary
ipv4 add 40.40.40.40/32 secondary
ipv4 add 50.50.50.50/32 secondary
!
int gi0/0/0/1
ipv4 add 192.168.23.3/24
no sh
!
router ospf 1
area 0
int lo 0
passive
!
int gi0/0/0/1
net point-to-point
!
!
!
router bgp 3
bgp unsafe-ebgp-policy
!
add ipv4 uni
net 10.10.10.10/32
net 20.20.20.20/32
net 30.30.30.30/32
net 40.40.40.40/32
net 50.50.50.50/32
!
neighbor 1.1.1.1
remote-as 1
update-source lo0
ebgp-multihop 255
add ipv4 uni
!
!
!
初期状態
“show bgp ipv4 unicast neighbor <neighbor-IP> received routes”コマンドより、R1がR3から受け取っている経路を以下に示す。

問題
問1. R1がR3から受信する経路の上限数を3つにし、閾値50%となる制限をかけよ。また、Alartログが表示されることを確認せよ
問2. 問1の設定から、受信する経路の上限数を7つに変更し、Warningログが表示される事を確認せよ。
コメント