アリスタ。 知人





Habrには、 Arista Networksのスむッチボヌドに関する単䞀の投皿はありたせん。 私の意芋では、 いく぀かのコメントがありたすが 、意味に関しおは非垞に前向きです。



この䌚瀟、その機噚、 EOSおよびCLIオペレヌティングシステムに぀いお曞きたいず思いたした。







蚀い蚳



私はベンダヌの代衚ではありたせん。たた、ラむン党䜓に぀いお深い知識はありたせん。 このトピックは抂芁的な性質のものであり、私の個人的な意芋を反映しおいたす。 読者の意芋に぀いおは、コメントず新しいトピックがありたす。



アリスタの歎史



Arista Warriorの本ずサむトの察応するセクションによるず、3぀の重芁な人物がArista Networksの登堎に眪を犯しおいたす。





Jayshree UllalはCEOです。 圌女はCiscoの䞊玚副瀟長であり、Cisco Nexus 7000、Catalyst 4500、およびCatalyst 6500の範囲を担圓しおいたした。 



補品ラむン。



Arista Networks は 、スむッチず、もちろん関連補品電源ケヌブル、トランシヌバヌ、サヌビスなどのみを提䟛しおいたす 。 Aristaは、デヌタ凊理センタヌDPCで䜿甚するためにスむッチを配眮しおいたす。



Arista Productsクむックリファレンスガむドの䞀郚のパラメヌタヌの短い無料の衚クリック可胜その他のパラメヌタヌ、たずえば、 VXLANのハヌドりェアサポヌトがありたす 





同瀟は、ルヌタヌ、Wi-Fi AP、SOHOデバむス、ファむアりォヌル、たたはその他のネットワヌクデバむスを補造しおいたせん。



マヌチャントシリコン



Aristaスむッチのデヌタプレヌンは、専甚の集積回路 ASICを䜿甚しお構築されおいたす。



発生源の皮類によっお、ASICは次のように分類されたす。



スマヌトフォンの䞖界からの類掚の簡単な䟋



Aristaは独自のASICを開発しおいたせんが、スむッチでIntelおよびBroadcomのMerchant Siliconを䜿甚しおいたす。



䞀方では、これはナニヌクではありたせん。 たずえば、Broadcom ASIC StrataXGS Trident IIでは、䞀郚のベンダヌ向けに次のスむッチが構築されおいたすベンダヌはアルファベット順。



䞀方、このアプロヌチでは、次のようなスむッチパラメヌタヌが䜿甚されたす。



遅延やバッファヌの䜿甚など、Arista Networksスむッチのこのような特性に぀いおは、 Habréに぀いおのプレれンテヌション、噂、およびコメントがありたす。



゚オス



EOSは、Aristaスむッチを提䟛するモゞュラヌオペレヌティングシステムです。 これは、名前だけでなく、スむッチの行党䜓に察するものです。 CiscoスむッチでIOSを少なくずも1回曎新したこずがある人なら誰でも、c3750 * .binを䜿甚するスむッチではIOS c3550 * .binが機胜しないこずを知っおいたす。 たた、ゞュニパヌネットワヌクスで働いおいた人は誰でも、jinstall-ex-4500 * .tgzがjinstall-ex-4200 * .tgzに眮き換わらないこずを知っおいたす。 Aristaでは、これたでのずころ、OSを䜿甚しお行党䜓の単䞀ファむルを䜜成するこずが刀明しおいたす。 EOSのメむンプラスではありたせんが、䟿利です。



EOSはFedoraに基づいおいたす。 OSは個別のCPU珟圚はx86で実行されるため、コントロヌルプレヌン「コントロヌルプレヌン」-CPU、EOSずデヌタプレヌン「デヌタ転送プレヌン」-ASICを分離できたす。 これらはすべお新しいものではありたせんが、EOSには他のベンダヌのOSにはないアヌキテクチャ機胜がありたす。 そのため、たずえば、スむッチの操䜜に必芁なコンポヌネントは互いに盎接デヌタを亀換するのではなく、特別なマネヌゞャヌデヌタベヌス-Sysdbを介しおのみデヌタを亀換したす。 Sysdbは、プロセス間の通信甚の共通バスであるず同時に、これらのプロセスの䜜業情報甚のデヌタベヌスでもありたす。 たずえば、ASICに入る前にIGPを介しお到着するルヌトは、IGPを担圓するプロセスによっおSysdbに送信されたす。 Sysdbはそれをビンに保存し、ASICずの察話を担圓するプロセスに転送したす。



Sysdbを介しお䜜業するこずにより、より高い生存率ず安定性を提䟛できたす。 たずえば、SNMPを担圓するサヌビスで䜕かが発生したずえば、芁求内の耇雑なデヌタが障害を匕き起こした、圌は死亡したした。 プロセスマネヌゞャProcMgrは、SNMPサヌビスを自動的に再起動したす。 開始埌、すべおのサヌビスはSysdbを䜿甚し、それらのデヌタがすでにそこにある堎合は、それらを埩元し、匕き続き䜜業したす。



OSの埓来の構成ネットワヌクデバむスを含むでは、コンポヌネント、サヌビス、およびサヌビスは互いに盎接デヌタを転送したす。 サヌビスプロセスを再起動たたは「クラッシュ」するず、すべおの運甚デヌタルヌト、統蚈などが倱われ、䞍運なプロセスが動䜜しおデヌタを亀換しおいる他のサヌビスにも圱響を䞎える可胜性がありたす。仕事に必芁な条件。



「埓来のOS」ずArista EOSの抂略構造



 EOS Architecture Whitepaperの 写真 。



このようなEOSデバむスは完党な安定性ず信頌性を保蚌するものではありたせんが、それでも䜕もないよりはたしです。 そしお、Sysdb ISSUサヌビスを介しお機胜するこずで、実装されおいたす。



CLI


CliEOSではAristaのすべおの実行䞭のアプリケヌションは倧文字でもSysdbを介しお動䜜したす。

CLIコマンドはPythonで蚘述されおいたす。
[admin@localhost ~]$ cd /usr/lib/python2.7/site-packages/CliPlugin/ [admin@localhost CliPlugin]$ ls -a *Cli*py AaaCli.py CliSchedulerCli.py FaultInjectionCli.py IraIpCli.py MlagShowCli.py PimCli.py RipShowTechCli.py TapAggIntfCli.py AclCli.py ClockCli.py FhrpCli.py IraIpIntfCli.py MlagTunnelCli.py PimShowTechCli.py RouteEventMonCli.py TcpdumpCli.py AclCliRules.py CpuFabricCli.py FileCli.py IraShowTechCli.py MlagWarningCli.py PmbusCli.py RouteMapCli.py TechSupportCli.py AgentCli.py DcbxCli.py FruCli.py IraVrfCli.py ModuleCli.py PortSecCli.py RoutingBgpCli.py TrackingCli.py AgentPingCli.py DebugMessageCli.py IgmpCli.py LagCli.py ModuleIntfCli.py PowerCli.py RoutingIsisCli.py UplinkFailureDetectionCli.py AgentResourceCli.py DebuggingCli.py IgmpProfileCli.py LagIntfCli.py MoreCli.py PowerDiagsCli.py RoutingOspf3Cli.py VersionCli.py AgentShutdownCli.py DhcpRelayHelperCli.py IgmpShowTechCli.py LagIntfMlagCli.py MrouteCli.py PsmiCli.py RoutingOspfCli.py VlanCli.py ArpEventMonCli.py DiagCli.py IgmpSnoopingCli.py LagShowTechCli.py MrouteEtbaCli.py PtpCli.py RoutingRipCli.py VlanIntfCli.py ArpIp6Cli.py DonkeyCli.py IgmpSnoopingDebugCli.py LanzCli.py MrouteEventMonCli.py QosCli.py SectionCliLib.py VmTracerCli.py ArpIpCli.py EbraEthIntfCli.py IgmpSnoopingEtbaCli.py LanzIntfCli.py MrouteShowTechCli.py RadiusCli.py SendCli.py VmTracerIntfCli.py ArpIpIntfCli.py EbraEthIntfCliModel.py IgmpSnoopingEventMonCli.py LauncherDaemonCli.py MsdpCli.py RedSupCli.py SflowCli.py VxlanCli.py BackupIntfCli.py EbraShowTechCli.py IgmpSnoopingShowTechCli.py LinkFlapCli.py NetworkCli.py RedSupCliFormatSpec.py ShellCli.py WaitForWarmupCli.py BeaconLedCli.py EbraSnmpCli.py InstallCli.py LldpConfigCli.py NetworkToolsCli.py RedSupFileCli.py SnmpCli.py WatchCli.py BfdCli.py EmailCli.py IntfCli.py LldpStatusCli.py NetworkUrlCli.py ReloadCauseCli.py StormControlCli.py XcvrCli.py BootCli.py EnvironmentCli.py IntfRangeCli.py LoggingCli.py OldDhcpRelayCli.py ReloadCli.py StpCli.py XcvrConfigCli.py BridgingCli.py ErrdisableCli.py IntfSnmpCli.py LoopbackIntfCli.py OpenFlowCli.py ReloadConfigSaveCli.py StpCliLib.py BridgingCliModel.py EthIntfCli.py Ip6NdCli.py MacEventMonCli.py PciCli.py ReloadElectionCli.py StpIntfCli.py BridgingEtbaCli.py EthShowTechCli.py IraCommonCli.py MacFlapCli.py PeerIntfCli.py ReloadFileSyncCli.py SupeSessionCli.py CliCli.py EventCli.py IraEtbaCli.py ManagementActiveIntfCli.py PfcCli.py RibIp6Cli.py SwitchIntfCli.py CliCliModel.py EventMonCli.py IraIp6Cli.py MirroringCli.py PhyCli.py RibIpCli.py SysMgrCliLib.py CliError.py ExtensionMgrCli.py IraIp6IntfCli.py MlagConfigCli.py PhyConfigCli.py RibShowTechCli.py TacacsCli.py [admin@localhost CliPlugin]$ head VlanCli.py ==> VlanCli.py <== # Copyright (c) 2006-2011 Arista Networks, Inc. All rights reserved. # Arista Networks, Inc. Confidential and Proprietary. #------------------------------------------------------------------------------- # This module implements VLAN configuration. In particular, it provides: # - the Vlan class # - the VlanSet class # - the "config-vlan" mode # - the "[no] vlan <vlan_set>" command # - the "[no] name <vlan_name>" command
      
      







ナヌザヌは䞡方の組み蟌みコマンドを倉曎し、独自のコマンドを䜜成できたす。



CLI自䜓での䜜業は、Cisco IOS CLIでの䜜業に䌌おいたす。 最初は、これはコピヌのようですHuaweiではなくコピヌです。 しかし、その埌、iOSには非垞に欠けおいた改善が明らかになりたす。



たずえば、むンタヌフェむスグルヌプのパラメヌタを倉曎する堎合、「範囲」ずいう単語は䞍芁で、むンタヌフェむス番号が巊偎に衚瀺されたす。

 localhost(config)#int e1,3,5 localhost(config-if-Et1,3,5)# localhost(config-if-Et1,3,5)#load-interval 10
      
      





たたは、むンタヌフェむスおよびむンタヌフェむスのグルヌプの䜿甚率を確認できたす。

 localhost#sh int e3,e48 | i rate 10 seconds input rate 5.26 Gbps (53.3% with framing overhead), 433507 packets/sec 10 seconds output rate 12.2 Mbps (0.2% with framing overhead), 21824 packets/sec 10 seconds input rate 12.2 Mbps (0.2% with framing overhead), 21826 packets/sec 10 seconds output rate 5.26 Gbps (53.3% with framing overhead), 433546 packets/sec
      
      





たた、メガビットずギガビットのどちらを扱うのかを理解するために、カヌ゜ルでポヌト速床の3文字を遞択する必芁はたったくありたせん。 しかし、それだけではありたせん。 EOSは、むンタヌフェヌス䜿甚率をで衚瀺したす。



EOSでは、耇数のパむプを䜜成し、GNU / Linuxプログラムを䜿甚できたす。

 sho run | grep X | grep -v Y | more
      
      





コンフィギュレヌションモヌドでコマンドの前に「do」を远加する必芁はありたせん。



アクティブな構成ず保存された構成の差分を確認できたす。

 localhost#sh run diffs --- flash:/startup-config +++ system:/running-config @@ -190,9 +190,10 @@ ! interface Loopback0 ipv6 enable + ipv6 address 2001:db8:ffff::ffff/128 ipv6 address 2001:db8::1/128 ip address 10.10.10.1/32 - ip address 10.255.255.1/32 secondary + ipv6 ospf priority 20 ipv6 ospf 1 area 0.0.0.0 ! interface Management1 @@ -200,7 +201,6 @@ ! interface Vlan10 description test - shutdown mtu 9000 ip address 10.1.1.1/24 !
      
      





あなたはbashに入っお呚りを芋回すこずができたす

 localhost#bash Arista Networks EOS shell [admin@localhost ~]$ ls / bin dev export lib mnt opt proc sbin srv tmp var boot etc home media monitor persist root selinux sys usr [admin@localhost ~]$ sudo -s bash-4.1# cat /proc/cpuinfo | grep name model name: AMD Turion(tm) II Neo N41H Dual-Core Processor model name: AMD Turion(tm) II Neo N41H Dual-Core Processor
      
      





すべおのACLには名前が付けられおいたす。 郚屋を芚えお混乱する必芁はありたせん。 叀いアプロヌチの支持者にずっお、名前ずしお数字を䜿甚するこずは可胜です。



などなど。 EOSのCLIは単なるコピヌではなく、䟿利な機胜を備えた自己完結型のシェルであり、その祖先からはかけ離れおいたす。



拡匵可胜なOS


「Extensible Operating System」の「Extensible」ずいう蚀葉は 、OSの機胜の拡匵性を意味するこずを意図しおいたす。 これは、スむッチにプログラム、デヌモン、スクリプトをむンストヌルする機胜により実珟されたす。 たずえば、OpenVPNクラむアントをむンストヌルしお実行できたす。 Pythonスクリプト、たたはExaBGPを実行したす。 Sysdbず友達になり、RPMでパッケヌゞを収集したら、それらをネットワヌク䞊に広げるこずができたす。



EOSのその他の機胜




アブヌト



AbootはEOSの䞀郚ではなく、Cisco ROMmonのようなEOSブヌトロヌダヌです。



圌はずおもシンプルで理解しやすいので、圌に぀いお話をしたいです。 AbootはBusyBoxにすぎたせん。 EOSむメヌゞずログを含むすべおのデヌタは、内蔵フラッシュドラむブに保存されたす。 Abootを䜿甚するず、USBポヌトに接続された倖郚USBドラむブぞのアクセスず同様にアクセスしお、問題が発生した堎合にデバむスを埩元できたす。 Abootに入るのも簡単です。タンバリンず螊ったり、ボタンを぀たんだり、奇劙なコヌドをコン゜ヌルに送ったりするこずなく-CRTL +C。



これは、Abootのシンプルさず機胜の玹介に圹立぀ず思いたす。
 Aboot 2.0.5-430838 Press Control-C now to enter Aboot shell ^CWelcome to Aboot. Aboot# echo $SHELL /bin/sh Aboot# arp devmem initblockdev overcast-lcd swiinfo ash df initnetdev ping switch_root autoboot dirname insmod ping6 switchroot base64 dmesg iostat pmap sync basename dosfsck ip poweroff sysinit blockdev dropbearmulti ipcalc powertop tail boardinit du kexec ps tar boot echo kill pwd tee bootchartd egrep ln readlink telnet bunzip2 env login realpath tftp burnK7 expr losetup reboot time burnMMX false ls recover touch burnP6 fdisk lsmod reset tr busybox fgconsole lspci rev traceroute bzcat fgrep lsusb rm traceroute6 cat find md5sum rmdir true checkpass flashrom mdev rmmod udhcpc chgrp flock mkdir route umount chmod free mkdosfs rx uname chown fsck.msdos mkfs.vfat scp unxz chroot fsck.vfat mknod sed unzip clear fullrecover mktemp setpci vi cmp grep modinfo sh vmcore-dmesg cp gunzip more sha1sum wget cpio halt mount sleep which cut head mpstat smemcap xz date help mv ssh xzcat dbclient hexdump nbd-client stat yes dd ifconfig netconf stty zcat devio init nvramtool sum Aboot# exit Restarting system.
      
      







ipcalcでも䟿利です。



申蟌み



前述のように、アリスタネットワヌクスはデヌタセンタヌの機噚を察象ずしおおり、最適な䜿甚のために次の回路オプションを提䟛しおいたす。







STPおよびPVSTなどのより高床なオプションを䜿甚しお、リングトポロゞたたは混合トポロゞを構築するこずを劚げるものは䜕もありたせん。 しかし、これは信頌性、スケヌラビリティ、䜿いやすさに悪圱響を及がしたす。



All Articles