マルチホームとは
マルチホームとは、単一のネットワークが複数のインターネットサービスプロバイダー(ISP)やネットワーク接続を利用してインターネットに接続することを指します。これにより、ネットワークの冗長性や信頼性、可用性が向上します。
マルチホームの特徴と利点
- 冗長性の向上:
- 一方のISPが障害を起こした場合でも、他方のISP経由でインターネット接続が維持されます。
- 可用性の向上:
- 複数のISPを使用することで、ネットワークの可用性が高まります。特に重要なサービスを提供する企業にとっては、ダウンタイムを最小限に抑えることができます。
- トラフィックの負荷分散:
- トラフィックを複数のISPに分散することで、各接続の負荷が軽減され、ネットワーク全体のパフォーマンスが向上します。
- コスト効率:
- ISP間の競争を利用して、より良い価格やサービスを引き出すことができます。
マルチホームの実装方法
- 複数のISPとの契約:
- ネットワークを複数のISPに接続するために、それぞれのISPと契約を結びます。
- ルーティングプロトコルの設定:
- BGP(Border Gateway Protocol)を使用して、各ISPとのルーティング情報を交換します。
- BGPを使用することで、最適なルートを選択し、ネットワークの冗長性と可用性を高めます。
- ネットワーク機器の設定:
- ルーターやスイッチに適切な設定を行い、ISPごとの接続を管理します。
- 各ISPとのBGPセッションを設定し、ルートフィルタリングやポリシーを設定することで、トラフィックの管理を行います。
BGPのマルチホーミング設定例

自分自身のAS内で生成されたルートのみをアドバタイズ
1.BGPの基本設定
BGPプロセスをAS番号300で開始し、ネットワーク10.1.0.0と10.2.0.0をBGPルーティングテーブルに追加します。これにより、これらのネットワークが他のBGPピアにアドバタイズされるようになります。
Router(config)# router bgp 300
Router(config-router)# network 10.1.0.0
Router(config-router)# network 10.2.0.0
2.BGPピアの設定
SP-AとSP-Bに対してBGPピアを確立します。
Router(config-router)# neighbor 10.10.10.10 remote-as 100
Router(config-router)# neighbor 10.20.20.20 remote-as 200
3.ルートマップの適用
BGPピアに対してルートをアドバタイズするとき、localonlyというルートマップを適用します。
Router(config-router)# neighbor 10.10.10.10 route-map localonly out
Router(config-router)# neighbor 10.20.20.20 route-map localonly out
Router(config-router)# exit
4.AS-Pathアクセスリストの設定
AS-Pathアクセスリストを作成し、空のASパス(^$)に一致するルートだけを許可します。空のASパスというのは、自分のASで生成されたルート、すなわち外部ASから学習されたルートではなく、自分のAS内のルートであることを示します。
Router(config)# ip as-path access-list 10 permit ^$
5.ルートマップの設定
ルートマップlocalonlyは、AS-Pathアクセスリスト10に一致するルート(つまり、ASパスが空のルート)だけをピアにアドバタイズします。
Router(config)# route-map localonly permit 10
Router(config-route-map)# match as-path 10
自分のAS(AS300)で発生したルートだけを外部ピアにアドバタイズ
SPから発信されたものではないものを除外し、SPから学習したルートをフィルタリングするために使用します。
1.BGPの基本設定
BGPプロセスをAS番号300で開始し、ネットワーク10.1.0.0と10.2.0.0をBGPルーティングテーブルに追加します。これにより、これらのネットワークが他のBGPピアにアドバタイズされるようになります。
Router(config)# router bgp 300
Router(config-router)# network 10.1.0.0
Router(config-router)# network 10.2.0.0
2.BGPピアの設定
SP-AとSP-Bに対してBGPピアを確立し、それぞれルートマップを適用します。
Router(config-router)# neighbor 10.10.10.10 remote-as 100
Router(config-router)# neighbor 10.10.10.10 route-map localonly out
Router(config-router)# neighbor 10.10.10.10 route-map as100only in
Router(config-router)# neighbor 10.20.20.20 remote-as 200
Router(config-router)# neighbor 10.20.20.20 route-map localonly out
Router(config-router)# neighbor 10.20.20.20 route-map as200only in
Router(config-router)# exit
3.AS-Pathアクセスリストとルートマップの設定
自分のAS(AS300)内で生成されたルートだけをアドバタイズし、他のルートはアドバタイズしないようにするための設定
Router(config)# ip as-path access-list 10 permit ^$
Router(config)# route-map localonly permit 10
Router(config-route-map)# match as-path 10
Router(config-route-map)# exit
AS-Pathアクセスリスト10は、ASパスが空(つまり、自分のAS内で生成されたルート)であるルートのみを許可します。route-map localonlyに適用され、ピアにアドバタイズするルートを制御します。
4.ピアから特定のルートを受信する設定
- AS-Pathアクセスリスト20は、AS100から直接発信されたルートのみを受信するためのフィルタです。
- AS-Pathアクセスリスト30は、AS200から直接発信されたルートのみを受信するためのフィルタです。
- それぞれのピアに対して、対応するルートマップを**インバウンド(in)**で適用することで、AS100やAS200からの特定のルートのみを受信します。
Router(config)# ip as-path access-list 20 permit ^100$
Router(config)# route-map as100only permit 10
Router(config-route-map)# match as-path 20
Router(config-route-map)# exit
Router(config)# ip as-path access-list 30 permit ^200$
Router(config)# route-map as100only permit 10
Router(config-route-map)# match as-path 30
Router(config-route-map)# exit
5.デフォルトルートの設定
ルートマップlocalonlyは、AS-Pathアクセスリスト10に一致するルート(つまり、ASパスが空のルート)だけをピアにアドバタイズします。
Router(config)# ip route 0.0.0.0 0.0.0.0 10.10.10.10
Router(config)# ip route 0.0.0.0 0.0.0.0 10.20.20.20
デフォルト ルートだけを受信するための設定
ルータにはデフォルトルートだけを受信させ、SP-AおよびSP-Bからの他のネットワークは受信させないようにするため、デフォルトルートだけを許可し、他のすべてのBGPアップデートを拒否します。
1.BGPの基本設定
BGPプロセスをAS番号300で開始し、ネットワーク10.1.0.0と10.2.0.0をBGPルーティングテーブルに追加します。これにより、これらのネットワークが他のBGPピアにアドバタイズされるようになります。
Router(config)# router bgp 300
Router(config-router)# network 10.1.0.0
Router(config-router)# network 10.2.0.0
2.BGPピアの設定
SP-AとSP-Bに対してBGPピアを確立し、それぞれルートマップを適用します。
Router(config-router)# neighbor 10.10.10.10 remote-as 100
Router(config-router)# neighbor 10.10.10.10 route-map localonly out
Router(config-router)# neighbor 10.10.10.10 prefix-list ABC in
Router(config-router)# neighbor 10.20.20.20 remote-as 200
Router(config-router)# neighbor 10.20.20.20 route-map localonly out
Router(config-router)# neighbor 10.20.20.20 prefix-list ABC in
Router(config-router)# exit
- ピア1(IPアドレス
10.10.10.10、AS100)とピア2(IPアドレス10.20.20.20、AS200)にBGPセッションを確立しています。 - ピア1およびピア2に対して、**アウトバウンドのルートマップ
localonly**を適用しています。このルートマップは、特定のルート(ASパスが空のルート、自分のASで生成されたルート)のみをアドバタイズするためのものです。 - **インバウンドのプレフィックスリスト
ABC**を適用し、受信するルートをデフォルトルート(0.0.0.0/0)のみに制限しています。
3.プレフィックスリストの設定
Router(config)#ip prefix-list ABC seq 5 permit 0.0.0.0/0
**プレフィックスリストABC**は、**デフォルトルート(0.0.0.0/0)**のみを許可するリストです。このリストをインバウンドに適用することで、ピア1およびピア2から受信するルートはデフォルトルートのみに制限されています。