More Related Content
Similar to AS45679 on FreeBSD (20)
AS45679 on FreeBSD
- 2. AS45679の歴史
• 2009年割当
• INTEC(WIDE), SAKURA, Hurricane, Convivial-Net, etc… との接続
• IPv6経路交換を前提、フルルートニヤニヤ。
• PA/PIアドレスは無し、下位組織としてアドレスをアサインしてもらう
• IPv6 over IPv4 tunnel
• 2014年 SoftEther社と接続
• IPv4 + IPv6
• Linux + Quagga
• NGN閉域折りし
• 2021年
• IPv4/IPv6 特殊用途PIアドレスの割振を受ける
• クラウド型トランジットを受ける(Vultr/xTom)
• 2022年
• Upstream 増強計画中(10G/25GxN本クラスの専用線、DCとのWDMは構築済み)
- 4. 物理構成(概要)
EtherIP over Flets#1
EtherIP over Flets#2
IX2215
IX2215 IX2215
IX2215
SW
SW
関西 関東
NGN
VM1 VM2 VM3 VM4
TransitE
(Vultr)
RT
1
RT
2
RT
3
RT
4
TransitD
(xTom)
TransitB TransitC
TransitA
- 5. 論理構成(概要)
関西 関東
Vultr
(FreeBSD + FRR)
xTom
(Debian + FRR)
TransitA
RT1
(Debian + FRR)
RT2
(予定)
RT3
( F12 + FRR )
RT4
(予定)
PeerA
Hurricane
(IPv6 Only)
BBIX
IPIP tunnel
SoftEther (MTU1500)
EtherIP (MTU1500)
Full Route Transit
NGN
IPv6 over IPoE
IPv6 over
IPv4 PPPoE
計画中
- 6. BGPルータのスペック
• CPU: 4vCPU~8vCPU
• MEM: 8GB~16GB
• NIC: Mellanox Dual Port 10G x1
• OS: FreeBSD / Debian
• BGPD: FRR, etc..(検討中)
• MRT dumpはやりたい(希望)
• たくさんのストレージ
• VMWare上のvm
• ベアメタルが理想だが電気代が…
ゴールは、地方ISPクラスが十分に使える程度の性能
- 8. FreeBSD12はまりどころ(Kernel)
• Full Routeを投入すると…
• netstat: sysctl: net.route.0.0.dump.0: Cannot allocate memory
• netstat –rn を根気よく。
• 一回目のシステムコールで経路分のメモリを確保
2回目のシステムコールで実際にデータを表示しようとして、経路数に大幅に差分
があった場合、メモリ不足になる
• FIBに入れる経路上限、基準がわからず
• zebraからFIBに経路を一回で入れるキューの単位。Full Tableを受けた瞬間、まと
まったキューが確保されなければならないらしい (by ほ。さん)
/boot/loader.conf
net.route.netisr_maxqlen=204800
- 9. FreeBSD12での固有トラブル(FRR7.5.1)
• FRR 7.5.1
• bgpd メモリリークで数日でcore dump
• bgpd の CPUが常に100%
• Full Route 1 pathだと発生しないように見える
• 1 Core分のCpu sys が常に100%, 多量の context switching, High
LoadAverage
• おそらく、正しくFIBに入れれずエラーになった経路があるのではないか?
• 入ってる経路もある?
• 失敗が原因で負荷が上がってる可能性
- 10. FreeBSD12での固有トラブル(FRR8.x)
• FRR 8.x 動かない
• ビルドができない
• libyang2 が ports にないので、別途準備が必要
• Netlink回りの不具合
• F11から実装が変わったが、メモリの確保の実装が雑でCoredump (by hrs-san)
• 数千経路も FIB に納めれない
• SoftEther 仮想IF、VLANが生えたとき、frrが認識できない
• zebraの再起動が必要
• zebra経由でIPアドレス操作ができない
• 削除・追加が反映されない
• zebraの再起動でも反映されない
• watchdogは鬼門
• bgpd の負荷が上がると… バッツン process 再起動
• PAGERの変更 ( bugではないが…&仕様変更 )
• VTYSH_PAGER=less → setenv VTYSH_PAGER "more -e“
いずれも不具合系はLinux(Debian) + FRRは問題無し。
FreeBSD12 + FRR8.x 環境でhrs sanの協力により多く修正。
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260950
- 13. 物理構成(概要) ver 1.0
EtherIP over Flets#1
EtherIP over Flets#2
IX2215
IX2215 IX2215
IX2215
SW
SW
関西 関東
NGN
VM1 VM2 VM3 VM4
RT
1
RT
2
RT
3
RT
4
TransitE
(Vultr)
TransitD
(xTom)
TransitB TransitC
TransitA
- 14. 物理構成(概要) ver 2.0
SE
1
SE
2
SE
3
SE
4
EtherIP over Flets#1
EtherIP over Flets#2
IX2215
IX2215 IX2215
IX2215
SW
SW
関西 関東
NGN
VM1 VM2 VM3 VM4
RT
1
RT
2
RT
3
RT
4
TransitE
(Vultr)
TransitD
(xTom)
TransitB TransitC
TransitA
- 17. FRR7.5.x の不具合(1)
• route-map が正しく動作しない
• MED
• 付与されているように見えて、適用した値が広報されないとか…
• prefix-list
• route-map が deny で、 prefix-list が permit/deny だと動かないとか…
• 実装が逆だったり、二重否定は動かなかったり(記憶曖昧)
• bogon-filter を書くときに苦労した
• シーケンス番号が並ばない、ソートされない
• ip prefix-list PL_LIST1 seq 100 …
ip prefix-list PL_LIST1 seq 200 …
ip prefix-list PL_LIST1 seq 150 … etc
• Config が読みにくい orz
そういえば、2014年頃、
vyatta / Quagga で試したときも正しく動かなかったな…
- 19. クラウド型トランジット
特徴
• VPSベースの固定vCPU、固定MEM、転送量課金(TB単位での契約)
• 1vCPU, MEM 2GB, bandwidth 2TB (10G IF) 10ドルぐらい
• 持ち込みアドレス、持ち込みAS対応
• BGP Full Table 対応
• IX接続 可能
• IPv6に対応、IPoEにてTunnelを作成
• IPoEを契約するISP選択
• 同じVNEであっても、ローミング提供のISPを契約すると、卸先ISP全体での公平
制御される可能性がある
• 同じIPoE/VNEでも契約先が重要
• おすすめはTransix(IIJ経由)もしくはSoftbank
- 21. クラウド型トランジット
• BGP対応のロケーションが限られる
• MEM 2GBだとメモリが厳しい
• 意図的にswapに逃がす
• FIBに入れない
• Loopbackなどの経路はIGP(OSPF)で経路交換、FIBに投入
• 自PIアドレスの経路、その他内部経路もFIBに投入(BGP)
• 経路ループ防止のため
• Null/経路生成はコアルータや経路生成ルータのみ
• ブラックホール防止のため
• それ以外は、Upstreamにデフォルトルート
• best-path 経路計算は不要
• コンバージェンスも気にしなくてよい
ip protocol bgp <route-map>
- 22. クラウド型トランジット(苦難編)
• BGPセッション…
• とあるVPSは同一ネットワーク上にBGPルータが別に存在する
• FIBにいれずにデフォゲに投げていたら突然通信できなくなる
• Source address validation を入れたらしい…
→ 大障害に
→ メモリ増強して対応orz
• eBGP multihopする事業者
• デフォゲになげていたらOK
• BGP communityが提供されない
• そら、ローカルで使う想定だしな…
• マルチリージョンで使うと海外の海外に回ったり…
• 日本国内から太平洋横断して帰ってくるとか
• 力の強いトランジットを仕入れているとあるある…
• AS6939(Hurricane Electric) こわい