二つの会社、一回の握手
あなたの店は、ある通信会社とインターネット接続を契約しています。ホスティング会社は、別の通信会社と契約しています。別々の組織です。
互いに、どのアドレスへ行けるかを伝え合わなければなりません。ただし、自分の網の中身を全部見せる必要はありません。
この会話のためのプロトコルがBGPで、インターネット全体を支えています。
このレッスンのゴール
メモ
二つのネットワークがBGPで経路を共有する仕組みを説明できる。
重要な言葉
| ことば | いみ | れい |
|---|---|---|
| 自律システム | 一つの方針で運用する、一つの組織のネットワーク | AS 65001 |
| AS番号 | 自律システムを区別する番号 | |
| BGPセッション | 経路を運ぶ、BGPの隣同士の接続 | |
| 広告 | 自分が行けるネットワークを、隣に知らせること | |
| ASパス | 経路が通ってきた自律システムの並び | |
| ローカルプリファレンス | 経路を好む度合いを表す、自分で決める数。大きいほど勝つ |
学生が入力するセルは、このプレビューでは空白です。
インターネットは自律システムの集まり
自律システムは、一つの組織のネットワークです。通信会社、大学、大きな会社などがそうで、それぞれにAS番号があります。
自律システムの中ではOSPFのようなプロトコルが道を探し、システムの間ではBGPが経路を運びます。
64512から65534までの番号は非公開用です。練習や、インターネットに出ない網で使います。
ルーター同士がセッションを張る
BGPのルーター同士は、ふつうのTCPの179番ポートでBGPセッションを開きます。このとき、互いにAS番号を名乗ります。
番号が違えば組織の間の外部セッション、同じなら組織の中の内部セッションです。
セッションが確立すると、広告するネットワークを交換します。
r1にBGPセッションを聞く
sudo vtysh -N r1 -c "show bgp summary"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
BGPなしのr1の表を読む
sudo vtysh -N r1 -c "show ip route"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
r1が待ち受けるポートを並べる
sudo ip netns exec r1 ss -ltnここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
三つの答えが言うこと
最初の実行は % BGP instance not found を出します。プログラムは動いていますが、AS番号を持つBGPルーターを誰も作っていません。
次の実行は、直接つながった経路とルーター自身のアドレスを並べます。BGPで学んだ経路を表す B の行はありません。
三つ目の実行は、待ち受けているポートを四つ並べます。どれも 127.0.0.1 上の、ルーター自身のコンソールです。179番はありません。
言われたものだけを広告する
BGPは、知っている経路を全部は共有しません。持ち主が許したネットワークだけを広告します。
ここがBGPの要です。世界から自分の網のどこへ行けるかを、組織が自分で決めます。
非公開のネットワークは、広告しないだけで外から見えなくなります。
例: ある会社の広告
| ネットワーク | 中身 | 広告する? |
|---|---|---|
| 203.0.113.0/24 | 公開しているウェブサーバー | する |
| 198.51.100.0/24 | 公開しているメールサーバー | する |
| 10.50.0.0/16 | 社内のノートPC。非公開 | しない |
| 172.20.0.0/16 | 建物の監視カメラ。非公開 | しない |
学生が入力するセルは、このプレビューでは空白です。
経路は決まりの順で選ぶ
ルーターは、同じネットワークへの経路を、何人もの隣から聞くことがあります。その中から、順番に決まりを当てて一つ選びます。
まず、ASパスに自分のAS番号が入っている経路を捨てます。ぐるりと戻ってきた経路だからです。
次にローカルプリファレンスが一番大きいものが勝ちます。同じなら、ASパスが短い方が勝ちます。
本物のルーターは、この後にもいくつか決まりを当てます。このレッスンでは、最後の決まりを簡単にして、隣のアドレスが小さい方を勝ちとします。
例: 一つの先への三つの経路
| 聞いた相手 | プリファレンス | ASパス | 結果 |
|---|---|---|---|
| 隣A | 100 | 65002 65010 | Bに負ける。同点でパスが長い |
| 隣B | 100 | 65003 | Aに勝つ。同点でパスが短い |
| 隣C | 200 | 65004 65005 65006 | 全体で勝つ。プリファレンスが最大 |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
「BGPは一番速い道を選ぶ」と思う人が多いです。BGPは速さを知りません。持ち主の好みに従い、その次に自律システムの数を数えます。ASパスが短くても、遅い回線かもしれません。
発展: もう一つの決まり
隣は経路にMEDという数を付けることがあります。自分のどのリンクを使ってほしいかを伝える数で、小さいほどよい値です。
best_route を写し、この決まりを足しましょう。ASパスの決まりの後で、med が小さい経路が勝ちます。med のキーが無い経路は0とします。
プリファレンスもパスの長さも同じで、med だけが違う二つの経路のテストを一つ書きましょう。