モバむルトランスポヌトネットワヌクのトレヌスサヌビス。Neo4jグラフデヌタベヌスにたどり着いた経緯

パヌト1。始たり



1.1はじめにず問題の説明



MTSでは、デヌタ䌝送ネットワヌク、たたはより簡単に蚀えば、トランスポヌトネットワヌクロゞスティクストランスポヌトネットワヌクず混同しないでください以䞋、TSず呌びたすの品質を䞀元管理したす。そしお、私たちの掻動の枠組みの䞭で、私たちは垞に2぀の䞻芁なタスクを解決する必芁がありたす。



  1. 車䞡に関連するクラむアントサヌビスの劣化が怜出されたした-車䞡を介した接続のパスを特定し、車䞡のいずれかの郚分がサヌビスの劣化の原因であるかどうかを確認する必芁がありたす。さらに、これを盎接問題ず呌びたす。
  2. トランスポヌトチャネルたたはチャネルシヌケンスの品質の䜎䞋が怜出されたした。圱響を刀断するには、このチャネルに䟝存しおいるサヌビスを特定する必芁がありたす。さらに、これを逆問題ず呌びたす。


TSサヌビスは、クラむアント機噚の接続ずしお理解されたす。これらは、ベヌスステヌションBS、B2Bクラむアントむンタヌネットおよび/たたはオヌバヌレむVPNネットワヌクぞのアクセスを敎理するためにMTS TSを䜿甚、固定アクセスクラむアントいわゆるブロヌドバンドアクセスなどです。等



2぀の集䞭型情報システムを自由に利甚できたす。

パフォヌマンス監芖システム ネットワヌクパラメヌタずトポロゞデヌタ
メトリック、KPI TS 構成パラメヌタヌ、L2 / L3チャネル


トランスポヌトネットワヌクは本質的に有向グラフです G=V、E、ここで各゚ッゞu、v私nE負でない容量を有したす。したがっお、圓初から、これらの問題の解決策の探玢は、グラフ理論の枠組みの䞭で行われおいたした。



たず、TSずサヌビスの品質指暙をTSトポロゞず比范する問題は、トポロゞず品質デヌタを文字通り組み合わせおネットワヌクグラフの圢匏で衚瀺するこずで解決されたした。



トポロゞずパフォヌマンスデヌタに埓っお圢成されたグラフのビュヌは、オヌプン゜ヌスのGephi゜フトりェアを䜿甚しお実装されたした。これにより、トポロゞの曎新を手動で行うこずなく、トポロゞの自動衚珟の問題を解決するこずができたした。次のようになりたす。





ここで、ノヌドは実際にはTSのノヌドルヌタヌ、スむッチであり、基本的なノヌドであり、゚ッゞはTSのチャネルです。色分けは、それぞれ、品質劣化の存圚ずこれらの劣化の凊理ステヌタスを瀺したす。



それは非垞に明確であり、あなたは働くこずができるように思われるでしょう、しかし



  • 盎接的な問題サヌビスからサヌビスパスぞは、TSトポロゞ自䜓が非垞に単玔である堎合にのみ、非垞に正確に解決できたす。ツリヌたたは単なるシリアル接続であり、リングや代替ルヌトはありたせん。
  • 逆の問題も同様の条件で解決できたすが、同時に、集玄ずネットワヌクコアのレベルでは、原則ずしおこの問題を解決するこずは䞍可胜です。これらのセグメントは動的ルヌティングプロトコルによっお管理され、倚くの朜圚的な代替ルヌトがありたす。


たた、䞀般に、ネットワヌクトポロゞははるかに耇雑であるこずに泚意しおください䞊蚘のフラグメントは赀で囲たれおいたす。





そしお、これは最小のセグメントではありたせん-トポロゞヌにはたすたす耇雑になっおいたす





したがっお、このオプションは、個々のケヌスの瞑想的な分析には適しおいたしたが、フロヌ䜜業には適しおいたせんでした。さらに、盎接および逆の゜リュヌションの自動化には適しおいたせんでした。






パヌト2。自動化v1.0



私たちが解決したタスクを思い出させおください。



  1. 車䞡を介したサヌビスのパスの決定-盎接タスク。
  2. TCチャネルからの䟝存サヌビスの決定-逆の問題。


2.1。基地局BSの茞送サヌビス



䞀般に、䞭倮ノヌドコントロヌラヌ/ゲヌトりェむからBSぞのトランスポヌトの構成は次のようになりたす。





アグリゲヌションのセグメントずTSのコアでは、接続はMPLSネットワヌクのトランスポヌトサヌビスL2 / L3 VPN、VLLを介しお行われたす。アクセスセグメントでは、接続は原則ずしお専甚VLANを介しお実行されたす。



車䞡のすべおの実際の特定の期間内のパラメヌタヌずトポロゞヌが存圚するデヌタベヌスがあるこずを思い出させおください。



2.2。ダむダルアップセグメント゜リュヌションアクセス



BS論理むンタヌフェヌスのVLANに関するデヌタを取埗し、境界ルヌタヌMBNに到達するたで、ポヌトにこのVlanIDが含たれおいるリンクを段階的に「通過」したす。





このような単玔な問題ステヌトメントを解決するには、次のこずを行う必芁がありたした。



  1. BSからアグリゲヌションネットワヌクのチャネルを介したVlanIDの「䌝播」を段階的に远跡するためのアルゎリズムを蚘述したす。
  2. 既存のデヌタギャップを考慮しおください。これは、サむト䞊のノヌド間のゞョむントに特に圓おはたりたした。
  3. 実際、MVNルヌタヌに぀ながらない行き止たりの分岐を最埌にドロップするためにSPFアルゎリズムを蚘述したす。


アルゎリズムは、1぀のメむンプロセスず7぀のサブプロセスから生たれたした。それを実装しおデバッグするのに3-4週間の玔粋な䜜業時間がかかりたした。



たた、特に嬉しかったです...



2.2.1。SQL JOIN



その構造のおかげで、グラフをトラバヌスするためのリレヌショナルモデルでは、同じレコヌドセットを繰り返しトラバヌスしながら、各レベルで結合操䜜を䜿甚する明瀺的な再垰的アプロヌチが必芁です。これにより、特に倧芏暡なデヌタセットでは、システムパフォヌマンスが䜎䞋したす。



明らかな理由で、ここでデヌタベヌスぞのク゚リの内容を匕甚するこずはできたせんが、評䟡したす-ク゚リテキストの各「棚」は次のテヌブルの接続であり、この堎合、PortずVlanIDの間の統䞀された察応を取埗するために必芁です。





そしお、この芁求は、スむッチ内のVlanID盞互接続を統䞀された圢匏で取埗するためのものです。





ポヌトの数が数䞇であり、VLANが10倍であるこずを考えるず、これはすべお、投げたり回したりするこずに非垞に消極的でした。そしお、そのような芁求は、ノヌドずVlanIDごずに行う必芁がありたした。そしお、「すべおを䞀床にアンロヌドしお蚈算する」こずは䞍可胜です。これは、前のステップの結果に䟝存する段階的な操䜜によるパスcの順次蚈算です。



2.3。ルヌティングされたセグメントのサヌビスパスの決定



ここでは、管理システムがMPLSセグメントを介しお珟圚およびスタンバむLSPに関するデヌタを提䟛する1぀のMVNベンダヌから始めたした。アクセスに接続されたアクセスむンタヌフェむスL2 Vlanを知っおいるず、LSPを芋぀けお、NBIシステムぞの䞀連の芁求を通じお、ルヌタヌずそれらの間のリンクで構成されるLSPパスを取埗するこずができたした。





  • スむッチドセグメントず同様に、MPLSサヌビスのLSPパスをアンロヌドするずいう蚘述は、すでに17のサブルヌチンを持぀アルゎリズムをもたらしたした。
  • この゜リュヌションは、このベンダヌが提䟛するセグメントでのみ機胜したした
  • MPLSサヌビス間のゞョむントの定矩を決定する必芁がありたしたたずえば、セグメントの䞭倮に䞀般的なVPLSサヌビスがあり、EPIPEたたはL3VPNのいずれかがそれから分岐しおいたした


たた、制埡システムがない、たたは原則ずしお珟圚のLSP通過に関するデヌタを提䟛しおいない、他のMVNベンダヌの問題にも取り組みたした。いく぀かの解決策を芋぀けたしたが、ルヌタヌを通過するLSPの数は、スむッチに登録されおいるVanIDの数ではなくなりたした。このような倧量のデヌタを「オンデマンド」で遅延させる結局のずころ、運甚情報が必芁です-ハヌドりェアをダりンさせるリスクがありたす。



さらに、远加の質問が発生したした。



  • – , , . .. – MPLS .
  • , LSP, . . .


2.4. .



サヌビス接続のパスに関する受信デヌタは、埌で盎接および逆の問題を解決するずきに参照できるように、どこかに曞き留めおおく必芁がありたす。



リレヌショナルデヌタベヌスに保存するオプションはすぐに陀倖されたした。倚くの゜ヌスからのデヌタを集玄しお、埌で最終的に次のテヌブルセットに分類するのは非垞に難しいのでしょうか。これは私たちの方法ではありたせん。さらに、耇数階の結合ずそのパフォヌマンスに぀いお芚えおおいおください。



デヌタには、サヌビスの構造ずそのコンポヌネントリンク、ノヌド、ポヌトなどの䟝存関係に関する情報が含たれおいる必芁がありたす。



テスト゜リュヌションずしお、XML圢匏ずNative-XMLDB-Existが遞択されたした。



その結果、各サヌビスは次の圢匏でデヌタベヌスに蚘録されたしたコンパクトにするために詳现は省略されおいたす。



<services>
	<service> 
		<id>,<description>   (,  )
		<source>    
		<target>    Z
		<<segment>>  L2/L3
			<topology>      (, /, )
		<<joints>>    (, /, )
	</service>
</services>


盎接および逆の問題のデヌタク゚リは、XPathプロトコルを䜿甚しお実行されたした。





すべお。これで、システムは機胜しおいたす。BSずいう名前のリク゚ストの堎合、トランスポヌトネットワヌクを介した接続のトポロゞが返され、TSのノヌドずポヌトの名前を持぀リク゚ストの堎合、接続に䟝存しおいるBSのリストが返されたす。したがっお、次の結論を出したした...



2.5。







パヌト2の調査結果に向かう代わりに

2.5.1。スむッチドセグメントL2むヌサネットスむッチ䞊のネットワヌクの堎合



  • トポロゞずポヌトに関する完党なデヌタ-VlanIDの察応が必芁です。䞀郚のリンクにVlanIDデヌタがない堎合、アルゎリズムは停止し、パスが芋぀かりたせんでした
  • リレヌショナルデヌタベヌスに察するマルチレベルの非生産的なク゚リ。新しいベンダヌが独自の詳现、パラメヌタヌで衚瀺される堎合-䜜業のすべおの段階でリク゚ストを远加したす


2.5.2。ルヌティングされたセグメントの堎合



  • LSPMPLSサヌビスのトポロゞに関するデヌタを提䟛するMVNSUの機胜によっお制限されたす。
  • – , .. LSP .
  • LSP – ( , “” ).


2.5.3.



  • , , , , ( – , ), , – .
  • . 3-4 .
  • , .. , MPLS .
  • – , .


2.6. -



  • , , .. – .
  • , -
  • (, VlanID)


垌望を実珟するための可胜なオプションを評䟡した埌、これらすべおを「箱から出しお」提䟛するシステムのクラスを決定したした。これはいわゆるいわゆるものです。グラフデヌタベヌス。



最埌の文は盎線的で単玔なものずしお読たれおいたすが、以前は誰もそしおITスペシャリストもそのようなデヌタベヌスクラスに遭遇したこずがないこずを考えるず、圌らは偶然に決定に至りたした同様のデヌタベヌスが蚀及されたしたしかしビッグデヌタ抂芁コヌスでを理解しおいたせんでした。特に、補品Neo4jに぀いお蚀及したした..。説明から刀断するず、すべおの芁件を満たしおいるだけでなく、完党に無料の機胜コミュニティバヌゞョンもありたす。それら。-30日間の詊甚ではなく、䞻芁な機胜を切断するこずはありたせんが、ゆっくりず孊習できる完党に機胜する補品です。遞択における最埌の䞻芁ではないにしおも圹割は、グラフアルゎリズムの幅広いサポヌトによっお果たされたわけではありたせん。






パヌト3。Neo4jでの盎接問題の実装䟋



TSモデルがNeo4jグラフデヌタベヌスにどのように実装されおいるかに぀いおの線圢の説明を匕きずり出さないために、䟋を䜿甚しお最終結果をすぐに瀺したす。



3.1。3GBSのIubむンタヌフェむスのパスをトレヌスする





サヌビスを接続するパスは、ルヌテッドMVNずスむッチドラゞオリレヌラむンの2぀のセグメントを通過したすラゞオリレヌステヌションはむヌサネットスむッチずしお機胜したす。RRLセグメントを通過するパスは、パヌト2で説明したのず同じ方法で、RRLセグメントに沿ったBSむンタヌフェむスVlanIDがMVNボヌダヌルヌタヌに枡されるこずによっお決定されたす。MVNセグメントは、境界RRLセグメントを含むルヌタヌを、BSコントロヌラヌRNCが接続されおいるルヌタヌに接続したす。



最初に、Iubパラメヌタヌから、どのMVNがBSのゲヌトりェむ境界MVNであり、どのコントロヌラヌがBSによっお凊理されるかが正確にわかりたす。



これらの初期条件に基づいお、セグメントごずにデヌタベヌスぞの2぀のク゚リを䜜成したす。デヌタベヌスぞのすべおのク゚リはCypher蚀語で構築されおいたす..。今の説明に気を取られないように、単に「グラフ甚のSQL」ず考えおください。



3.1.1。RRLセグメント。VlanIDパス



利甚可胜なVlanIDおよびL2トポロゞデヌタに基づいおサヌビスパスをトレヌスするためのサむファヌ芁求

サむファヌク゚リのフラグメント

構築あり-ク゚リのあるステヌゞの結果を次のステヌゞに枡す凊理のパむプラむン化

䞭間ク゚リ結果Neo4jコン゜ヌルでの芖芚的衚珟-「Neo4jブラりザ」
Iubサヌビスパスが怜玢されるBSノヌドずMVNノヌドを取埗する



match (bts:node {name:'BTS_29__N}), (mbh:node {name:'MBH_29_YYYYY_N})
with bts, mbh


BSむンタヌフェヌスIubのVlanノヌドの受信



match (bts)-[:port_attach]->(:port)-[:vlan]->(vlan:vlan) 
	with bts as bts,  vlan.vlanid AS vlan_bts   , mbh 


VlanID IubBSが登録されおいるポヌトでBSず同じサむトにある車䞡のノヌドを遞択したす

MATCH  ((bts)-->(pl_bts:PL)-->(n:node)-[:port_attach]->(pid:port)-->(v:vlan)) where (v.vlanid=vlan_bts and v.updated > bts.updated - 864000000) 
with distinct(v) as v,n,mbh,vlan_bts, bts


Dijkstraのアルゎリズムを䜿甚しお、BSのサむトのTSのVlanIDから境界MVNたでの最短パスを芋぀けたす。


CALL apoc.algo.dijkstra(v, mbh, 'port_attach>|port_hosted>|<node_vlan|v_ptp_vlan>|ptp_vlan>|located_at>|to_node>', 'weight',10000000000.0,1) YIELD path as path_pl_mbh


Vlanチェヌンから、ノヌド、ポヌト、およびポヌト間の接続のリストを取埗したす。これは、最終的に、BSからボヌダヌルヌタヌにIubサヌビスを接続する方法になりたす。

WITH FILTER(node in nodes(path_pl_mbh) WHERE  (node:vlan)) as vlans_node , path_pl_mbh, bts ,mbh , vlan_bts
unwind vlans_node as vlan_node
match (vlan_node)-->(p1:port)
match p=(p1)-[:port_hosted|to_port|v_to_port|to_node|located_at]->()
return p, bts, mbh


結果





ご芧のずおり、デヌタが郚分的に䞍足しおいるにもかかわらず、パスは取埗されおいたす。この堎合、BSポヌトず無線䞭継局のポヌトずのゞャンクションに関する情報はありたせん。



3.1.2。RRLセグメント。L2トポロゞパス



3.1.1項で詊行が行われたずしたしょう。VlanIDパラメヌタのデヌタが完党にたたは郚分的に欠萜しおいるために倱敗したした。蚀い換えるず、MVNノヌドに到達するこのような連続チェヌンは構築されたせん。



次に、L2トポロゞに埓っお、サヌビス接続をMVNぞの最短パスずしお定矩しおみたす。

match (bts:node {name:'BTS_29__N}), (mbh:node {name:'MBH_29_YYYYY_N})
with bts, mbh
CALL apoc.algo.dijkstra(bts, mbh, 'located_at>|to_node>|to_port>|v_to_port>|port_hosted>|port_attach>', 'weight',1.0,1) YIELD path as p
return p


結果





ご芧のずおり、同じ結果が埗られたす。ここで、BSずRRSのゞャンクションに関する情報の䞍足は、それらが配眮されおいるサむトのオブゞェクトノヌドを介しお接続を通過させるこずによっお補われたす。もちろん、この方法の粟床は䜎くなりたす。䞀般に、Vlanは、Dijkstraのアルゎリズムによっお提案された最短パスに沿っお登録されない堎合がありたす。ただし、リク゚ストは2぀の操䜜のみで構成されたす。



3.1.3MVNセグメント。境界MVNからコントロヌラヌたでのパスをトレヌスする



ここでは、Dijkstraのアルゎリズムも䜿甚したす。

最小限のコストで1぀のパス

match (mbh:node {name:’MBH_29_XXX’}), (rnc:node {name:’RNC_YYY’})
CALL apoc.algo.dijkstra(mbh,rnc, 'port_attach>|port_hosted>|<node_vlan|ptp_vlan>|located_at>|to_node>|to_port_mbh>', 'weight',10000000000.0,1) YIELD path as path
return path


コストが最も䜎い䞊䜍2぀のパスメむン+代替

match (mbh:node {name:’MBH_29_XXX’}), (rnc:node {name:’RNC_YYY’})
CALL apoc.algo.dijkstra(mbh,rnc, 'port_attach>|port_hosted>|<node_vlan|ptp_vlan>|located_at>|to_node>|to_port_mbh>', 'weight',10000000000.0,2) YIELD path as path
return path


最小限のコストで䞊䜍3぀のパスメむン+ 2぀の遞択肢

match (mbh:node {name:’MBH_29_XXX’}), (rnc:node {name:’RNC_YYY’})
CALL apoc.algo.dijkstra(mbh,rnc, 'port_attach>|port_hosted>|<node_vlan|ptp_vlan>|located_at>|to_node>|to_port_mbh>', 'weight',10000000000.0,3) YIELD path as path
return path




同様に、この堎合、MVNずRNCの盎接ゞョむントに関する情報はありたせん。ただし、これは、アルゎリズムによっお想定されおいる堎合でも、サヌビスパスの構築を劚げるものではありたせんこれに぀いおは埌で詳しく説明したす。



3.2。人件費



珟圚瀺されおいる盎接問題の実装は、「アルゎリズム、プログラム、結果を保存および取埗する方法を開発する」ずいうアプロヌチずは著しく異なりたす。぀たり、すべお「デヌタベヌスにク゚リを曞き蟌む」こずになりたす。今埌、単玔なグラフモデルの開発から、リレヌショナルデヌタベヌスからNeo4jぞのデヌタの読み蟌み、ク゚リの䜜成、そしお結果が埗られるたでのサむクル党䜓で、合蚈1日かかるこずに泚意しおください。



3〜4か月vs1日!!! これが、グラフデヌタベヌスぞの最終的な出発の最埌の理由でした。






パヌト4。グラフデヌタベヌスNeo4jずそれにデヌタをロヌドする



4.1。リレヌショナルデヌタベヌスずグラフデヌタベヌスの比范



比范特性 リレヌショナルデヌタベヌス グラフDB
デヌタストレヌゞ デヌタは個別のテヌブルのセットに栌玍され、その行間の関係は、1察1、1察倚、倚察倚の特別な関係を介しおキヌフィヌルドによっお決定できたす。



( / ). .



, , , , , . / , . , ,

( ) . . – . . : , , .

JOIN , – . , .. NESTED-LOOP

( ). – JOIN , .

JOIN chain JOIN – . .. JOIN . “ ” – Oracle, Neo4j:



. – .

- / , ,

リク゚ストは、察象のノヌド/リンクに関連付けられおいるグラフの郚分を正確に切り取り、それに察しおのみ機胜したすが、グラフデヌタベヌスのサむズは任意にするこずができたす。たずえば、リク゚ストはノヌド「MVN-X」から送信されたすが、グラフの合蚈は1000ず100䞇の䞡方のMVNノヌドになりたす。怜玢は「MVN-X」のみを含むグラフの「セグメント」内に残りたす。





4.2。デヌタ・モデル



L3トポロゞレベルたでのTSプレれンテヌションの基本モデル





もちろん、このモデルは提瀺されたモデルよりも広範囲であり、MPLSサヌビスず仮想むンタヌフェむスも含たれおいたすが、簡単にするために、その䞀郚を限定的に怜蚎したす。



このようなモデルでは、同じ地域の2぀のネットワヌク芁玠間の関係は次のように衚すこずができたす。





4.3。デヌタのロヌド



車䞡のパラメヌタずトポロゞヌのデヌタベヌスからデヌタをロヌドしたす。SQLデヌタベヌスからNeo4jにロヌドするには、APOCラむブラリapoc.load.jdbcを䜿甚したす。これは、RDBMSぞの接続文字列ずSQLク゚リのテキストを入力ずしお受け取り、CYHPER匏を介しおノヌド、リンク、たたはパラメヌタにマップされる文字列のセットを返したす。このような操䜜は、モデルオブゞェクトのタむプごずにレむダヌごずに実行されたす。



たずえば、ネットワヌク芁玠ノヌドを衚すノヌドをロヌド/曎新するためのパス

with "jdbc:oracle:thin:usr /passw@IP:1521/db" as url // DB connection string
CALL apoc.load.jdbc(url,
" select distinct mr,region_code,site_code,node, nodeip,TYPE,VENDOR, coalesce(updated, trunc(localtimestamp-7)) as updated
from (
    select distinct mr,region_code,site_code,node, nodeip,TYPE,VENDOR, updated from GRAPH_IPMPLS_NE
    union
    select distinct mr,region_code,site_code,node, nodeip,TYPE,VENDOR, updated from GRAPH_RRN_NE
    union
    select distinct mr,region_code,site_code,node, nodeip,TYPE,VENDOR, updated from GRAPH_CONTROLLERS_NE
) t
where mr is not null and region_code is not null and site_code is not null "
) YIELD row


プロシヌゞャapoc.load.jdbcを呌び出し

お、デヌタセットを取埗したす
match (reg:Region {region_code:row.REGION_CODE})-->(pl:PL {SiteCode:row.SITE_CODE}) 
with pl, row, {updated:row.UPDATED, weight:1000000000000} as conn_params




地域およびサむトコヌドごずのデヌタセットの各行に぀いお

、察応するサむトを衚すノヌドが怜玢されたす
	merge (pl)<-[loc:located_at]-(n:node {ip:row.NODEIP})
	merge (pl)-[to_n:to_node]->(n)
		set n.name=row.NODE
		set n.region_code = row.REGION_CODE
		set n.type = row.TYPE
		set n.updated = row.UPDATED
		set n.vendor = row.VENDOR
		set loc += conn_params
		set to_n += conn_params


サむトオブゞェクトごずに、

関連するネットワヌク芁玠ノヌドが曎新されたす。

MERGE + SET呜什が䜿甚され、

オブゞェクトのパラメヌタヌが曎新され たす。

デヌタベヌスに既に存圚する堎合は曎新され、存圚しない堎合

はオブゞェクトが䜜成されたす。

ノヌドノヌドのパラメヌタずPLノヌドずの接続も蚘録されたす。


など-TSモデルのすべおのレベルにわたっお。



[曎新枈み]フィヌルドは、列内のデヌタの関連性を制埡するために䜿甚されたす。特定の期間より長く曎新されないオブゞェクトは削陀されたす。






パヌト5。Neo4jの逆の問題を解決する



私たちが最初に始めたずき、「サヌビストレヌス」ずいう衚珟は、䞻に次の関連付けをもたらしたした。





぀たり、サヌビスの珟圚のパスが特定の時間に盎接トレヌスされたす。



これは、グラフデヌタベヌスにあるものずたったく同じではありたせん。GDBでは、関連する各ネットワヌク芁玠での構成 を決定するオブゞェクトの関係に埓っお、サヌビスがトレヌスされたす。぀たり、構成はグラフモデルの圢匏で衚され、結果のトレヌスはこの構成を衚すモデルを通過したす。



スむッチドセグメントずは異なり、mplsセグメントの実際のサヌビスルヌトは動的プロトコルによっお決定されるため、いく぀かを受け入れる必芁がありたした...



5.1。ルヌテッドセグメントの前提条件



なぜならmplsサヌビスの構成デヌタから、動的ルヌティングプロトコルによっお制埡されるセグメントを通る正確なパスを決定する方法はありたせん特にTraffic Engineeringが䜿甚されおいる堎合-゜リュヌションにはDijkstraアルゎリズムが䜿甚されたす。

はい、NBIむンタヌフェヌスを介しお実際のサヌビスLSPのパスを提䟛できる管理システムがありたすが、これたでのずころ、そのようなベンダヌは1぀しかなく、MVNセグメントには耇数のベンダヌがありたす。



はい、AS内のルヌティングプロトコルを分析するためのシステムがありたす。これは、IGPプロトコルの亀換をリッスンするこずにより、察象のプレフィックスの珟圚のルヌトを刀別できたす。しかし、ダりンしたボヌむングのようなシステムがあり、そのようなシステムを同じモバむルバックホヌルのすべおのASに展開する必芁があるこずを考えるず、゜リュヌションのコストは、すべおのラむセンスずずもに、完党に燃料を補絊したずきにアンガラロケットに接続された鋳鉄補の橋によっお撃墜されたボヌむングのコストになりたす。そしおこれは、そのようなシステムが、BGPを䜿甚しお耇数のASを通るルヌトを説明する問題を完党に解決しないずいう事実にもかかわらずです。



したがっお、これたでのずころ。もちろん、暙準のDijkstraのアルゎリズムの条件にいく぀かの小道具を远加したした。



  • むンタヌフェむス/ポヌトのステヌタスの説明。切断されたリンクはコストが増加し、可胜なパスオプションの最埌に移動したす。
  • バックアップリンクステヌタスの説明。パフォヌマンス監芖システムによれば、mplsチャネル内のキヌプアラむブトラフィックのみの存圚がそれぞれ蚈算され、そのようなチャネルのコストも増加したす。


5.2。Neo4jの逆問題を解決する方法



リマむンダヌ。逆のタスクは、トランスポヌトネットワヌクTSの特定のチャネルたたはノヌドに䟝存するサヌビスのリストを取埗するこずです。



5.2.1。切り替えられたL2セグメント



サヌビスパスずサヌビス構成が実質的に同じであるスむッチドセグメントの堎合でも、CYPHER芁求によっお問題を解決できたす。たずえば、3.1.1項の盎接問題を解決した結果からの無線リレヌフラむトの堎合、無線リレヌリンクモデムから芁求を行いたす。これを通過するすべおのVlanチェヌンを「拡匵」したす。



match (tn:node {name:'RRN_29_XXXX_1'})-->(tn_port:port {name:'Modem-1'})-->(tn_vlan:vlan)
with tn, tn_vlan, tn_port
call apoc.path.spanningTree(tn_vlan,{relationshipFilter:"ptp_vlan>|v_ptp_vlan>", maxLevel:20}) yield path as pp
with tn_vlan,pp,nodes(pp)[-1] as last_node, tn_port
	match (last_node)-[:vlan]->(:port)-->(n:node)
	return pp, n, tn_port


赀いノヌドは、Vlanを展開しおいるモデムを瀺しおいたす。3぀のBSが䞞で囲たれ、その結果、Modem1を䜿甚したトランゞットVlanの展開が䞻導されたした。





このアプロヌチにはいく぀かの問題がありたす。



  • 構成されたVlanは、ポヌトに぀いお認識され、モデルにロヌドされおいる必芁がありたす。
  • 断片化の可胜性があるため、Vlanチェヌンは垞にタヌミナルノヌドに出力されるずは限りたせん。
  • Vlanチェヌンの最埌のノヌドがタヌミナルノヌドに属しおいるのか、それずもサヌビスが実際に続行されおいるのかを刀断するこずはできたせん。


぀たり、任意の「䞭間」から、および1぀のOSIレむダヌからではなく、゚ンドノヌド/セグメントのポむント間でサヌビスをトレヌスする方が垞に䟿利です。



5.2.2。ルヌティングされたセグメント



ルヌテッドセグメントでは、5.1節ですでに説明したように、遞択する必芁はありたせん。䞭間MPLSリンクの珟圚の構成のデヌタに基づいお逆の問題を解決する手段はありたせん。構成はサヌビストレヌスを明瀺的に定矩したせん。



5.3。決定



決定は以䞋のように行われたした。



  • BSずコントロヌラヌを含む車䞡モデルのフルロヌドが実行されたす
  • すべおのBSに぀いお、盎接的な問題が解決されたす。぀たり、BSから境界MVNぞ、次に境界MVNから察応するコントロヌラヌたたはゲヌトりェむぞのIub、S1サヌビスのトレヌスです。
  • トレヌス結果は、次の圢匏で通垞のSQLデヌタベヌスに曞き蟌たれたす。BS名-サヌビスパス芁玠の配列


したがっお、ノヌドTSたたはノヌドTS +ポヌトの条件でデヌタベヌスにアクセスするず、サヌビスのリストBSが返され、そのパス配列には必芁なノヌドたたはノヌド+ポヌトが含たれたす。










パヌト6。結果ず結論



6.1。結果



その結果、システムは次のように機胜したす。





珟時点では、盎接的な問題を解決するために、すなわち 個々のサヌビスの劣化の原因を分析する際に、Neo4jからのトレヌス結果パスを、パスの個々のセクションの品質ずパフォヌマンスに関するデヌタを重ね合わせお衚瀺するWebアプリケヌションが開発されたした。





TSのノヌドたたはチャネルに䟝存するサヌビスのリストを取埗するために逆問題の解決、倖郚システム特にRemedy甚にAPIが開発されたした。



6.2。結論



  • どちらの゜リュヌションも、サヌビス品質ずトランスポヌトネットワヌクの分析の自動化を質的に新しいレベルに匕き䞊げたした。
  • さらに、BSサヌビスのルヌトに関する既補のデヌタが存圚する堎合、ルヌトの容量ず品質の芳点から、特定のサむトにB2B顧客を含めるこずの技術的可胜性に関するデヌタをビゞネスナニットに迅速に提䟛するこずが可胜になりたした。
  • Neo4jは、ネットワヌクグラフの問題を解決するための非垞に匷力なツヌルであるこずが蚌明されおいたす。この゜リュヌションは十分に文曞化されおおり、さたざたな開発者コミュニティで幅広くサポヌトされおおり、絶えず開発および改善されおいたす。


6.3。予定



蚈画がありたす



  • Neo4jデヌタベヌスでモデル化された技術セグメントの拡匵
  • ブロヌドバンドサヌビスのトレヌスアルゎリズムの開発ず実装
  • サヌバヌプラットフォヌムのパフォヌマンスの向䞊


枅聎ありがずうございたした



All Articles