SlideShare a Scribd company logo
1 of 24
Download to read offline
AS45679の実態
FreeBSD WorkShop 2022/06/24
Tomocha < tomo [at] tomocha.net >
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は構築済み)
AS45679コンセプト
• 旧世代のサーバーで構築
• ソフトウェアBGPルータで10Gbpsの性能
• 実際には8Gbpsぐらいを目標
• E5-26xx Ivy Bridge 世代以降のCPUを採用
• 最近とても安いよ? ebayで破格。DDR3も安くなったよ。お下がりにはちょうどよい。
• Full RouteをN本扱う
• 想定は3本以上
• 拠点冗長
• OS/BGPDはすべて異なる組み合わせ
• 商用に耐えうる耐障害性
• MTU 1500
物理構成(概要)
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
論理構成(概要)
関西 関東
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
計画中
BGPルータのスペック
• CPU: 4vCPU~8vCPU
• MEM: 8GB~16GB
• NIC: Mellanox Dual Port 10G x1
• OS: FreeBSD / Debian
• BGPD: FRR, etc..(検討中)
• MRT dumpはやりたい(希望)
• たくさんのストレージ
• VMWare上のvm
• ベアメタルが理想だが電気代が…
ゴールは、地方ISPクラスが十分に使える程度の性能
FreeBSD12はまりどころ(Kernel)
• EtherIPが動かない
• FreeBSD9ぐらいから動いてないらしい
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256820
https://www.seirios.org/seirios/dokuwiki/doku.php?id=tweet:2021:0530_01
• FreeBSD12 (パッチは取込予定)
• FreeBSD13 (パッチは取込予定)
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
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に入れれずエラーになった経路があるのではないか?
• 入ってる経路もある?
• 失敗が原因で負荷が上がってる可能性
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
SoftEtherを使った仮想NIC問題
• Linkは上がっているように見えて実は半落ちしてる問題
• 経路ループが発生…
• IGPは上がってBGPセッションは張られているが packet の fowardingされ
なくなる
• netstat –r レベルでは正常に見える
• 原因不明(要調査)
• zebraがまだIf/Addrが完璧に認識できない
• 動くこともあれば動かないことも
• 発生パターンの調査
• zebra回りに修正がまだ必要かも…
SoftEtherを使った仮想NIC問題(解決編)
Linuxで VPN Server を建てて、
vlanにBridgeする
VMwareが動いてるので、vm建て放題だし…
ルータから見たら、vlan interface をつくって、 point to point interface として扱えばよいし楽だよね…
物理構成(概要) 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
物理構成(概要) 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
構成の結論
OS標準のTunnel以外は分ける
• Tunnelの足の経路のばたつき
• Static Routeを書き忘れたり
• VPN/Tunnel収容ルータは専用に作る
• 意外とCPU食うので割り込みが…
• AffinityでCPU coreを固定するとクラッシュするプロセス…
• 起動時に失敗したり
• OS標準実装のTunnelだと、MTU1500にならないし…
おまけ(1)
FreeBSDではないお話
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 で試したときも正しく動かなかったな…
FRR7.5.x の不具合(2)
• bgp_read_packet error
• Loopback で IBGP が張れない
• FRR7.0.xからのバグ
• https://github.com/FRRouting/frr/issues/4438
クラウド型トランジット
特徴
• 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
クラウド型トランジット
特徴(続き)
• FreeBSDにも対応しており、海外では割と主流
• テラ(ギガ)が不足したら自動的に落ちる(通信が止まるはず)
• 必要だったらテラを買えばよい
• 必要だったら複数インスタンス契約すればよい
• ECMP ロードバランスすれば冗長性も可用性も上がる
円安ぅ。。。。反対(>_<)
BGPの特徴を最大限に活用
クラウド型トランジット
• BGP対応のロケーションが限られる
• MEM 2GBだとメモリが厳しい
• 意図的にswapに逃がす
• FIBに入れない
• Loopbackなどの経路はIGP(OSPF)で経路交換、FIBに投入
• 自PIアドレスの経路、その他内部経路もFIBに投入(BGP)
• 経路ループ防止のため
• Null/経路生成はコアルータや経路生成ルータのみ
• ブラックホール防止のため
• それ以外は、Upstreamにデフォルトルート
• best-path 経路計算は不要
• コンバージェンスも気にしなくてよい
ip protocol bgp <route-map>
クラウド型トランジット(苦難編)
• BGPセッション…
• とあるVPSは同一ネットワーク上にBGPルータが別に存在する
• FIBにいれずにデフォゲに投げていたら突然通信できなくなる
• Source address validation を入れたらしい…
→ 大障害に
→ メモリ増強して対応orz
• eBGP multihopする事業者
• デフォゲになげていたらOK
• BGP communityが提供されない
• そら、ローカルで使う想定だしな…
• マルチリージョンで使うと海外の海外に回ったり…
• 日本国内から太平洋横断して帰ってくるとか
• 力の強いトランジットを仕入れているとあるある…
• AS6939(Hurricane Electric) こわい
クラウド型トランジット
• Vultr
• https://www.vultr.com/ja/features/bgp/
• xTom
• https://xtom.com/vps/
• List of IPv6 tunnel brokers
• https://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers
最後に
hrsさん、ほ。さん、kozukaさん、多大な協力ありがとうござ
いました。
時間が出来次第、ほかのbgpd(BIRD)も投入していきます。

More Related Content

What's hot

What's hot (20)

Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
 
閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
インターネットの舞台裏
インターネットの舞台裏インターネットの舞台裏
インターネットの舞台裏
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
wakamonog6 インターネットの裏側の仕組み
wakamonog6 インターネットの裏側の仕組みwakamonog6 インターネットの裏側の仕組み
wakamonog6 インターネットの裏側の仕組み
 
ISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるものISPネットワーク運用で覗いてるもの
ISPネットワーク運用で覗いてるもの
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
 
ISPの向こう側、どうなってますか
ISPの向こう側、どうなってますかISPの向こう側、どうなってますか
ISPの向こう側、どうなってますか
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
DNS再入門
DNS再入門DNS再入門
DNS再入門
 
スイッチ・ルータのしくみ
スイッチ・ルータのしくみスイッチ・ルータのしくみ
スイッチ・ルータのしくみ
 
データセンターネットワークの構成について
データセンターネットワークの構成についてデータセンターネットワークの構成について
データセンターネットワークの構成について
 

Similar to AS45679 on FreeBSD

Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Akira Nakagawa
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
tamtam180
 
KDL主催セミナー 20120215
KDL主催セミナー 20120215KDL主催セミナー 20120215
KDL主催セミナー 20120215
Hiroshi Bunya
 

Similar to AS45679 on FreeBSD (20)

Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
ShowNetにおけるバックボーン設計と運用について語る_ShowNet2021_conf_mini_3_sr-based_backbone
ShowNetにおけるバックボーン設計と運用について語る_ShowNet2021_conf_mini_3_sr-based_backboneShowNetにおけるバックボーン設計と運用について語る_ShowNet2021_conf_mini_3_sr-based_backbone
ShowNetにおけるバックボーン設計と運用について語る_ShowNet2021_conf_mini_3_sr-based_backbone
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
IPv6 Update
IPv6 UpdateIPv6 Update
IPv6 Update
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
Info talk #36
Info talk #36Info talk #36
Info talk #36
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話Internet Week 2018 知っておくべきIPv6とセキュリティの話
Internet Week 2018 知っておくべきIPv6とセキュリティの話
 
DEFCON21×S2 REPORT
DEFCON21×S2 REPORTDEFCON21×S2 REPORT
DEFCON21×S2 REPORT
 
Xen Nic
Xen NicXen Nic
Xen Nic
 
OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月
OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月
OpenStackネットワーキング管理者入門 - OpenStack最新情報セミナー 2014年8月
 
RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続
 
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
 
CloudStackとNetScaler連携tips
CloudStackとNetScaler連携tipsCloudStackとNetScaler連携tips
CloudStackとNetScaler連携tips
 
KDL主催セミナー 20120215
KDL主催セミナー 20120215KDL主催セミナー 20120215
KDL主催セミナー 20120215
 

AS45679 on FreeBSD