RFC7432bis-00 BGP MPLS-Based Ethernet VPN

はじめに

この文書は RFC7432bis BGP MPLS-Based Ethernet VPN (draft-ietf-bess-rfc7432bis-00) 、つまりRFC7432の改訂版のドラフト0版の日本語訳であり、RFC7432との差分を理解するためのものです。

翻訳者はデータセンターネットワークの専門家ですが翻訳の専門家ではありません。技術的な意味を維持した上でなるべく読みやすい日本語になるようにしているため、英文の直訳ではなく一部のニュアンスがかけている場合がありますのでご了承ください。オリジナルの目次、謝辞、参考文献等は省略しています。

RFC7432との差分

RFC7432bis-00ではRFC7432のドキュメントの正確性のための修正に加えて、発行以降に行われてきた改良が反映されています。差分を以下にまとめます。

まだ00版で、誤字脱字や用語の不統一、曖昧さなどが残っています。翻訳時点で00版はexpireしていますが、01版はでていません。

RFC7432から削除された部分は打ち消し線、RFC7432bisで追加された部分は太字で記載しています。

免責

この翻訳を信用して不利益を被っても責任取れません的なやつ。

目次

  • はじめに
  • RFC7432との差分
    • 免責
  • 目次
  • Abstract
  • 1. はじめに
  • 2. 要件の仕様
  • 3. 用語
  • 4. BPG MPLSベースのEVPNの概要
  • 5. イーサネットセグメント
  • 6. イーサネットタグID
  • 7. BGP EVPN経路
    • 7.1. Ethernet Auto-discovery経路
    • 7.2. MAC/IP Advertisement経路
    • 7.3. Inclusive Multicast Ethernet Tag経路
    • 7.4. Ethernet Segment経路
    • 7.5. ESIラベル拡張コミュニティ
    • 7.6. ES-Import Route Target
    • 7.7. MACモビリティ拡張コミュニティ
    • 7.8. デフォルトゲートウェイ拡張コミュニティ
    • 7.9 EVPNレイヤー2属性拡張コミュニティ
      • 7.9.1. EVPNレイヤー2属性の分割
    • 7.9.7.10. MAC-VRFごとのRoute Distinguisherの割当方法
    • 7.10. 7.11. Route Targets
    • 7.12. 経路の優先度付け
  • 8. マルチホーミング機能
    • 8.1. マルチホームされたイーサネットセグメントの自動発見
    • 8.2. 高速収束
      • 8.2.1. Etherenet A-D per ES経路の構築方法
        • 8.2.1.1. Ethernet A-D経路のターゲット
    • 8.3. スプリットホライズン
      • 8.3.1. ESIラベルの割り当て
        • 8.3.1.1. Ingress Replication
        • 8.3.1.2. P2MP MPLS LSP
        • 8.3.1.3. MP2MP MPLS LSP
    • 8.4. エイリアシングとバックアップパス
      • 8.4.1. Ethernet A-D per EVPN Instance 経路の構築
    • 8.5. Designated Forwarder選出
    • 8.6. プライマリPEとバックアップDFに選出されたPEの伝達
    • 8.6. 8.7. シングルホームのPEとの相互運用性
  • 9. ユニキャストMACアドレスへの到達性の決定
    • 9.1. ローカル学習
    • 9.2. リモート学習
      • 9.2.1. MAC/IP Address Advertisementの構築
      • 9.2.2. 経路解決
  • 10. ARP and ND
  • 11. 複数宛先トラフィックの処理
  • 12. Unknownユニキャストパケットの処理
    • 12.1. Ingress Replication
    • 12.2. P2MP MPLS LSP
  • 13. ユニキャストパケットの転送
    • 13.1. CEから受信したパケットの転送
    • 13.2. リモートPEから受信したパケットの転送
      • 13.2.1. unknownユニキャストの転送
      • 13.2.2. knownユニキャストの転送
  • 14. ユニキャストパケットのロードバランス
    • 14.1. PEからリモートCEへのトラフィックのロードバランス
      • 14.1.1. Single-Active冗長モード
      • 14.1.2. All-Active冗長モード
    • 14.2. PEとローカルCEの間でのトラフィックのロードバランス
      • 14.2.1. データプレーン学習
      • 14.2.2. コントロールプレーン学習
  • 15. MACモビリティ
  • 16. マルチキャストとブロードキャスト
    • 16.1. Ingress Replication
    • 16.2. P2MP LSPとMP2MP LSP
  • 17. 収束
    • 17.1. PE間のトランジットリンクとノードの障害
    • 17.2. PE障害
    • 17.3. PEとCEの間のネットワーク障害
  • 18. フレームの順序制御
    • 18.1. フローラベル
  • 19. Domain-wide Common Block (DCB)ラベルの使用
  • 19. 20. セキュリティの懸念事項
  • 20. 21. IANAの懸念事項
続きを読む

RFC7209 Ethernet VPN(EVPN)の要件

はじめに

この文書は RFC7209 Requirements for Ethernet VPN (EVPN) の日本語訳です。

翻訳者はデータセンターネットワークの専門家ですが翻訳の専門家ではありません。技術的な意味を維持した上でなるべく読みやすい日本語になるようにしているため、英文の直訳ではなく一部のニュアンスが欠けた文章になっている場合がありますのでご了承ください。オリジナルの目次、謝辞、参考文献等は省略しています。

免責

いつものやつ

目次

  • はじめに
    • 免責
  • 目次
  • Abstract
  • 1. はじめに
  • 2. Specification of Requirements
  • 3. 用語
  • 4. 冗長性の要件
    • 4.1. フローベースのロードバランス
    • 4.2. フローベースのマルチパス
    • 4.3. 地理的に冗長化されたPEノード
    • 4.4. 最適化されたトラフィックの転送
    • 4.5. 柔軟な冗長グループのサポート
    • 4.6. マルチホームされたネットワーク
  • 5. マルチキャスト最適化の要件
  • 6. プロビジョニングの簡便さの要件
  • 7. 新しいサービスインターフェイスの要件
  • 8. 高速収束
  • 9. フラッディングの抑制
  • 10. 柔軟なVPNトポロジーとポリシーのサポート
  • 11. セキュリティについての考察
  • 12. 標準への参考文献
  • 13. 有益な参考文献
続きを読む

RFC8365 Ethernet VPN(EVPN)を使用したネットワーク仮想化オーバーレイのソリューション

はじめに

この文書は RFC8365 A Network Virtualization Overlay Solution Using Ethernet VPN (EVPN) の日本語訳です。

翻訳者はデータセンターネットワークの専門家ですが翻訳の専門家ではありません。技術的な意味を維持した上でなるべく読みやすい日本語になるようにしているため、英文の直訳ではなく一部のニュアンスが欠けた文章になっている場合がありますのでご了承ください。オリジナルの目次、謝辞、参考文献等は省略しています。

免責

いつものやつ

目次

  • はじめに
    • 免責
  • 目次
  • Abstract
  • 1. はじめに
  • 2. Requirements Notation and Conventions
  • 3. 用語
  • 4. EVPNの特徴
  • 5. EVPNオーバーレイのためのカプセル化方式
    • 5.1. VXLAN/NVGREカプセル化
      • 5.1.1. 仮想識別子のスコープ
      • 5.1.2. 仮想識別子のEVIへのマッピング
        • 5.1.2.1. RTの自動計算
      • 5.1.3. EVPN BGP経路の構築
    • 5.2. MPLS over GRE
  • 6. 複数のデータプレーンカプセル化のEVPN
  • 7. シングルホームNVE - ハイパーバイザに存在するNVE
  • 8. マルチホームNVE - ToRスイッチに存在するNVE
    • 8.1. EVPNマルチホーミングの特徴
      • 8.1.1. マルチホームしているESの自動発見
      • 8.1.2. 高速収束とMass Withdrawal
      • 8.1.3. スプリットホライズン
      • 8.1.4. エイリアシングとバックアップパス
      • 8.1.5. DF選出
    • 8.2. EVPN BGP経路と属性に対する影響
    • 8.3. EVPN手順に対する影響
  • 9. マルチキャストのサポート
  • 10. データセンター相互接続(DCI)
    • 10.1. GWを使用したDCI
    • 10.2. ASBRを使用したDCI
      • 10.2.1. シングルホームNVEとASBR機能
      • 10.2.2. マルチホームNVEとASBR機能
  • 11. セキュリティについての考察
  • 12. IANAについての考察
  • 13. 参考文献
続きを読む

RFC7432 BGP MPLS-Based Ethernet VPN

はじめに

この文書は RFC7432 BGP MPLS-Based Ethernet VPN の日本語訳です。

翻訳者はデータセンターネットワークの専門家ですが翻訳の専門家ではありません。技術的な意味を維持した上でなるべく読みやすい日本語になるようにしているため、英文の直訳ではなく一部のニュアンスがかけている場合がありますのでご了承ください。オリジナルの目次、謝辞、参考文献等は省略しています。

免責

いつものやつ

目次

  • はじめに
    • 免責
  • 目次
  • Abstract
  • 1. はじめに
  • 2. 要件の仕様
  • 3. 用語
  • 4. BPG MPLSベースのEVPNの概要
  • 5. イーサネットセグメント
  • 6. イーサネットタグID
  • 7. BGP EVPN経路
    • 7.1. Ethernet Auto-discovery経路
    • 7.2. MAC/IP Advertisement経路
    • 7.3. Inclusive Multicast Ethernet Tag経路
    • 7.4. Ethernet Segment経路
    • 7.5. ESIラベル拡張コミュニティ
    • 7.6. ES-Import Route Target
    • 7.7. MACモビリティ拡張コミュニティ
    • 7.8. デフォルトゲートウェイ拡張コミュニティ
    • 7.9. MAC-VRFごとのRoute Distinguisherの割当方法
    • 7.10. Route Targets
  • 8. マルチホーミング機能
    • 8.1. マルチホームされたイーサネットセグメントの自動発見
    • 8.2. 高速収束
      • 8.2.1. Etherenet A-D per ES経路の構築方法
        • 8.2.1.1. Ethernet A-D経路のターゲット
    • 8.3. スプリットホライズン
      • 8.3.1. ESIラベルの割り当て
        • 8.3.1.1. Ingress Replication
        • 8.3.1.2. P2MP MPLS LSP
    • 8.4. エイリアシングとバックアップパス
      • 8.4.1. Ethernet A-D per EVPN Instance 経路の構築
    • 8.5. Designated Forwarder選出
    • 8.6. シングルホームのPEとの相互運用性
  • 9. ユニキャストMACアドレスへの到達性の決定
    • 9.1. ローカル学習
    • 9.2. リモート学習
      • 9.2.1. MAC/IP Address Advertisementの構築
      • 9.2.2. 経路解決
  • 10. ARP and ND
  • 11. 複数宛先トラフィックの処理
  • 12. Unknownユニキャストパケットの処理
    • 12.1. Ingress Replication
    • 12.2. P2MP MPLS LSP
  • 13. ユニキャストパケットの転送
    • 13.1. CEから受信したパケットの転送
    • 13.2. リモートPEから受信したパケットの転送
      • 13.2.1. unknownユニキャストの転送
      • 13.2.2. knownユニキャストの転送
  • 14. ユニキャストパケットのロードバランス
    • 14.1. PEからリモートCEへのトラフィックのロードバランス
      • 14.1.1. Single-Active冗長モード
      • 14.1.2. All-Active冗長モード
    • 14.2. PEとローカルCEの間でのトラフィックのロードバランス
      • 14.2.1. データプレーン学習
      • 14.2.2. コントロールプレーン学習
  • 15. MACモビリティ
  • 16. マルチキャストとブロードキャスト
  • 17. 収束
    • 17.1. PE間のトランジットリンクとノードの障害
    • 17.2. PE障害
    • 17.3. PEとCEの間のネットワーク障害
  • 18. フレームの順序制御
  • 19. セキュリティの懸念事項
  • 20. IANAの懸念事項
続きを読む

RFC7938 - 大規模データセンター内でのルーティングのためのBGPの利用方法

はじめに

この文書は RFC7938 - Use of BGP for Routing in Large-Scale Data Centers の日本語訳です。

翻訳者はデータセンターネットワークの専門家ですが翻訳の専門家ではありません。技術的な意味を維持した上でなるべく読みやすい日本語になるようにしているため、英文の直訳ではなく一部のニュアンスがかけている場合がありますのでご了承ください。オリジナルの目次、謝辞、参考文献等は省略しています。

免責

いつものやつ

目次

  • はじめに
    • 免責
  • 目次
  • 概要
  • 1. 導入
  • 2. ネットワーク設計の要件
  • 3. データセンタートポロジーの概要
  • 4. データセンタールーティングの概要
    • 4.1 L2オンリー設計
    • 4.2 L2/L3ハイブリッドの設計
    • 4.3 L3オンリー設計
  • 5. ルーティングプロトコル設計
  • 6. ECMPの考察
    • 6.1 基本的なECMP
    • 6.2 複数のAS番号をまたがるBGP ECMP
    • 6.3 重み付けされたECMP
    • 6.4 コンシステントハッシュ法
  • 7. ルーティング収束の特性
    • 7.1 障害検知のタイミング
    • 7.2 イベント伝搬のタイミング
    • 7.3 Closトポロジーのファンアウトの効果
    • 7.4 罹障範囲
    • 7.5 ルーティングマイクロループ
  • 8. 設計の追加の選択肢
    • 8.1 サードパーティ・ルート・インジェクション
    • 8.2 Closトポロジー内の経路集約
      • 8.2.1 Tier 1機器レイヤーの集約
      • 8.2.2 単純な仮想アグリゲーション
    • 8.3 ICMP Unreachableメッセージのマスカレード
  • 9. セキュリティの懸念事項
続きを読む

Intel NICを搭載したLinuxサーバのLLDPが正しく動作しない問題

サマリー

Intel NICを搭載したLinuxサーバにおいて lldpd をインストールして設定を行ってもその設定が反映されず、ハードウェアの情報が表示される場合、Intel NIC (i40e) のLLDPオフロードが有効になっているためこれを無効にする必要がある。

詳細

lldpdを apt install lldpd でインストールしたのち、以下のように設定を行った。

configure system interface pattern eno*,ens*
configure lldp portidsubtype ifname

ネットワークスイッチ側からLLDPネイバーを表示すると以下のようになった。Chassis IdにはMACアドレス、Port infoにはLinux上でのインターフェイス名が見えることが期待値であったが、ハードウェア固有の値が表示されている。

{master:0}
me@myswitch> show lldp neighbors
Local Interface    Parent Interface    Chassis Id          Port info          System Name
xe-0/0/8           ae2                 39373638-3935-5099-4E99-303330309999Embedded ALOM, Port 1
xe-0/0/10          ae2                 39373638-3935-5099-4E99-303330309999PCI-E Slot 1, Port 1
{master:0}
me@myswitch> show lldp neighbors interface xe-0/0/8
LLDP Neighbor Information:
Local Information:
Index: 147 Time to live: 121 Time mark: Tue Jun  2 06:27:34 2020 Age: 12 secs
Local Interface    : xe-0/0/8
Parent Interface   : ae2
Local Port ID      : 521
Ageout Count       : 0

Neighbour Information:
Chassis type       : Locally assigned
Chassis ID         : 39373638-3935-5099-4E99-303330309999
Port type          : Mac address
Port ID            : 00:00:5e:a2:72:00
Port description   : Embedded ALOM, Port 1

System Description : HPE ProLiant DL360 Gen10

また、サーバ側からLLDPの自身の情報とネイバーの情報を表示すると、ChassisIDやPorIDが正しく設定されていることがわかり、ネイバーが見えていないこともわかる。スイッチ側の設定はスイッチ間のLLDP設定で正しく表示できていることが確認できていたため、これはスイッチからのLLDPDUがLinuxのレイヤーまで届いていないということになる。

root@myserver:~# lldpcli show chassis
-------------------------------------------------------------------------------
Local chassis:
-------------------------------------------------------------------------------
Chassis:
  ChassisID:    mac 00:00:5e:7b:a4:10
  SysName:      myserver
  SysDescr:     Ubuntu 18.04.3 LTS Linux 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64
  MgmtIP:       10.102.253.54
  MgmtIP:       fe80::ac91:afff:fe1f:aee0
  Capability:   Bridge, on
  Capability:   Router, on
  Capability:   Wlan, off
  Capability:   Station, off
-------------------------------------------------------------------------------

[lldpcli] # show interfaces ports eno5
-------------------------------------------------------------------------------
LLDP interfaces:
-------------------------------------------------------------------------------
Interface:    eno5, via: unknown
  Chassis:
    ChassisID:    mac 00:00:5e:7b:a4:10
    SysName:      myserver
  Port:
    PortID:       ifname eno5
    PortDescr:    eno5
  TTL:          120
-------------------------------------------------------------------------------
root@myserver:~# lldpcli show neighbor ports eno5
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------

生のハードウェアIDが表示されていたため、BIOSの設定を疑って漁ってみたが、見つからなくて途方に暮れたので友人たちに訪ねてみると早速ヒントを貰った

Intel NIC (i40eドライバ)でLLDPのオフロードが有効になっているようである。

centos6 - Disable internal Intel X710 LLDP agent - Server Fault

バージョン2.3.6以降のi40eのドライバーではethtool経由でLLDPオフロードを無効にできるようであるが、Ubuntu18.04で使っていたドライバはそれより若いバージョンであったため、 debugコマンド経由で無効にする方法を利用した。以下のようにdisable-lldp-offload.sh という名前でスクリプトを配置し、再起動時でもオフロードの無効化が自動でできるようにするため、/etc/cron.d/lldp から@rebootで呼び出すことにした(systemdではなく)。

#!/bin/bash 
i40e_path=/sys/kernel/debug/i40e
for dev in $i40e_path/*; do 
    [ -e "$dev" ] || break 
    echo lldp stop > "${dev}/command”
done
@reboot root sleep 60 && /root/disable-lldp-offload.sh

スイッチ側からも無事に正しい情報を参照できるようになった。

{master:0}
me@myswitch> show lldp neighbors
Local Interface    Parent Interface    Chassis Id          Port info          System Name
xe-0/0/8           ae2                 00:00:5e:7b:a4:10   eno5               myserver
xe-0/0/10          ae2                 00:00:5e:7b:a4:10   ens1f0             myserver

ありがとう @markunet !!

JANOGのCode of Conduct

f:id:yuyarin:20191224033223g:plain

JANOG

こんにちは。JANOG(日本ネットワーク・オペレーターズ・グループ)というコミュニティで運営委員をやってるゆやりんです。

adventar.org

コミュニティ•カンファレンス運営 Advent Calendar 2019ということで、JANOGの運営について紹介しようと書いていたら、あまりにも長大なポエムが出来上がってしまったので、ほとんど捨てて要点を絞って最近話題のCode of Condactについて話したいと思います。

JANOGは7000名のネットワーク技術者のコミュニティ

日本ネットワーク・オペレーターズ・グループ(JANOG)はネットワーク運用者が集まる技術コミュニティです。インターネットはいろいろな組織や事業者のネットワークが相互接続することで形成されています。そのためそれを運用する技術者たちも繋がりを持ち、組織の壁を超えて技術的な情報を交換したり、共通の課題を解いていく必要があります。JANOGはそのためのコミュニティです。
1997年に北米のNANOG (North American NOG) に参加して刺激を受けた技術者たちが立ち上げ、今年で22年目になります。会員はメーリングリストの登録者数で数えており約7000名です。

活動のメインは年2回のMeeting

JANOGでは年2回ミーティングを開催しています。例年1月と7月に開催しており、最近では水曜の午後から金曜日までの2日半の開催になっています。
最近ではJANOG44ミーティングが神戸で開催され過去最高の1602名が参加しました。

f:id:yuyarin:20191224011527p:plain

JANOG44ミーティング in 神戸

参加者は増え続けてついに1600名に

f:id:yuyarin:20191224011538p:plain

JANOGミーティングの参加者数の推移

私が学生のときに初めて参加したJANOG26の時期は都内だと700名、地方だと300-400名程度の出席でした。それがここ5年くらいでどんどん増えてJANOG41で1000名超え、今回のJANOG44では1600名になりました。

JANOGのCode of Conduct をつくった

1600名も参加するミーティングともなると、色々な人が参加することが想定されます。JANOGでは2016年6月頃から検討をはじめて、2017年8月に「JANOG行動規範」として公開しました。

https://www.janog.gr.jp/doc/janog-comment/jc11.txt

JANOG行動規範


JANOGの価値は幅広い参加者の知見と興味、率直な意見交換に支えられています。
これはメーリングリストやミーティング、ワーキンググループなど、
JANOGがその目的を達成するための様々な活動の全てに共通しています。

それぞれの参加者は、異なる背景や状況、意見を持ちうることを認識し、
お互いに思いやり尊重しあいましょう。あらゆる嫌がらせや誹謗中傷、
反社会的行為は許容されません。この行動規範に反する行為や言動に対して、JANOG運営委員会は当該人物の退出や除名などの必要な措置を講ずることがあります。

共に楽しみ、共に課題を乗り越え、充実したコミュニティを作っていきましょう。

以上

なにか個別の問題が発生したので制定したという経緯ではなく、海外を中心に他のコミュニティでCoCを制定することが当たり前の流れになってきており、JANOGでもこれが必要になるだろうという判断を行いました。

ドラフトを策定して公開、次のJANOGミーティングで説明、意見募集。その次のJANOGミーティングのオープンマイクで採択という流れを取りました。そのため検討から約1年を要しています。

他のコミュニティのCoCを参考にした

CoCは同じく運営委員の金子さんや松崎さんが中心となって策定をしていただきました。策定にあたって他のコミュニティ、特にネットワーク系でアジア圏でカンファレンスを行っているAPNICやAPRICOTなどを参考にしており、APNICのCoCをベースに作成しました。

前向きなCoCを作ろう

なぜCoCが必要だと判断したのかは、松崎さんがJANOG39で開催してくれたJANOG行動規範BoF (Bird of feather, 同好会)の資料でも書かれている通り、

  • 僕たちがどういう価値観や倫理的指針を持って活動しているか明文化しておきたい
  • 嫌がらせ(ハラスメント)は許されない行為だと明確にしておきたい
  • この思いに賛同する人がどんどん参加して、このコミュニティが発展してくれると嬉しい

という3点が主な理由です。会員やミーティング参加者の行動を厳しく縛るような後ろ向きな規約を決めるのではなく、参加する人が安心して参加できるように前向きなCoCにしたいと作る際に方針を決めました。

JANOG39 :: [JANOGCOC] コミュニティの行動規範 - JANOGはどうする?

JANOGというコミュニティがどのような価値観を持っているかを表明するとともに、ハラスメントに対して許容しない、ハラスメントがあればアクションを取るということを明文化することで、そうした行為が行われた際にミーティング実行委員(スタッフ)のみなさんが自発的に行動できる指針を示しておくという効果ももあります。

CoCはコミュニティの価値を高めるために必要

「昔はそんなもの必要なかった」というご意見もいただきますが、我慢させられ泣き寝入りしてしまう人もたくさんいたのではないかと思います。

コミュニティ運営者がCoCを作ることで、そうしたハラスメントを受けた方をケアし、またハラスメントを抑止することで、コミュニティの価値や魅力を上げていくことに繋がります。それによりコミュニティが活性化して会員や参加者もその恩恵を受けることができるようになり、良い循環が生まれます。

検索するとCoCの雛形なども公開されていたりするので、まだCoCを制定していないコミュニティ運営者はぜひ制定してみてください。