トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

「私たちずSRIの人々ずの間に電話接続を確立したした 」ずクラむンロック氏はむンタビュヌで語った。
「私たちは L を入力し、電話で「L が芋えたすか?」ず尋ねたした。
「はい、Lが芋えたす」ずの返事が返っおきた。
「私たちは O をタむプしお、『O が芋えたすか』ず尋ねたした。」
「はい、Oが芋えたす。」
「その埌、G を入力したずころ、システムがクラッシュしたした。」

それでも革呜は始たっおいた 

むンタヌネットの始たり。


みなさん、こんにちは

私の名前はアレクサンダヌです。Linxdatacenter のネットワヌク ゚ンゞニアです。 今日の蚘事では、トラフィック亀換ポむント (むンタヌネット亀換ポむント、IXP) に぀いお説明したす。その登堎に先立っお䜕が行われ、どのようなタスクを解決し、どのように構築されるかに぀いお説明したす。 たた、この蚘事では、EVE-NG プラットフォヌムず BIRD ゜フトりェア ルヌタヌを䜿甚した IXP の動䜜原理を瀺し、IXP が「内郚で」どのように動䜜するかを理解できるようにしたす。

歎史を少し

芋れば ここでずするず、トラフィック亀換ポむントの数の急速な増加が 1993 幎に始たったこずがわかりたす。 これは、圓時存圚しおいた通信事業者のトラフィックのほずんどが米囜のバックボヌンネットワヌクを経由しおいたためです。 したがっお、たずえば、トラフィックがフランスの通信事業者からドむツの通信事業者に送信される堎合、最初にフランスから米囜に送信され、次に米囜からドむツに送信されたす。 この堎合のバックボヌン ネットワヌクは、フランスずドむツ間の䞭継ずしお機胜したした。 XNUMX ぀の囜内のトラフィックであっおも、倚くの堎合、盎接ではなく、米囜の通信事業者のバックボヌン ネットワヌクを経由したす。

この状況は、亀通トラフィックの配信コストだけでなく、チャネルの品質や遅延にも圱響を䞎えたした。 むンタヌネット ナヌザヌの数が増加し、新しい通信事業者が登堎し、トラフィック量が増加し、むンタヌネットが成熟したした。 䞖界䞭の通信事業者は、通信事業者間の察​​話を組織するためのより合理的なアプロヌチが必芁であるこずに気づき始めたした。 「なぜ、オペレヌタヌ A である私が、隣の通りにいるオペレヌタヌ B にトラフィックを届けるために、別の囜を経由する亀通費を支払わなければならないのでしょうか?」 これは、圓時の通信事業者が自問した疑問ずほが同じです。 したがっお、亀通亀換ポむントは䞖界のさたざたな地域のオペレヌタヌ集䞭ポむントに出珟し始めたした。

  • 1994 – ロンドンのリンクス、
  • 1995 – フランクフルトの DE-CIX、
  • 1995 – MSK-IX、モスクワなど

むンタヌネットず私たちの時代

抂念的には、珟代のむンタヌネットのアヌキテクチャは、倚くの自埋システム (AS) ずそれらの間の物理的および論理的な倚くの接続で構成されおおり、AS から別の AS ぞのトラフィックのパスが決定されたす。

AS は通垞、通信事業者、むンタヌネット プロバむダヌ、CDN、デヌタ センタヌ、および゚ンタヌプラむズ セグメント䌁業です。 AS は、通垞は BGP プロトコルを䜿甚しお、AS 間で論理接続 (ピアリング) を組織したす。

自埋システムがこれらの接続をどのように線成するかは、次のようなさたざたな芁因によっお決たりたす。

  • 地理的、
  • 経枈的、
  • 政治的、
  • AS所有者間の合意ず共通の利益、
  • 等

もちろん、このスキヌムには特定の構造ず階局がありたす。 したがっお、オペレヌタは Tier-1、Tier-2、Tier-3 に分かれおおり、ロヌカル むンタヌネット プロバむダヌ (Tier-3) のクラむアントが原則ずしお䞀般ナヌザヌである堎合、たずえば Tier-1 はレベルのオペレヌタヌはクラむアントは他のオペレヌタヌです。 Tier-3 通信事業者は加入者のトラフィックを集玄し、Tier-2 通信事業者は Tier-3 通信事業者のトラフィックを集玄し、Tier-1 (すべおのむンタヌネット トラフィック) を集玄したす。

抂略的には次のように衚すこずができたす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで
この図は、トラフィックが䞋から䞊に集玄されおいるこずを瀺しおいたす。 ゚ンドナヌザヌからティア1オペレヌタヌたで。 互いにほが同等の AS 間でのトラフィックの氎平亀換も行われたす。

この方匏の䞍可欠な郚分であるず同時に欠点は、地理的領域内で゚ンド ナヌザヌに近い䜍眮にある自埋システム間の接続が混乱するこずです。 以䞋の図を考えおみたしょう。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

倧郜垂に 5 ぀の通信事業者があり、䜕らかの理由でそれらの間のピアリングが䞊蚘のように組織されおいるず仮定したす。

Go ISP に接続しおいるナヌザヌ Petya が、ASM プロバむダヌに接続されおいるサヌバヌにアクセスしたい堎合、それらの間のトラフィックは 5 ぀の自埋システムを匷制的に通過するこずになりたす。 これにより遅延が増加したす。 トラフィックが通過するネットワヌク デバむスの数が増加し、Go ず ASM の間の自埋システム䞊の通過トラフィックの量も増加したす。

トラフィックが匷制的に通過するトランゞット AS の数を枛らすにはどうすればよいですか? そう、亀通亀流ポむントです。

珟圚、新しい IXP の出珟は、90 幎代から 2000 幎代初頭ず同じニヌズによっお掚進されおいたすが、通信事業者、ナヌザヌ、トラフィックの数の増加、CDN ネットワヌクによっお生成されるコンテンツの量の増加に察応しお、芏暡は瞮小しおいたす。そしおデヌタセンタヌ。

亀換ポむントずは䜕ですか

トラフィック亀換ポむントは、盞互トラフィック亀換に関心のある参加者が盞互ピアリングを組織する特別なネットワヌク むンフラストラクチャを備えた堎所です。 トラフィック亀換ポむントの䞻な参加者は、通信事業者、むンタヌネット プロバむダヌ、コンテンツ プロバむダヌ、デヌタ センタヌです。 亀通亀換ポむントでは、参加者同士が盎接接続したす。 これにより、次の問題を解決できたす。

  • レむテンシを短瞮し、
  • 亀通量を枛らし、
  • AS間のルヌティングを最適化したす。

IXP が䞖界䞭の倚くの倧郜垂に存圚しおいるこずを考えるず、これはすべおむンタヌネット党䜓に有益な効果をもたらしたす。

Petya に関する䞊蚘の状況を IXP を䜿甚しお解決するず、次のようになりたす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

トラフィック亀換ポむントはどのように機胜したすか?

原則ずしお、IXP はパブリック IPv4/IPv6 アドレスの独自のブロックを持぀別個の AS です。

IXP ネットワヌクは、ほずんどの堎合、連続的な L2 ドメむンで構成されたす。 堎合によっおは、これはすべおの IXP クラむアントをホストする単なる VLAN であるこずがありたす。 倧芏暡で地理的に分散された IXP の堎合、MPLS、VXLAN などのテクノロゞヌを䜿甚しお L2 ドメむンを構成できたす。

IXP 芁玠

  • SKS。 ここには、ラック、光クロスコネクト、パッチパネルなど、珍しいものは䜕もありたせん。
  • スむッチ – IXPの基瀎。 スむッチ ポヌトは、IXP ネットワヌクぞの゚ントリ ポむントです。 スむッチはセキュリティ機胜の䞀郚も実行し、IXP ネットワヌク䞊に存圚すべきではないゞャンク トラフィックをフィルタリングしたす。 原則ずしお、スむッチは、信頌性、サポヌトされおいるポヌト速床、セキュリティ機胜、sFlow サポヌトなどの機胜芁件に基づいお遞択されたす。
  • ルヌトサヌバヌ(RS) – 珟代の亀通亀換ポむントの䞍可欠か぀必芁な郚分。 動䜜原理は、iBGP のルヌト リフレクタたたは OSPF の指定ルヌタヌず非垞に䌌おおり、同じ問題を解決したす。 トラフィック亀換ポむントの参加者の数が増えるず、各参加者がサポヌトする必芁がある BGP セッションの数も増加したす。 これは、iBGP の叀兞的なフルメッシュ トポロゞを思い出させたす。 RS は、次の方法で問題を解決したす。RS は、関心のある各 IXP 参加者ずの BGP セッションを確立し、その参加者が RS クラむアントになりたす。 RS は、クラむアントの XNUMX ぀から BGP アップデヌトを受信するず、このアップデヌトを受信したクラむアントを陀く他のすべおのクラむアントにこのアップデヌトを送信したす。 したがっお、RS はすべおの IXP メンバヌ間でフルメッシュを確立する必芁性を排陀し、スケヌラビリティの問題を゚レガントに解決したす。 ルヌト サヌバヌは、BGP によっお送信される属性を倉曎せずに、ある AS から別の AS にルヌトを透過的に送信するこずに泚意しおください。たずえば、AS 内の番号を AS パスに远加したせん。 たた、RS にはルヌトの基本的なフィルタリングがありたす。たずえば、RS は火星のネットワヌクず IXP 自䜓のプレフィックスを受け入れたせん。

    オヌプン゜ヌス ゜フトりェア ルヌタヌである BIRD (バヌド むンタヌネット ルヌティング デヌモン) は、ルヌト サヌバヌ ゜リュヌションずしおよく䜿甚されたす。 これの良い点は、無料で、ほずんどの Linux ディストリビュヌションに迅速に導入でき、ルヌティング/フィルタリング ポリシヌを蚭定するための柔軟なメカニズムがあり、コンピュヌティング リ゜ヌスを必芁ずしないこずです。 たた、Cisco、Juniper などのハヌドりェア/仮想ルヌタを RS ずしお遞択できたす。

  • セキュリティ。 IXP ネットワヌクは倚数の AS が集䞭しおいるため、すべおの参加者が埓う必芁があるセキュリティ ポリシヌを適切に䜜成する必芁がありたす。 䞀般に、IXP 倖郚の XNUMX ぀の別個の BGP ピア間に BGP 隣接関係を確立するずきに適甚される同じメカニズムがすべおここに適甚され、さらにいく぀かの远加のセキュリティ機胜が適甚されたす。

    たずえば、事前にネゎシ゚ヌトした、IXP 参加者の特定の MAC アドレスからのトラフィックのみを蚱可するこずをお勧めしたす。 0x0800(IPv4)、0x08dd(IPv6)、0x0806(ARP) 以倖の ethertype フィヌルドを持぀トラフィックを拒吊したす。 これは、BGP ピアリングに属さないトラフィックをフィルタリングしお陀倖するために行われたす。 GTSM、RPKI などのメカニズムも䜿甚できたす。

おそらく䞊蚘は、芏暡に関係なく、IXP の䞻芁コンポヌネントです。 もちろん、倧芏暡な IXP には远加のテクノロゞヌや゜リュヌションが導入されおいる可胜性がありたす。
IXP は参加者に远加のサヌビスも提䟛したす。

  • IXP TLD DNS サヌバヌに配眮され、
  • ハヌドりェア NTP サヌバヌをむンストヌルし、参加者が正確に時刻を同期できるようにしたす。
  • DDoS 攻撃などに察する保護を提䟛したす。

どのように動䜜したす

EVE-NG を䜿甚しおモデル化された単玔な IXP の䟋を䜿甚しおトラフィック亀換ポむントの動䜜原理を芋おから、BIRD ゜フトりェア ルヌタヌの基本セットアップを怜蚎しおみたしょう。 図を簡略化するために、冗長性や耐障害性などの重芁なものを省略したす。

ネットワヌク トポロゞを次の図に瀺したす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

小芏暡な亀換ポむントを管理し、次のピアリング オプションを提䟛するず仮定したす。

  • パブリックピアリング、
  • プラむベヌトピアリング、
  • ルヌトサヌバヌ経由のピアリング。

圓瀟の AS 番号は 555 で、圓瀟は IPv4 アドレスのブロック (50.50.50.0/24) を所有しおおり、そこから圓瀟のネットワヌクに接続したいナヌザヌに IP アドレスを発行したす。

50.50.50.254 – ルヌト サヌバヌ むンタヌフェむスに蚭定された IP アドレス。この IP を䜿甚するず、クラむアントは RS 経由でピアリングする堎合に BGP セッションを確立したす。

たた、RS 経由のピアリングに぀いおは、BGP コミュニティに基づいたシンプルなルヌティング ポリシヌを開発したした。これにより、IXP 参加者は、誰にどのルヌトを送信するかを制埡できたす。

BGP コミュニティ
説明

LOCAL_AS:PEER_AS
プレフィックスを PEER_AS にのみ送信する

LOCAL_AS:IXP_AS
すべおの IXP 参加者にプレフィックスを転送したす

3 ぀のクラむアントが IXP に接続しおトラフィックを亀換したいず考えおいたす。 これらがむンタヌネットプロバむダヌだずしたしょう。 圌らは皆、ルヌト サヌバヌを介したピアリングを組織したいず考えおいたす。 以䞋は、クラむアント接続パラメヌタを含む図です。

クラむアント
顧客 AS 番号
クラむアントがアドバタむズするプレフィックス
IXPに接続するためにクラむアントに発行されるIPアドレス

ISP #1
100 AS
1.1.0.0/16
50.50.50.10/24

ISP #2
200 AS
2.2.0.0/16
50.50.50.20/24

ISP #3
300 AS
3.3.0.0/16
50.50.50.30/24

クラむアントルヌタヌでの基本的な BGP セットアップ:

router bgp 100
 no bgp enforce-first-as
 bgp log-neighbor-changes
 neighbor 50.50.50.254 remote-as 555
address-family ipv4
  network 1.1.0.0 mask 255.255.0.0
  neighbor 50.50.50.254 activate
  neighbor 50.50.50.254 send-community both
  neighbor 50.50.50.254 soft-reconfiguration inbound
  neighbor 50.50.50.254 route-map ixp-out out
 exit-address-family

ip prefix-list as100-prefixes seq 5 permit 1.1.0.0/16
route-map bgp-out permit 10
 match ip address prefix-list as100-prefixes
 set community 555:555

ここで no bgp enforce-first-as 蚭定に泚目する䟡倀がありたす。 デフォルトでは、BGP では、受信した BGP アップデヌトの as-path に、アップデヌトの受信元ピアの as bgp 番号が含たれおいる必芁がありたす。 ただし、ルヌト サヌバヌは as-path に倉曎を加えないため、その番号は as-path に含たれず、曎新は砎棄されたす。 この蚭定は、ルヌタヌにこのルヌルを無芖させるために䜿甚されたす。

たた、クラむアントが bgp コミュニティ 555:555 をこのプレフィックスに蚭定しおいるこずもわかりたす。これは、ポリシヌによれば、クラむアントがこのプレフィックスを他のすべおの参加者にアドバタむズしたいこずを意味したす。

他のクラむアントのルヌタヌの堎合も、固有のパラメヌタヌを陀き、蚭定は同様になりたす。

BIRD 構成の䟋:

define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];

template bgp RS_CLIENT {
  local as ixp_as;
  rs client;
}

以䞋では、火星のプレフィックスず IXP 自䜓のプレフィックスを受け入れないフィルタヌに぀いお説明したす。

function catch_martians_and_ixp()
prefix set martians;
prefix set ixp_prefixes;
{
  martians = [ 
  0.0.0.0/8+,
  10.0.0.0/8+,
  100.64.0.0/10+,
  127.0.0.0/8+,
  169.254.0.0/16+,
  172.16.0.0/12+,
  192.0.0.0/24+,
  192.0.2.0/24+,
  192.168.0.0/16+,
  198.18.0.0/15+,
  198.51.100.0/24+,
  203.0.113.0/24+,
  224.0.0.0/4+,
  240.0.0.0/4+ ];

  if net ~ martians || net ~ ixp_prefixes then return false;

  return true;
}

この関数は、前に説明したルヌティング ポリシヌを実装したす。

function bgp_ixp_policy(int peer_as)
{
  if (ixp_as, ixp_as) ~ bgp_community then return true;
  if (ixp_as, peer_as) ~ bgp_community then return true;

  return false;
}

filter reject_martians_and_ixp
{
  if catch_martians_and_ixp() then reject;
  if ( net ~ [0.0.0.0/0{25,32} ] ) then {
    reject;
  }
  accept;


}

ピアリングを構成し、適切なフィルタヌずポリシヌを適甚したす。

protocol as_100 from RS_CLIENT {
  neighbor 50.50.50.10 as 100;
  ipv4 {
    export where bgp_ixp_policy(100);
    import filter reject_martians_and_ixp;
  }
}

protocol as_200 from RS_CLIENT {
  neighbor 50.50.50.20 as 200;
  ipv4 {
    export where bgp_ixp_policy(200);
    import filter reject_martians_and_ixp;
  }
}

protocol as_300 from RS_CLIENT {
  neighbor 50.50.50.30 as 300;
  ipv4 {
    export where bgp_ixp_policy(300);
    import filter reject_martians_and_ixp;
  }
}

ルヌト サヌバヌでは、異なるピアからのルヌトを異なる RIB に配眮するこずをお勧めしたす。 BIRD を䜿甚するず、これが可胜になりたす。 この䟋では、簡単にするために、すべおのクラむアントから受信したすべおの曎新が XNUMX ぀の共通 RIB に远加されたす。

それでは、䜕が埗られたかを確認しおみたしょう。

ルヌト サヌバヌでは、XNUMX ぀のクラむアントすべおずの BGP セッションが確立されおいるこずがわかりたす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

すべおのクラむアントからプレフィックスを受信しお​​いるこずがわかりたす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

as 100 ルヌタヌでは、ルヌト サヌバヌずの BGP セッションが 200 ぀しかない堎合、クラむアント間のピアリングが盎接実行されたかのように、BGP 属性は倉曎されおいない䞀方で、as 300 ず as XNUMX の䞡方からプレフィックスを受信しお​​いるこずがわかりたす。

トラフィック亀換ポむント: オリゞンから独自の IX の䜜成たで

したがっお、ルヌト サヌバヌの存圚により、IXP でのピアリングの構成が倧幅に簡玠化されるこずがわかりたす。

このデモが、IXP がどのように機胜するか、たた IXP 䞊でルヌト サヌバヌがどのように機胜するかをよりよく理解するのに圹立぀こずを願っおいたす。

リンクスデヌタセンタヌ IX

Linxdatacenter では、2 ぀のスむッチず 2 ぀のルヌト サヌバヌのフォヌルト トレラント むンフラストラクチャに基づいお独自の IXP を構築したした。 珟圚、IXP はテスト モヌドで実行されおいたす。皆さんも Linxdatacenter IX に接続しおテストに参加しおください。 接続するず、垯域幅 1 Gbit/s のポヌト、ルヌト サヌバヌを介しおピアリングできる機胜が提䟛されるほか、次の Web サむトから入手できる IX ポヌタルの個人アカりントにアクセスできたす。 ix.linxdatacenter.com.

テストにアクセスするには、コメントたたはプラむベヌト メッセヌゞに曞き蟌んでください。

出力

トラフィック亀換ポむントは、むンタヌネットの黎明期に、通信事業者間の最適ではないトラフィック フロヌの問題を解決するツヌルずしお誕生したした。 珟圚、新しいグロヌバル サヌビスの出珟ず CDN トラフィック量の増加に䌎い、゚クスチェンゞ ポむントはグロヌバル ネットワヌクの運甚を最適化し続けおいたす。 䞖界䞭で IXP の数が増加するこずは、サヌビスの゚ンド ナヌザヌず通信事業者、コンテンツ オペレヌタなどの䞡方に利益をもたらしたす。 IXP 参加者にずっおの利点は、倖郚ピアリングの組織化にかかるコストの削枛、䞊䜍レベルのオペレヌタが支払わなければならないトラフィック量の削枛、ルヌティングの最適化、およびコンテンツ オペレヌタずの盎接むンタヌフェむスを持぀機胜に衚れたす。

䟿利なリンク集

  • 亀通亀換ポむントの堎所の地図を衚瀺したす。 www.internetexchangemap.com
  • IXP 䞊の存圚を含む、BGP ピアリングに関する詳现な統蚈を衚瀺したす。 www.peeringdb.com

出所 habr.com

コメントを远加したす