BGP in the Data Center 読書メモ

BGP in the Data Centerの前半部分を読んだので、気になったところをメモしておく。CLOSネットワークをどのように設計するか、BGPをどのように運用するかについて、実践的な内容が書かれていた。普段触っていない領域なので、勘違いもあると思う。 1. Introduction to Data Center Networks ローカルネットワーク内のサーバ間通信をEast-Westトラフィック、ローカルネットワークと外部のネットワークの間の通信をNorth-Southトラフィックと呼ぶ。 大量のケーブルを管理する必要があるので、巨大なネットワークの管理者は、それぞれ管理技術を持っている。Prescriptive Topology Manager(PTM)というOSSもある。 同一のスイッチで巨大なネットワークを構成しておくと、故障した場合でも、単純に取り替えるだけで復旧できる。日々の運用コストについて考えておくことが大事。 CLOSネットワークを外部と接続するために、Border PodあるいはBorder Leavesを配置する。データセンタ内で使われているルーティングプロトコルは外部とは分離しておく。もし、Border PodやBordor Leavesを配置できない場合には、すべてのSpinesを外部と接続させる(Spineの対称性を保つため)。 iBGPに比較し、eBGPは理解やデプロイが容易なので、eBGPを採用するのが良い。歴史的な観点から、eBGPのほうが完成度の高い実装が多い。 2. How BGP Has Been Adapted to the Data Center PublicなASNは使わないほうが良い。オペレータを混乱させてしまったり、万が一外部に漏れた時にBGPハイジャックになってしまったりといった危険性がある。 2バイトのASNを4バイトへ拡張すると、およそ95,000,000個のprivate ASNを利用できる。 単純にすべてのBGPスピーカにユニークなASNを割り当てると、Path Huntingに苦しむことになる。 あるPrefixへの到達性をもつノードがダウンしたときに、その情報が収束するまでに時間がかかってしまう。これは、BGPのベストパス選択の性質に起因する。 真に到達不可能なのか、それとも別の経路でもって到達できるのかの区別ができない。 密に接続したCLOSトポロジでは、顕著な問題となる。 Path Hunting問題への対応として、以下のASN割り当てモデルがある。ループを検出できるので、必要以上にメッセージを送らなくて済む。ただし、Route Summarizationができないことに注意する。 すべてのToRはユニークなASN LeafはPodごとにユニークなASN。Pod内では同一のASN Spineは共通のASN OSPFやIS-ISはBest path選択のメトリクスを1つだけ。一方、BGPではそれが8つある。 Wise Lip Lovers Apply oral medication Every Night. Wight, LOCAL PREFERENCE, Locally originated, ASPATH, ORIGIN, MED, eBGP over iBGP, NextHop IGP Cost これら8つが等しければ、Equal Costと考えられ、Multipath Selectionできる。 ASPATHの比較については、長さに加えて要素がすべて等しければ、Equal Costとみなされる。 例えば、同一のPrefixが異なるASから届いた時には、Multi Pathとはならない。 ただし、bestpath -as-path multipath-relaxの設定を行うと、ASPATH長のみで(内容には触れずに)比較するよう設定できる。 タイマ設定を変更することで、CLOSトポロジにおける収束を早くする必要がある。ふつうはプロバイダ向けを想定して、安定性を第一にデフォルトが設定されていることが多いので、適宜設定する。 Advertisement Interval:このInterval内に含まれるメッセージは統合されて、送り出される。eBGPの場合、デフォルト30秒だが、0秒に設定すれば良い。 Keepalive and hold Timers:ある周期でkeepaliveメッセージをピアと交換する。Hold timeの期間内に、keepaliveを受け取らなかった場合は、ノードダウンと判定される。ケーブル障害の検知のために、BFD(Bidirectional forwarding Detectiion)を導入している場合でも、BGPプロセス自体のエラー検出のために、これらのタイマを調整する必要がある。おすすめは、3秒ごとのKeepaliveと9秒間のhold timersである。 Connect Timer:ピアの接続が切れた時、再接続までの待ち時間。 3. Bulding an Automatable BGP Configuration bgp router-idはIPアドレスにしておくのが良い。 広報したいprefixをstaticに設定するよりも、connected、kernel、ospf、bgp、ripなどのprotocolからrouteを引き継くとよい。 ただし、不正なアドレスをまちがって広報する可能性があるので、routing policyの設定が必要になる。 prefix equalよりもprefix belongsのほうが管理が楽。 また、routing policyはふつうroute-mapで設定される。 # routing policyの例 ACCEPT_DC_LOCAL(prefix) { if prefix belongs to 10.1.0.0/16 then accept else if (10.0.254.0/24 contains prefix and subnet equals 32) then accept else reject} }

March 21, 2019

RTX1200初期設定

自宅用にルータRTX1200を買ってきた 1. 中古で2万円弱だった. GUIで設定できるところはGUIで設定し,残りをCUIで設定した 2. 具体的には,PPPoEとフィルタをGUIで設定し,VPNとDDNSをCUIで設定した. 忘れないように,設定内容をまとめておく. なお,工場出荷状態への初期化は, 前面のmicroSD,USBおよびDOWNLOADのボタンをすべて押下しながら, 電源を入れることで行われる. 工場出荷状態では,LAN1ポートが192.168.100.1/24で初期化され,DHCPが有効になっているので, telnetですぐに接続できる. telnetの他にも,コンソールやhttpで接続できるので,適当に接続する. > show config ess=**:**:**:**:**:** MAC-Address=**:**:**:**:**:** login password encrypted * administrator password encrypted * # デフォルトゲートウェイ ip route default gateway pp 1 # LAN1ポートのIPアドレス ip lan1 address 192.168.100.1/24 # ARPの代理応答 ip lan1 proxyarp on # フィルタ ip lan1 secure filter in 100000 ... # PPPoE pp select 1 description pp PRV/PPPoE/0:*** pp keepalive interval 30 retry-interval=30 count=12 pp always-on on # LAN2ポートを使う pppoe use lan2 pppoe auto disconnect off pp auth accept pap chap # PPPoE接続時のID,パスワード pp auth myname ****@**** **** ppp lcp mru on 1454 ppp ipcp ipaddress on ppp ipcp msext on ppp ccp type none ip pp secure filter in 200003 ... ip pp secure filter out 200013 ... ip pp nat descriptor 1000 # DDNS, netvolante netvolante-dns use pp server=1 auto netvolante-dns hostname host pp server=1 ****.aa0.netvolante.jp pp enable 1 # VPN pp select anonymous pp name vpn pp bind tunnel1 # PPP認証方式 pp auth request mschap-v2 # VPN接続ユーザ,パスワード pp auth username **** **** ppp ipcp ipaddress on ppp ipcp msext on ip pp remote address pool dhcp ip pp mtu 1258 pp enable anonymous tunnel select 1 tunnel encapsulation l2tp ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike keepalive log 1 off ipsec ike keepalive use 1 off ipsec ike local address 1 192.168.100.1 # NATトラバーサル ipsec ike nat-traversal 1 on # 認証鍵,pre-shared key ipsec ike pre-shared-key 1 text **** ipsec ike remote address 1 any l2tp tunnel auth off l2tp tunnel disconnect time off l2tp keepalive use on ip tunnel tcp mss limit auto tunnel enable 1 # フィルタ ip filter 100000 reject * * udp,tcp 135 * (略) # NAT nat descriptor type 1000 masquerade nat descriptor masquerade static 1000 101 192.168.100.1 esp nat descriptor masquerade static 1000 102 192.168.100.1 udp 500 nat descriptor masquerade static 1000 104 192.168.100.1 udp 4500 ipsec auto refresh on ipsec transport 1 1 udp 1701 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 # DHCP dns server pp 1 dns server select 500001 pp 1 any . restrict pp 1 dns private address spoof on snmp sysname yamaha-rtx1200-************ l2tp service on statistics cpu on statistics memory on statistics traffic on 参考 RTX1200 ↩︎ ...

December 17, 2016