設問1
(3)同じレイヤー2のネットワークを持つすべてのリモートVTEPに転送するため

これは、要は、L2におけるフラッディングをL3上で再現するための仕組みである。なお、ここではEVPNを使っていないので、このような面倒くさいタスクが必要になる。
▼EVPNを使わないときのアドレス解決
1.VTEP-A配下のVM1がIPアドレス10.0.0.100のMACアドレスを知りたいと思いARP要求
2.仮想L2スイッチはARPテーブルを持っていないので、適切なVLNAタグが付与してVTEP-Aに届ける
3.VTEP-AはVLANからVNIを割り出す。そしてVNIに対応するマルチキャストアドレスをセットしてL3ネットワークに送信する
*EVPNがないと、以前にVM100と通信指定も保持できる情報は、「外側のリモートVTEPのIPアドレスとVMのMACアドレスのみ」であるため、過去にVTEP-AがVM100と通信していてもVTEP-Aが直接ARP応答を返すことはできない。
*VNIとVLAN IDのマッピングはEVPNがないと、管理者が手動で設定しなければならない。
4.マルチキャストが当該グループに属するすべてのVTEPに届き、当該VNIに対応するVLAN IDに属するポートへ流す
5.物理サーバNICから仮想L2スイッチまで届き、当該VLANに属するVMに転送する
6.VMに届き、自分のIPであればARP応答を返し、自分のIPでなければ破棄をする
*この流れからわかる通り、EVPNがない場合は関係のないパケットが下流のVMまで届いてしまうので無駄が多い。例えば、VM自体のCPU,仮想L2スイッチのCPU、物理サーバまでの帯域など、消費する必要のないものを消費してしまっているので非効率と言わざるを得ない。
設問2
(1)d:LSDB e:最短経路

d:LSDB
同一エリア内で同一リンク情報を同期させたデータベース
e:最短経路
最短経路ツリーの別解としてはSPF(ShortestPathFirst)ツリーも有効。
(3)複数ある経路のそれぞれの経路について、コストの合計値を同じ値にする

ECMP(Equal-Cost-Multi-Path)とは「宛先までの合計コストが同一&複数のネクストホップがある」という2つの条件をみたした経路では、ルーティングテーブルに登録され、負荷分散が可能になる。
*通常のルーティングテーブルには宛先に対して1つのネクストホップしか登録されないのが常。しかし、ECMPでは1つの宛先に複数のネクストホップが登録されるようになる。
設問4
(3)利点:iBGPピアの数を減らすことができる IDの名称:クラスターID

iBGPには「iBGPから受け取った経路をほかのiBGPには流さない」というルールがある。つまり、フルメッシュ構成を強いられるのである。しかし、それではピアが増えれば増えるほど、CPU負荷、ネットワーク帯域負荷が発生してしまう。そこで出てきたのがルートリフレクターである。ルートリフレクターとは、iBGPの経路をほかのiBGPへ流すことが許可されているルータである。つまり、これにピアを張りさえすれば、ピア関係にないiBGPの経路も受け取れるようになるのでフルメッシュ構成から解放される。
クラスターIDとは…
ルートリフレクター(RR)を冗長化した時にRR同士で経路情報がループするのを防ぐための識別番号。RRの導入はそもそも「iBGPから受け取った経路をほかのiBGPには流さない」というルールの抜け穴を作るためである。しかし、それが災いしてRR間でループを引き起こしてしまう。それを防ぐために、クラスターIDを使うことでRR間でループを検知できるようになる。
#クラスターIDの設定
router bgp AS番号
bgp cluster-id 1.1.1.1
#RRの設定
neighbor 配下IP route-reflector-clientp.3 データセンターを所有する大手EC事業者とは?ーーーーーーーーー

Q.EC事業者がデータセンターを所有?どうゆうこと?ECはECだけやればいいじゃん?
A.大量の物理サーバやネットワーク機器を設置するための施設がデータセンター。小規模であれば、自社内に配置できる。しかし、大規模・大量の場合は、強固な建屋、安定した電源、空調、高いセキュリティといった観点からデータセンターを自社で建てて/借りて、自社専用のデータセンターを丸ごと運用するというパターンがよくある。
Q.そもそもECサイトとは??
A.ECはElectronicCommerce(電子商取引)の略。つまり、ウェブサイトやアプリなどのネットを介して取引を行うビジネスのこと。
p.3 VXLANとは?——-

Q.なんでVXLANが必要なの?ややこしくて複雑な仕組みだけど、メリットあるの?
A.従来のVLANでは実現できないことがVXLANでは実現可能なので、VXLANが使われている。
メリット1:仮想ネットワークの拡大
VLANはVLAN IDが12ビットで構成されているため、4094(212-2)個しか利用できない。一方、VXLANはVNIが24ビット、つまり約1677万(224-1)個も利用できる。これによって大規模データセンター内で利用できるようになった。
*VLANの場合は規格で0と4095が予約されているためマイナス2となる。一方、VXLANの場合は0のみの予約なのでマイナス1となる。
メリット2:L3を跨いだL2延伸ができる
VXLANはイーサネットパケットをカプセル化することで、L3を跨いでも同一のL2として扱うことができる。一方VLANは同一VLAN内でL3を跨いだ通信はできない。
Q.L2を延伸できたら何がいいの??
A.離れていても同一プレフィックスで構成できるため、ライブマイグレーションなどでIPアドレスを変更しなくてもよくなりサービス継続がスムーズになる。L2延伸ができない、=プレフィックスが変わるとIPアドレスを変えざるをえないのでDNS設定などの各種設定変更が必要になる。
Q.なんでVLANではL3跨げないの?
A.ルータはL2を破壊して、つまりガン無視してL3による転送処理をする。また、ルータはブロードキャストを転送しない。ルータは同一プレフィックスを複数のポートに割り当てられない。
これらの特徴より、VLANのみではL3を跨げない。
Q.ルータ・オン・ア・スティックではVLAN間通信できるじゃん⁉それと同じ感じでL3跨げばいいじゃん?
A.ルータオンアスティックはあくまでも異なるVLAN間の通信を処理しているだけ。いわば、L2部分はガン無視してL3の宛先IPアドレスから出力ポートを決定し、そのポートに割り当てられたVLANを再度付与して転送しているだけ。一方、同一VLANでルータを越えようとしても、ルータには同一プレフィックスのポートは持てないので、IPによる転送をしてもそのプレフィックスは他のポートには割り当てられないので結局L3を跨げない。
p.3 EVPNとは?————

EVPNはEthernetVPNの略で、MP-BGPの一種。本来BGPはIPv4にしか対応していないが、IPv6やVPNの情報も運びたいというニーズに答えた、様々な種類を運べるようにしたものがMP-BGP。そのMP-BGPの中でL2の情報も運べるものがEVPN。
EVPNはBGPアップデートの中にNLRIというデータ枠を設けて、その中にVTEP情報やVM情報などを入れる。これによって、VTEP間で配下のVM情報を認識できるようになる。
NLRI(NetworkLayerReachabilityInformation):BGPアップデート内のデータ枠。この中にType2,3,5などを格納する。また、NLRIはEVPNに限った用語ではなく、BGPでも普通に使われている。
Type2(MAC/IP広報):配下のVM MAC+配下のVM IP+VNI+VTEP自身のIP
Type3(VTEPのIPアドレス):BUMトラフィックを配信するためのVTEP一覧
Type5(IPプレフィックス):デフォルトルートやサブネット単位のIP経路、経路集約など
AFI/SAFIとは?————–
Q.EVPNを勉強していると、AFIやSAFIという単語を耳にする。それらはいったい何なのだろうか。
A.AFIとSAFIを一言で言うとMP-BGPで使われるタグ。MP-BGPではIPv4,IPv6,VPNなど様々アドレスファミリが利用されるため、内部で「これはこのアドレスファミリの広告ですよ!」と伝える必要がある。そのタグが、AFIとSAFIである。
Q.AFIとSAFIを具体的に….?
A.AFIはAddressFamilyIdentifier(アドレスファミリ識別子)である。SAFIはSubsequentAddressFamilyIdentifierの略。MP-BGPで広告種類を表すタグとして、AFIとSAFIがある。AFIはその中でも大まかな種類を表したもの。SAFIはより具体的な種類を表したタグになる。具体的にはこんな感じ👇
| やりたいこと | AFI | SAFI | ルータへの伝わり方 |
| 普通のIPv4ルーティング | 1 (IPv4) | 1 (Unicast)2 (Multicast) | AFI=1,SAFI=2なら「IPv4のマルチキャストだよ」 |
| 普通のIPv6ルーティング | 2 (IPv6) | 1 (Unicast)2 (Multicast) | AFI=2,SAFI=1なら「IPv6のユニキャスト経路(例: 2001:db8::/32)だよ」 |
| VXLANなどのEVPN | 25 (L2VPN) | 70 (EVPN) | 「EVPNのMAC/IPアドレスやVTEP位置の情報だよ」 |
p.3 VTEPとは?———-

VTEP(VXLAN Tunnel End Point)は普通のルータやスイッチにVXLANカプセル化・解除を行う機能を追加した機器(またはソフトウェア)のこと。で、あとはシンプルにBGPを流すの同様の流れで、相手とネイバー関係を築いて、EVPNのやり取りをする。
VXLANのパケット構成———–
┌─────────────────────────────────────────────────────────────┐
│ 外側L2ヘッダー : 物理スイッチ宛てのMACアドレス │
├─────────────────────────────────────────────────────────────┤
│ 外側L3ヘッダー : 宛先VTEPのIPアドレス (IP) │
├─────────────────────────────────────────────────────────────┤
│ 外側L4ヘッダー : 宛先ポート 4789 (UDP) │
├─────────────────────────────────────────────────────────────┤
│ VXLANヘッダー : VNI (24bitのネットワーク識別子) │
├─────────────────────────────────────────────────────────────┤
│ 元のL2フレーム : サーバーが出した「元のMAC + IP + データ」 │
│ (ペイロード) │
└─────────────────────────────────────────────────────────────┘Q.VXLANのパケット構成では、UDP4789やVXLANヘッダーなどのいろいろなヘッダーを追加していく。では、それらがなぜ必要なのかを見ていこう!
A.VXLANヘッダーはVNIを格納し、どのVNI、つまりVLANと対応ずいているのかを示すのに使われる。UDP4789はVTEPが受け取った時に、「あ、これはVXLANの処理をすればいいんだな」と理解できるようにするためのヘッダー。
では、フローを見ていこう!
▼VXLANパケットのフロー
VTEP-Aの配下にある物理サーバ内のVM10からVTEP-Bの配下にある物理サーバ内のVM100への通信を例に見ていこう!
1.VMがパケットを生成して送信
*この時点では通常のイーサネットパケット
2.物理サーバ内の仮想スイッチに届くL2スイッチに届きフラッディングをする
*VLANタグの付与:仮想スイッチは受信ポートから「あ、このポートはVLAN○番だな!」と判断し、VLANタグをつける
*フラッディング:仮想スイッチが宛先を知らない場合、フラッディングをして、物理NICと他のVMにも転送する
3.VTEPに届きL3ネットワークへ
*フラッディングにより物理NICを経由してVTEPに届く
▼VTEPの処理フロー
①VNIの付与:パケットのVLANタグをみて「あ、VLAN○番はVNI△番に対応しているからVNIは△番を設定しよう」と判断し、VLANタグを剥がしVXLANヘッダーを付与する
②UDP4789の付与:受信側が個のパケットはVXLANのパケットだと識別できるようにUDP4789番を付与する
③外側IPヘッダーの付与:EVPNで学習したテーブルを参照し、「あ、この宛先MACアドレスはこのVTEP配下にあるVMだな。では、宛先IPを当該VTEPに設定しよう」となる。
4.L3ネットワーク
*OSPFやIS-ISなどのIGPでL3ネットワークのアンダーレイを構築しておき、VTEP間の疎通を可能にさせる
5.宛先VTEPに届く
▼VTEPの処理フロー
①L3処理:宛先IPが自分宛なのでL3を解体してL4の中身を確認する
②L4処理:L4はUDP4789が設定されているので、「あ、これはVXLANだ!」と判断しVXLANプロセスを待機させる
③VXLANヘッダー処理:VXLANヘッダー内のVNIを確認し、そのVNIにマッピングされているVLANを見つける。
④生パケットの送信:①~③のカプセル化を解除すると生のイーサネットパケットが出てくる。その生パケットに③で判明したVLAN情報タグをセットする。その後、生パケットの宛先IPから適切な出力ポートを判断し、出力する
6.物理サーバに届く
*物理サーバに届くと内部の仮想L2スイッチに転送される
通常の物理サーバは宛先MACが自分以外であると、処理せず破棄される。なので、ここではひと工夫必要となる。
工夫1:プロミスキャスモードに設定
プロミスキャスモードに設定することで、自分以外の宛先MACアドレスでも処理対象にすることができる。
*ただし、まったく関係のないパケットも節操なく処理してしまうのでCPU負荷が高まってしまうというデメリットがある
工夫2:MACテーブルのオフロード
ハイパバイザが配下にあるVMのMACアドレス情報をサーバのMACアドレステーブルに反映させる方法。これにより、VM宛てのパケットでも物理サーバは「あ、自分の配下にあるMACだな」と判断して処理フローに進めるようになる。
*ただし、サーバー用NICがSmartNICやSR-IOV対応NICである必要がある。
7.仮想L2スイッチに届く
仮想L2スイッチに届くとVLANタグと宛先MACアドレスを確認して、適切な出力ポートから出力する。
8.VMに届き、一件落着!!
p.5 タグVLANとは?—–

VLANには主に2つの種類がある。ポートベースVLANとタグVLANである。
ポートベースVLAN:
ポートに直接VLANを割り当てる方式。いわば、そのポートからは1つのVLANしか扱えないということ。
タグVLAN:
パケットの中(送信元MACとタイプの間)にVLANタグを挟むことでポートに依存しないVLANを構成することができる。つまり、1つのポートで複数のVLANを扱えるということ(=トランクリンク)。
p.5 PIM-SMとは?———

PIM-SMやPIM-DMとはマルチキャスト通信を目的地まで届けるためのルーティングプロトコル。
PIM-SM:
配信ツリーの作り方:受信側から「ちょうだい(Join)」と言われてから、必要な場所にだけ伸ばしていく。
作るツリー:最初は 共有ツリー(RPT) を作り、途中から 最短経路ツリー(SPT) に切り替える。
*共有ツリーとはマルチキャストで使われるルーティングテーブルのこと。
PIM-DM:
配信ツリーの作り方:最初にとりあえず全網へドカンと流し、不要な場所から「いらない(Prune)」と言われて削っていく。
作るツリー:最初からいきなり 最短経路ツリー(SPT) を作る(※DMには「共有ツリー」や「ランデブーポイント」は存在しません)。
そもそもマルチキャストとは?——
マルチキャストとは、複数の宛先にまとめて送れるアドレスのこと。複数ユーザーに1回1回ユニキャストすると、送信元のCPU負荷や経路途中の帯域などを非効率に使ってしまう。しかし、マルチキャストであれば、1つの送信で複数の宛先に届くため、より効率的になる。
▼マルチキャストの種類
| 種類 | アドレス範囲 | 特徴・用途 |
| ローカルリンク | 224.0.0.0/24 | ルーターを越えない。OSPF(224.0.0.5など)やVRRPなどの制御用パケット。 |
| グローバル | 224.0.1.0 〜 238.255.255.255 | インターネット上で重複不可(IANA管理)。世界的ライブ配信や金融データ配信などに使用。 |
| プライベート | 239.0.0.0/8 | 社内・データセンター内限定(重複OK)。VXLANのBUMトラフィック通信などで自由に使ってよい。 |
▼マルチキャストのコマンド
#マルチキャストルーティングテーブルの表示
show ip mroute
#ランデブーポイントの情報を表示
show ip pim rp mapping
#ランデブーポイントの設定
ip multicast-routing #マルチキャストの有効化
ip pim rp-address RPのアドレス
#PIM-SMの有効化
interface g0/0
ip pim sparse-modeなぜ現行ネットワークではLAGができないのか?——-


現状の構成と新規の構成を比較して、色々な疑問が出てくる。なぜそもそもこのような構成なのか?なぜ現行ではLAGできないのか。。などなど。それらの疑問を一つずつ紐解いていこう!
Q.なんで、L3SW11とL3SW12に分けてるの?
リンクアグリゲーションをしたいなら最初からL3SW11に2本のリンクつなげればよくね?
A.L3SW11が故障した場合、物理サーバ内のすべてのVMが利用不可能になってしまうため、冗長性として、L3SW12を準備している。
Q.現行構成ではどうやって経路切り替えしているの?
L3SW11とL3SW12によって冗長化構成になっていることは理解できた。しかし、もしL3SW11に障害が発生した場合は、どのように検知してどのように経路がL3SW12へと切り替わるのかのイメージがつかめない。。。
A.現行構成ではNICチーミングが使われている。では、フローを見ながら理解していこう!
①物理障害の検知
L3SW11が落ちるとサーバの左側NICのリンクがダウンする
②サーバ内の切り替え
サーバの仮想スイッチが「あ、メインの線死んだ。。」と判断して右側のNICをアクティブにする
③GARPの送信
サーバは切り替えた瞬間に「私(VM)は切り替えました」というGARP(GratuitousARP)をL3SW12に向けて投げる
④L3SW12からリモートVTEPに伝播
L3SW12に届いたGARPはVXLANヘッダにカプセル化され、マルチキャストグループ宛てに送信される。そして、リモートVTEPまで渡り学習される。
リモートVTEPは、外側の送信元(L3SW12)のIPアドレスと、内側のGARP情報(リモートVMのIP、MAC)を学習する。また、内側の情報は、適切なVLAN内へブロードキャストして伝える
Q.現行だとなぜLAGできないの?
A.LAG(リンクアグリゲーション)をするにはいくつかの条件を満たす必要がある。しかし、現行では、L3SW間でスタック接続や同期設定を採用しているわけではないのでLAGはできない。
1.System ID
SystemIDは「ブリッジ優先度+スイッチMACアドレス」で構成されている。これがLAG対象の対向リンクですべて一致している必要がある。
2.ポート設定
速度、モード(Full Duplex)、VLAN設定(Trunk/AccessやVLAN ID)が双方で一致していること
3.LACPキー
双方で同じポートグループとして設定されていること
#Etherchannelの作成
interface range G0/0-1
channel-group 1 mode active
exit
#Etherchannelの詳細設定
interface Port-channel 1
switchport mode trunk
switchport trunk allowed vlan 100,200
#Etherchannelの状態確認
show etherchannel summaryなぜ新構成ネットワークだとLAGできるのか?—-

現行の構成では、さまざまな制約によりLAGができなかった。しかし、新構成にするとなぜかLAGができる。どうやらEVPNやESIと呼ばれる機能がそれらを支えているらしい。。。しかし詳しいことはわからない。なので、それを紐解いていこう!
Q.ESIとは?
A.ESI(EthernetSegmentIdentifier)とは名前の通りセグメントの識別子である。つまり、同一の物理サーバにつながっているL3SWリンクのESIは同一のESIとして設定する。
なお、ESIを設定する目的はVTEP同士で、自分と同一のESIであればVTEP間でテーブル情報を同期したり、配下のサーバーとのLAGのための仮想MAC同期などを実施できるようになる。
また、周囲のVTEPに対しても同一のESIを持つものだと認識させL3ネットワーク上の負荷分散などにも寄与させることができる。
Q.ESIとEVPNの関係は?
A.ESIはEVPNのType4に載せて広告する。
Q.EVPN-MHとは?
EVPNとESIをつかって~というと、マルチホーミングが~でといった返しをされることがある。いったいなんなのか?
A.EVPN-MH(EVPN-MultiHoming)とはEVPNとESIを組み合わせて配下にある機器にとっての出口を複数にする技術である。マルチホーミングとは、1つの端末が複数のスイッチやルーターに対して足を延ばして冗長接続している状態のことである。
Q.なぜ新構成ではLAGが組めるのか?
A.ESIによって、VTEP間で同一セグメント内であることを認識できるようになったためLAGが組めるようになった。具体的には、同一セグメントであると判断すると、そこから動的に仮想MACアドレスを生成・同期できる。LAGの条件である同一のシステムID(ブリッジ優先度+スイッチMAC)を利用することができるようになるので、LAGが組めるようになる。
Q.なんでスタック接続しないの?
スタック接続をすれば、わざわざL3で同期したりする必要もなくなる。なのに、L3での同期にこだわっている。それはなぜ?
A.一見よさそうに見えるスタックだが、デメリットも存在する。
・脳みそが共通化されてしまう:
脳みそが共通化されると、片方のスイッチでOSバグやバッファあふれが起きると、もう片方も巻き添えを食らうことになってしまう。つまり、冗長化のための機能を果たせなくなってしまう。
・物理的な制約:
スタックは物理的な接続が必要なので、少し離れてしまうとケーブルが届かなくなってしまう。
Q.VSSとStackWiseの違いは?
CiscoのCCNPなどでよく出てくるこれら二つの用語は非常に紛らわしい。ということで、先ほどまでで関連用語が出てきたので、この先にまとめておこう!
| 項目 | StackWise (スタックワイズ) | VSS (Virtual Switching System) |
| 主な対象機種 | Catalyst 3650 / 3850 / 9300 など(アクセス〜ディストリビューション層) | Catalyst 4500-E / 6500 / 9500 など(コア・ディストリビューション層) |
| 接続台数 | 最大 8〜9台(機種による) | 2台限定 |
| 使用するケーブル | 専用のスタックケーブル(背面の専用スロットに短距離太線を挿す) | 通常のEthernetケーブル(10G/40G/100Gの光ファイバー等) |
| 接続ロジック | 専用スタックリング(リング構成)で高速同期 | VSL(Virtual Switch Link)という専用論理リンクを構築して同期 |

