show log include yuh

勉強したことの復習を兼ねて、IT関係(ネットワーク/サーバ/アプリケーション)についてまとめてます。たまに趣味のこと

スポンサーリンク

Juniper を用いたIPv6 BGP設定の注意【invalid destination {ipv6 address} for family inet error: configuration check-out failed】

概要

BGPを設定する際、基本的に大まかに以下をおこなう必要があります。
1. IGPプロトコルを自ASで動かす
2. ループバックアドレスでフルメッシュorルートリフレクターを用いてiBGPでピアを貼る
3.他ASとeBGPで経路を交換する
今回はこれに加えて集約した経路を他ASに広告することをIPv6で実施します。

IPv6の許可

実はIPv6を扱う際にここでつまずきました。fireflyではIPv6通信は許可されていないようため、IPv6の通信がダイレクトピアすら繋がりませんでした。 以下のコマンドで現状について確認します。
show security flow status

結果がInet6 forwarding modedropになっている。 つまり現在の状態ではIPv6通信は使えない。 www.juniper.net

このコマンドで有効化できます。
set security forward-options family inet6 mode packet-based  

BGP経路配信

今回は1と2が完了していることを前提とし、外部へ指定した経路を広告する部分から記載します。 ユニークローカルアドレスのfc00::/48を配信します

指定した経路を広告するポリシーを定義する

Juniper ではBGPの設定をポリシーで定義します。
※BGP-OUT-v6 は定義したポリシー名
set policy-options policy-statement BGP-OUT-v6 term 10 from route-filter fc00::/48 exact
set policy-options policy-statement BGP-OUT-v6 term 10 then accept

定義したポリシーをBGPに反映

set protocol bgp group iBGP-v6 export BGP-OUT-v6

スタティック経路で意図した経路を作成する

BGPでポリシーを定義しても、自分自身のルーティングテーブルにない経路は配信されません。そのためスタティックでブラックホール経路を作成します。
set routing-options static route fc00::/48 discard
上記でcommitしようとすると...
このアドレスは間違っているからルーティングテーブルに登録できないと出ている。 つまりipv4ipv6ではルーティングテーブルが違うから、v6ならちゃんと指定して入力しろってことのようだ。 www.juniper.net

IPv6 のルーティングテーブルにスタティックルートを登録

set routing-options rib inet6.0 static route fc00::/48 discard
これならcommitが通る

確認

show route
意図した経路(fc00::/48)が他のルータで見えていれば成功になります。