Skip to content
/ dracon Public

Draft of the config. Virtual TFTP-server to building configs on the fly.

License

Notifications You must be signed in to change notification settings

xcme/dracon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dracon (Draft of the config) - TFTP-сСрвСр для Linux/FreeBSD, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. Π€Π°ΠΉΠ»Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° основС простых тСкстовых шаблонов ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ TFTP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ сСрвСром ΠΈΠ»ΠΈ отправляСмыС Π½Π° сСрвСр, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π±Π°Π·Π΅ MySQL.

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСрвиса

БСрвис Dracon ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатывался для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ 'Π½Π° Π»Π΅Ρ‚Ρƒ' ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² D-Link, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ DES-3028, DES-3200 ΠΈ Ρ‚.Π΄. ΠŸΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ этих устройств ΠΎΡ‡Π΅Π½ΡŒ часто Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΠΎΡ€Ρ‚ΠΎΠ². Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ настройкС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° обнаруТСния ΠΏΠ΅Ρ‚Π΅Π»ΡŒ, сСгмСнтации Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ управлСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΊΠ°ΡΡ‚-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ трСбуСтся Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡ€Ρ‚. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Π΅Ρ… ΠΏΠΎΡ€Ρ‚Π°Ρ…, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ клиСнтскоС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ multicast-vlan Π² качСствС источника Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° трСбуСтся явно Π·Π°Π΄Π°Ρ‚ΡŒ uplink-ΠΏΠΎΡ€Ρ‚.

Π ΠΎΠ»ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅. НапримСр, для всСх ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² DES-3200-28 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ‹ 1-24 ΠΊΠ°ΠΊ абонСнтскиС, 25-28 ΠΊΠ°ΠΊ ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅, Π° сам 25-ΠΉ ΠΏΠΎΡ€Ρ‚ ΠΏΡ€ΠΈ этом ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π°ΠΏΠ»ΠΈΠ½ΠΊΠΎΠΌ. Но Ρ‡Π΅ΠΌ большС разрастаСтся ΡΠ΅Ρ‚ΡŒ, Ρ‚Π΅ΠΌ большС появляСтся Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ ΠΎΡ‚ схСмы - ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ€Ρ‚ Π² качСствС Π°ΠΏΠ»ΠΈΠ½ΠΊΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ собствСнноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² абонСнтскиС ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΆΠ΅ самих Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅. ΠŸΡ€ΠΈ этом конфигурация, которая Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для "стандартного" ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ устройства. ЗагруТая Π½Π° устройство Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΌ послСдствиям. Β© :)

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π±ΠΈΠ»Π»ΠΈΠ½Π³Π΅ Ρ‚ΠΈΠΏ (Ρ€ΠΎΠ»ΡŒ) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ этих Ρ‚ΠΈΠΏΠΎΠ². Π”Π΅Π»Π°Ρ‚ΡŒ послСднСС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, разумССтся, Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. ИмСнно поэтому появился сСрвис Dracon, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ автоматичСски, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°.

ВозмоТности Dracon

  • ГСнСрация ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для ΠΏΠΎΡ€Ρ‚Π° ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ для самого устройства)
  • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·Π΅ MySQL Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях (ΠΊΡ€ΠΎΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ПО)
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ) вмСсто Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
  • ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ запросу ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сСкции ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
  • Π Π°Π±ΠΎΡ‚Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с нСсколькими устройствами (TFTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ)

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹

  • Π Π°Π±ΠΎΡ‚Π° систСмным сСрвисом (daemon) ΠΏΠΎΠ΄ FreeBSD/Linux
  • Гибкая систСма конфигурирования, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΡ€Ρ‚ΠΎΠ², устройств ΠΈ доступных ΠΊΠΎΠΌΠ°Π½Π΄
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ привязки ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π²Π΅Π½Π΄ΠΎΡ€Ρƒ

ВрСбования

  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Linux ΠΈΠ»ΠΈ FreeBSD
  • Python с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ MySQLdb
  • Доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ MySQL-сСрвСру (Π±Π°Π·Π΅ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°) для получСния списка устройств ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ²
  • Доступ ΠΊ MySQL для сохранСния Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Dracon запускаСтся систСмным сСрвисом ΠΈ пСриодичСски Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ ΠΈΡ… ΠΏΠΎΡ€Ρ‚Π°Ρ…. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ выполняСтся запрос для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± устройствах. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΈΠ΄Π°:

ip type custom
10.90.90.95 24 192.168.0.0/24

Π—Π΄Π΅ΡΡŒ type - это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° устройства. Π’ дальнСйшСм для удобства происходит сопоставлСниС Ρ‚ΠΈΠΏΠΎΠ² тСкстовым ΠΈΠΌΠ΅Π½Π°ΠΌ устройств. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ custom - ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ адрСс установки ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°.

Π—Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ информация ΠΎ ΠΏΠΎΡ€Ρ‚Π°Ρ…. Запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΈΠ΄Π°:

ip port ptype comment
10.90.90.95 1 1 user12345

Π’ этом запросС ptype опрСдСляСт Ρ‚ΠΈΠΏ (Ρ€ΠΎΠ»ΡŒ) ΠΏΠΎΡ€Ρ‚Π° - абонСнтский, ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ, нСисправный ΠΈ Ρ‚.Π΄. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ comment - ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎΡ€Ρ‚Π°, содСрТащий, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π»ΠΎΠ³ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°.

ПослС этого Dracon Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ 69 (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² качСствС TFTP-сСрвСра. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса ΠΎΡ‚ устройства (ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ TFTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°) сСрвис Π»ΠΈΠ±ΠΎ сгСнСрируСт ΠΈ отдаст ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ссли это Π±Ρ‹Π» запрос Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ„Π°ΠΉΠ», Ссли это Π±Ρ‹Π» запрос Π½Π° запись. Π’Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… MySQL.

Π§Π΅Ρ€Π΅Π· 5 ΠΌΠΈΠ½ΡƒΡ‚ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) сСрвис пСрСзапросит ΠΈΠ· Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ… ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ эти Π΄Π°Π½Π½Ρ‹Π΅ Π² своСй памяти.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ОписаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ dconfig.py

ΠžΠ±Ρ‰ΠΈΠ΅ настройки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
interface_ip IP-адрСс интСрфСйса, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½.
port UDP-ΠΏΠΎΡ€Ρ‚ для TFTP-сСрвСра.
cycle_int ВрСмя Π² сСкундах, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ список ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ устройств.
sleep_def ΠŸΠ°ΡƒΠ·Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ опросС UDP-сокСта.
sleep_int ВрСмя простоя (Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚) Π² сСкундах, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π΄ΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΡƒΠ·Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
log_file Имя Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π°.
log_size Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΡ€ΠΈ достиТСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся ротация.
log_backupcount ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΆΡƒΡ€Π½Π°Π»Π°.

Π—Π΄Π΅ΡΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ пояснСниС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ°ΡƒΠ·. Dracon ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ сокСт Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅, оТидая поступлСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ слишком часто, этот опрос выполняСтся с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ sleep_def. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ запрос ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСлится Π½Π° 1000, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π·Π° мСньшСС врСмя. Когда ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ ΠΈ ΠΏΡ€ΠΎΡˆΠ΅Π» ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» sleep_int, сСрвис ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ снова Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sleep_def.

Настройки для MySQL-сСрвСра, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
mysql_addr АдрСс MySQL-сСрвСра Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°.
mysql_user Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
mysql_pass ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.
mysql_base Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Настройки для PostgreSQL-сСрвСра, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° MySQL

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
postgresql_addr АдрСс PostgreSQL-сСрвСра Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°.
postgresql_user Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
postgresql_pass ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.
postgresql_base Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
use_postgresql ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ MySQL Π»ΠΈΠ±ΠΎ ΠΆΠ΅ PostgreSQL (ΠΊΠΎΠ³Π΄Π° установлСн Π² True).

Запросы ΠΊ MySQL/PostgreSQL

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
devices_query Запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для получСния списка устройств.
ports_query Запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для получСния свСдСний ΠΎ ΠΏΠΎΡ€Ρ‚Π°Ρ… ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°.

Настройки для MySQL-сСрвСра, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ конфигурация ΠΈ информация ΠΎ транзакциях

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
mysql_addr_w АдрСс MySQL-сСрвСра для сохранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
mysql_user_w Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
mysql_pass_w ΠŸΠ°Ρ€ΠΎΠ»ΡŒ.
mysql_base_w Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
mysql_ctbl_w Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для сохранСния ΠΊΠΎΠ½Ρ„ΠΈΡ€ΡƒΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
mysql_ttbl_w Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для сохранСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

РаспознаваниС устройств, ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
dev_types БоотвСтствиС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ² устройств ΠΈΡ… названиям.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ dev_types задаСтся Π² Π²ΠΈΠ΄Π΅ словаря python. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

dev_types = {
     24 : 'DES-3200-28',        # DES-3200-28/A1
    218 : 'DES-3200-28',        # DES-3200-28/B1
    210 : 'DES-3200-28_C1',     # DES-3200-28/C1
    216 : 'DES-3200-18',        # DES-3200-18/A1
    217 : 'DES-3200-18',        # DES-3200-18/B1
    209 : 'DES-3200-18_C1',     # DES-3200-18/C1
    205 : 'DES-3028',           # DES-3028
    215 : 'DGS-3000-24TC',      # DES-3000-24TC
    252 : 'DGS-3000-26TC',      # DES-3000-24TC
}
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
ports_types Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… сокращСнными обозначСниями

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ports_types содСрТит соотвСтствиС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ². Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ хранятся Π² Π±ΠΈΠ»Π»ΠΈΠ½Π³Π΅, Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…. Для сСбя я ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» 9 Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ²:

Код Вип
1 абонСнтский ΠΏΠΎΡ€Ρ‚
2 ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ
3 сломанный
4 VIP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚
5 Π²Ρ…ΠΎΠ΄
6 нСстандартный
7 ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
8 Π²Ρ…ΠΎΠ΄ (ΠΏΠ°Ρ‚Ρ‡ΠΊΠΎΡ€Π΄)
9 ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒ (ΠΏΠ°Ρ‚Ρ‡ΠΊΠΎΡ€Π΄)

Π’Π°ΠΊΠΈΠ΅ обозначСния слоТились историчСски ΠΈ, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всСм потрСбностям ΠΏΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ports_types задаСтся Π² Π²ΠΈΠ΄Π΅ словаря python. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ports_types = {1:'ss', 2:'mg', 3:'br', 4:'vp', 5:'up', 6:'ns', 7:'eq', 8:'pu', 9:'pd'}
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
mags_list Бписок ΠΊΠΎΠ΄ΠΎΠ² ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ mags_list опрСдСляСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ задаСтся Π² Π²ΠΈΠ΄Π΅ списка python. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

mags_list = [2,5,8,9]

ΠŸΡƒΡ‚ΠΈ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
cf_path ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.
fw_path ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм.

Имя Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ названию устройства (см. dev_types). НапримСр, для устройства с ID=210 ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ /usr/local/etc/dracon/config/ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cf_path) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ поиск Ρ„Π°ΠΉΠ»Π° DES-3200-28_C1.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
fw_names БоотвСтствиС Π½Π°Π·Π²Π°Π½ΠΈΠΉ устройств ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fw_names содСрТит имя Ρ„Π°ΠΉΠ»Π° "ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ" для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π° ΠΈ задаСтся Π² Π²ΠΈΠ΄Π΅ словаря python. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

fw_names = {
    'DES-3200-28'    : 'DES-3200R_1.85.B008.had',
    'DES-3200-28_C1' : 'DES3200R_4.39.B008.had',
    'DES-3200-18'    : 'DES-3200R_1.85.B008.had',
    'DES-3200-18_C1' : 'DES3200R_4.39.B008.had',
    'DES-3028'       : 'DES_3028_52_V2.94-B07.had',
    'DGS-3000-24TC'  : 'DGS3000_Run_1_14_B008.had',
    'DGS-3000-26TC'  : 'DGS3000_Run_1_14_B008.had',
    }

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ сСрвиса

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
commands ДоступныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠΌΠ΅Π½Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ commands задаСтся Π² Π²ΠΈΠ΄Π΅ словаря python, Π³Π΄Π΅ значСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ списки. Π‘Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

commands = {
    'acl':['*header*', '*acl*'],
    'cpu_acl':['*header*', '*cpu_acl*'],
    'accounts':['*header*', '*accounts*'],
    'stp_lbd':['*header*', '*stp_lbd*'],
    'snmp':['*header*', '*snmp*'],
    'sntp':['*header*', '*sntp*'],
    'lldp':['*header*', '*lldp*'],
    'filtering':['*header*', '*filtering*'],
    'trusted_hosts':['*header*', '*trusted_hosts*'],
    'ipm':['*header*', '*ipm*'],
    'dhcp_relay':['*header*', '*dhcp_relay*'],
    'igmp_snooping':['*header*', '*igmp_snooping*'],
    'igmp_auth':['*header*', '*igmp_auth*'],
    'aaa':['*header*', '*aaa*'],
    'multi_filter':['*header*', '*multi_filter*'],
    'cos':['*header*', '*cos*'],
    'mon_log':['*header*', '*mon_log*'],
    'pdesc':['*header*', '*p_desc*'],
    'config':['*header*', '*acl*', '*cpu_acl*', '*accounts*', '*stp_lbd*', '*snmp*', '*sntp*', '*lldp*', '*filtering*', '*trusted_hosts*',
    '*ipm*', '*dhcp_relay*', '*igmp_snooping*', '*igmp_auth*', '*aaa*', '*multi_filter*', '*cos*', '*mon_log*', '*p_desc*', '*bottom*']
    }

Данная конструкция ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Ссли Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ сСрвиса Dracon Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ acl, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° заглянСт Π² commands, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ этому ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ сСкции ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ '*header*' ΠΈ '*acl*', Π½Π°ΠΉΠ΄Π΅Ρ‚ эти сСкции Π² шаблонС Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ выдаст ΠΈΡ… содСрТимоС. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ сСкциях Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π½ΠΈΠΆΠ΅.

НСтрудно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ config содСрТит всС доступныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
helpinfo Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ справки, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ (ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°) 'help'

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ helpinfo прСдставляСт собой строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈ-справку, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡƒΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ help

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния TFTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ config, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ с TFTP-сСрвСра Ρ„Π°ΠΉΠ» config.

МоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ устройству, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π°:

tftp -i dracon.myhost get 10.90.90.100@config

Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для устройства с IP-адрСсом 10.90.90.100.

Помимо настраиваСмых ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ help ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ Π΄Π²Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅:

Команда ОписаниС
firmware Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства (имя Ρ„Π°ΠΉΠ»Π° задаСтся Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ)
backup Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· Π±Π°Π·Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² послСднСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства

ОписаниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ dfunc.py

Dracon позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² comment ΠΈ custom. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ хранятся Π² Ρ„Π°ΠΉΠ»Π΅ dfunc.py ΠΈ написаны Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ python. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ hex-значСния 2-Π³ΠΎ ΠΎΠΊΡ‚Π΅Ρ‚Π° IP-адрСса

def fn_2oct(src):
    try:
        return hex(int(src.split('.')[1]))[2:].zfill(2)
    except:
        return ""

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ hex-значСния 3-Π³ΠΎ ΠΎΠΊΡ‚Π΅Ρ‚Π° IP-адрСса

def fn_3oct(src):
    try:
        return hex(int(src.split('.')[2]))[2:].zfill(2)
    except:
        return ""

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ hex-значСния Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎΡ€Ρ‚Π°

def fn_xp(n):
    try:
        return hex(int(n))[2:].zfill(2)
    except:
        return ""

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ транслитСрированного значСния поля custom Π΄ΠΎ раздСлитСля '|'

def fn_tr_cst1(src):
    return Translit(src.split('|')[0])

О практичСском ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ рассказано Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

НаписаниС шаблонов ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

Ну Π²ΠΎΡ‚ ΠΌΡ‹ ΠΈ подошли ΠΊ самому интСрСсному - ΠΊ написанию шаблонов ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ шаблон Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для устройства DES-3200-28/C1. Богласно ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ cf_path ΠΈ dev_types Ρ„Π°ΠΉΠ» шаблона Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ адрСсу /usr/local/etc/dracon/config/DES-3200-28_C1.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»Π° шаблона:

:::*Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции*:::
Π’Π΅Π»ΠΎ
...
сСкции
<пустая строка>

:::*Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСкции*:::
Π’Π΅Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСкции
<пустая строка>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сСкции, содСрТащСй "ΡˆΠ°ΠΏΠΊΡƒ" ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°:

:::*header*:::
#-------------------------------------------------------------------------------
#                       DES-3200-28 Fast Ethernet Switch
#                                Configuration
#
#                          Firmware: Build 4.39.B008
#           Copyright(C) 2012 D-Link Corporation. All rights reserved.
#

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° сСкции ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ значСния. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ конструкция [mags] Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π° с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ описаны Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ mags_list. А конструкция [all] Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ всСх ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°.

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ports_types ΠΌΡ‹ опрСдСляли Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ обозначСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ, конструкция [ss] Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ всСх ΠΏΠΎΡ€Ρ‚ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ 1, Π° конструкция [eq] - Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ всСх ΠΏΠΎΡ€Ρ‚ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ 7.

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ [ss#5] Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° 5 Π² случаС, Ссли ΠΏΠΎΡ€Ρ‚ β„–5 Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΡ€Ρ‚ΠΎΠ² [ss].

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция вызываСтся конструкциСй Π²ΠΈΠ΄Π° {fn_2oct#custom}. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция fn_2oct, Π° Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ custom.

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄Π° {comment#7}. Π’ этом случаС ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π·Π°ΠΌΠ΅Π½Π° шаблона Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ comment ΠΏΠΎΡ€Ρ‚Π° 7. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: {fn_tr#{comment#28}}. Π’ этом случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для ΠΏΠΎΡ€Ρ‚Π° β„–28, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn_tr. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ эта функция выполняСт Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ тСкста.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Если условиС для Π·Π°ΠΌΠ΅Π½Ρ‹ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ, строка Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° символом #, Π° замСняСмая конструкция останСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π£ нас Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚ 25 с ΠΊΠΎΠ΄ΠΎΠΌ 5 (up) ΠΈ Π½Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ 8 (pu). Π’ этом случаС строки

config igmp_snooping multicast_vlan mvr add source_port [up]
config igmp_snooping multicast_vlan mvr add source_port [pu]

Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ ΠΊΠ°ΠΊ

config igmp_snooping multicast_vlan mvr add source_port 25
#config igmp_snooping multicast_vlan mvr add source_port [pu]

Вторая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‚.ΠΊ. начинаСтся с символа #.

Для использования доступны ΠΈ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ОписаниС
{$target} IP-адрСс устройства, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ собираСтся конфигурация.
{$datetime} Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π΄Π°Ρ‚Π° ΠΈ врСмя.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования замСняСмых конструкций

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° абонСнтских ΠΈ ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ²

config cpu_filter l3_control_pkt   [ss] all state enable
config cpu_filter l3_control_pkt [mags] all state disable

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° значСния comment для ΠΏΠΎΡ€Ρ‚ΠΎΠ² 1 ΠΈ 2

config ports  1 description "{comment#1}"
config ports  2 description "{comment#2}"

Π’Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fn_2oct ΠΈ fn_3oct с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ custom ΠΈ подстановка Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ² 1 ΠΈ 2 ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° абонСнтских ΠΏΠΎΡ€Ρ‚ΠΎΠ².

config access_profile profile_name pcf add access_id 101 packet_content offset_chunk_1 0x0800 offset_chunk_2 0x0A{fn_2oct#custom}{fn_3oct#custom}08 port  [ss#1] permit
config access_profile profile_name pcf add access_id 102 packet_content offset_chunk_1 0x0800 offset_chunk_2 0x0A{fn_2oct#custom}{fn_3oct#custom}10 port  [ss#2] permit

Установка ΠΏΠΎΠ΄ Linux (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Centos 7)

  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: git clone https://github.com/xcme/dracon.git
  • Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» 'dracon.service' ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ './linux/centos/' Π² '/etc/systemd/system/'.
  • ЗапуститС сСрвис ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ systemctl start dracon.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ автозапуск сСрвиса ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ systemctl enable dracon.

Установка ΠΏΠΎΠ΄ FreeBSD

  • Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» dracon ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ 'freebsd' Π² /usr/local/etc/rc.d/, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² /usr/local/etc/dracon/.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строку dracon_enable="YES" Π² Ρ„Π°ΠΉΠ» /etc/rc.conf.
  • ЗапуститС сСрвис ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ service dracon start.

Бписок измСнСний

[4.1.31] - 2018.01.31

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PostgreSQL Π² качСствС источника Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° для хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²
  • Ротация Π»ΠΎΠ³ΠΎΠ²

ИзмСнСно

  • ВмСсто MongoDB Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MySQL
  • Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ общая Ρ‚Π°Π±Π»ΠΈΡ†Π° для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π° само Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅
  • Записи ΠΎ транзакциях Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ всСх случаях, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
  • Π’Π°Π±Π»ΠΈΡ†Π° для хранСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ большС Π½Π΅ содСрТит самого ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ хранится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅
  • ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° сСрвСр Ρ„Π°ΠΉΠ»Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Π΄ΠΎ 64 ΠšΠ‘
  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π»ΠΎΠ³ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ (severity)
  • Π˜Π·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ

  • ПадСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ нСдоступном Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска сСрвСрС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠšΠΎΡΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² тСкстС

Π£Π΄Π°Π»Π΅Π½ΠΎ

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° MongoDB ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π°

[2.6.24] - 2016.06.24

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная окруТСния {$datetime} для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

ИзмСнСно

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡ‚ΡŒ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {}, Π° Π½Π΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ ()
  • Ѐункция транслитСрации Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ считаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈ хранится Π² dfunc.py

Π£Π΄Π°Π»Π΅Π½ΠΎ

  • Π£Π΄Π°Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

[1.0.0] - 2015.07.11

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ

  • Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° послСднСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ устройства ΠΏΡ€ΠΈ запросС Ρ„Π°ΠΉΠ»Π° backup
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ окруТСния {$target} для получСния IP-адрСс устройства

ИзмСнСно

  • НовыС возмоТности Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² описаниС

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ

  • ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ MD5-суммы ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°

About

Draft of the config. Virtual TFTP-server to building configs on the fly.

Resources

License

Stars

Watchers

Forks

Packages

No packages published