मेज पर जीएसएम

वेब विकास: एचटीटीपी, एचटीएमएल, सीएसएस, जावास्क्रिप्ट, पायथन ... ओह। सभी समान। इसलिए मैं मौलिक रूप से कुछ अलग करके विचलित होना चाहता हूं। मैं मास्को हैकस्पेस न्यूरॉन में रहता हूँ ! आसपास क्यों नहीं पूछा?

उदाहरण के लिए, न्यूरॉन में कम लागत वाले सेलुलर नेटवर्क के लिए जीएसएम उपकरण विकसित करने वाली कंपनी फेयरवेव्स के लोग हैं। पूरे स्टैक - हार्डवेयर से सॉफ्टवेयर तक - एक ओपन सोर्स लाइसेंस के तहत उपलब्ध है। हाँ, हाँ, लोहा सहित। इसलिए, इस तकनीक से परिचित होने के लिए फेयरवेल्स पर काम करना आवश्यक नहीं है। और खुदाई का परिणाम गिटहब पर पोस्ट किया जा सकता है या किसी मौजूदा परियोजना में योगदान कर सकता है। कम से कम, इंटरव्यू में डींग मारने के लिए कुछ करना होगा।

प्रलेखन पढ़ने के कुछ दिनों में, कोड के माध्यम से स्क्रॉल करना, दर्जनों जुनूनी प्रश्न और प्रयोग (मदद के लिए अलेक्जेंडर चेमरिस और इवान क्लेउनिकोव के लिए धन्यवाद)। और यहाँ परिणाम है - मेरे मैकबुक के नियंत्रण में मेरा अपना जीएसएम नेटवर्क:

HabraFon

हैकस्पेस मेहमान नेटवर्क का परीक्षण करने आए:

रोबोट को पाठ 'हैलो, हबरा' प्राप्त होता है।

वे किस बारे में बात कर रहे हैं?

लैपटॉप पर रोबोट बात कर रहे हैं।

यह कैसे काम करता है? इस तरह:

  + ---------------------------------------- +
  |  मैकबुक |
  |  |
  |  + ------------------------------- + |
  |  |  वर्चुअलबॉक्स वर्चुअल |  |
  |  |  |  |
  |  |  + ---------------------- + |  |  |
  |  |  |  डॉकटर कंटेनर |  |  |  \ _ |  / |
  |  |  |  (Ubuntu 12.04) |  |  |  \ _ |  / |
  |  |  |  |  |  |  \ _ |  / |
  |  |  |  + ------------- + |  |  |  + ---- + ---- + + ------- +
  |  |  |  |  Openbsc |  |  |  |  |  |  |  |
  |  |  |  |  (ऑस्मो-नाइटब) | <------------------------- + मूल |  |  जीएसएम |
  |  |  |  |  |  |  |  |  |  स्टेशन |  |  टीवी |
  |  |  |  + ------------- + |  |  |  |  |  |  पृष्ठभूमि |
  |  |  |  |  |  |  |  |  |  |
  |  |  + ---------------------- + |  |  + --------- + + ------- +
  |  |  |  |
  |  + ------------------------------- + |
  |  |
  + ---------------------------------------- +

कंप्यूटर उबंटू के साथ वर्चुअलबॉक्स चलाता है, जो डॉकर कंटेनर को उबुन्टु 12.04 और ओपन सोर्स बेस स्टेशन कंट्रोलर ओपनबीएससी (बेस स्टेशन कंट्रोलर, बीएससी) के साथ चलाता है। मेरे मामले में, OpenBSC नेटवर्क-इन-द-बॉक्स मोड में काम करता है और इसमें न केवल BSC, बल्कि एक छोटे GSM नेटवर्क ( MSC, HLR, VLR, AuC और SMSC ) के लिए आवश्यक अन्य सभी घटकों का एक सरल कार्यान्वयन भी शामिल है।

फेयरव्यू उमसिट बेस स्टेशन एक स्थानीय नेटवर्क के माध्यम से नियंत्रक से जुड़ा हुआ है, जिस पर OsmoBTS घूम रहा है - जीएसएम बेस स्टेशन (बेस ट्रांसीवर स्टेशन, बीटीएस) का खुला स्रोत कार्यान्वयन:

उमेश की फोटो

GSM नेटवर्क शुरू करने के लिए, एक (!) कमांड पर्याप्त है:

  docker run -v $ HOME / db: / var / db -i -t -p 3002: 3002 -p 3003: 3003 -p 30000: 30000 / udp -p 30001: 30001 / udp -p 30002: 30002 / udp -p 30003: 30003 / udp -p 30004: 30004 / udp -p 30005: 30005 / udp -p 30006: 30006 / udp -p 30007: 30007 / udp shamrin (osmonitb start-nitb -i 10.0.0.10 -n HabraFon GSM1800 10% 2020)

(कोई डॉकर नहीं। इसे स्थापित करें । आपके पास उबंटू नहीं है और डॉकर स्थापित नहीं है? फिर नीचे देखें।)

10.0.0.10 को होस्ट डॉकर नेटवर्क एड्रेस (ifconfig) से बदलना होगा। और 10 और 20 इस्तेमाल किए गए चैनल नंबरों के लिए, ARFCN । किन चैनलों को इंगित करना है, आप पूछें? यह एक पेचीदा सवाल है। जीएसएम फ़्रीक्वेंसी पर, आप किसी भी लाइसेंस के बिना कुछ भी नहीं कर सकते, भले ही बिजली की कोई भी हो। लेकिन मात्र नश्वर को लाइसेंस नहीं मिल सकता। निम्नलिखित विकल्प बने हुए हैं:

  1. एक फैराडे पिंजरे में परीक्षण। यदि कोई उपयुक्त फैराडे पिंजरे नहीं है, तो इसे एक दूरस्थ तहखाने में नकल करें, जहां सेलुलर नेटवर्क नहीं पकड़ता है और जहां मोबाइल ऑपरेटरों के साथ हस्तक्षेप करने का कोई जोखिम नहीं है (और वे आपके साथ हस्तक्षेप नहीं करेंगे)। इस मामले में, संपूर्ण रेडियो आवृत्ति स्पेक्ट्रम आपके निपटान में है और आप कम से कम 2-3 चैनलों (अधिमानतः 10 चैनल) के अंतर के साथ 512 से 885 तक की संख्या में किसी भी जोड़ी को निर्दिष्ट कर सकते हैं। उदाहरण के लिए, 600 और 700।
  2. एक योग्य पेशेवर की देखरेख में, अप्रयुक्त चैनलों के एक जोड़े को ढूंढें और इन चैनलों को स्टार्टअप पर इंगित करें। उदाहरण के लिए, एक फोन का उपयोग करना जो प्रसारण को स्कैन कर सकता है, जैसे कि सेजम ओटी। एक बार फिर, एक योग्य पेशेवर की देखरेख में!

अन्य कंटेनर विकल्पों और start-nitb लिए मेरा भंडार देखें।

और अगर मेरे पास उबंटू नहीं है तो?

यदि आपके पास Ubuntu 12.04+ नहीं है, तो Vagrant और VirtualBox इंस्टॉल करें और इन कमांड्स का उपयोग करके Ubuntu + Docker वर्चुअल मशीन शुरू करें:

  git clone https://github.com/shamrin/osmonitb-docker
 सीडी ओस्मोनिटब-डोकर
 ऊपर उठना
 योनि ssh

क्यों डॉकटर?

हां, डॉकर वैकल्पिक है। आप अपने हाथों से सब कुछ डाल और कॉन्फ़िगर कर सकते हैं। लेकिन सबसे पहले, मैं डॉकर के साथ प्रयोग करना चाहता था। दूसरे, आप इसे मज़बूती से इसके साथ लपेट सकते हैं, और फिर पूरे मशीन (डेबियन पैकेज, मैन्युअल रूप से इंस्टॉल किए गए प्रोग्राम, कॉन्फ़िगरेशन फ़ाइलें) के कॉन्फ़िगरेशन को दोहरा सकते हैं। तीसरी बात, दर्जनों आदेशों और जोड़तोड़ की सूची को एक - एक करके docker run …

OpenBTS क्यों नहीं?

वर्णित Osmocom परियोजनाओं (OpenBSC, OsmoBTS, OsmoTRX ) के अलावा, GSM प्रोटोकॉल का एक और खुला स्रोत कार्यान्वयन है - OpenBTS । दोनों परियोजनाओं की उम्र लगभग समान है, लेकिन शुरुआती से थोड़ी अधिक मित्रता के कारण इंटरनेट पर ओपनबीटीएस बेहतर रूप से जाना जाता है। यदि आप तकनीकी मतभेदों में नहीं आते हैं, तो वास्तविक जीवन में ओस्मोकॉम बेहतर काम करता है :
हमने इस वर्ष की शुरुआत में Osmocom सॉफ्टवेयर का उपयोग करना शुरू किया और पाया कि यह OpenBTS की तुलना में वास्तविक जीवन की तैनाती में बहुत बेहतर है। यह लगभग कभी भी दुर्घटनाग्रस्त नहीं होता है, इसमें अधिक विशेषताएं होती हैं, तराजू बेहतर होता है और अधिक लचीला होता है।

उपकरण कहां से लाएं?

मॉस्को के निवासियों के लिए सबसे आसान विकल्प कठोर न्यूरॉन में उपकरण का उपयोग करना है :)

यदि आप मॉस्को में नहीं रहते हैं या बस घर पर जीएसएम के साथ खेलने के लिए उपकरण रखना चाहते हैं, तो प्रयोगशाला उपयोग के लिए दो अपेक्षाकृत सस्ते विकल्प हैं:


क्षमताओं के संदर्भ में, वे लगभग समान हैं, लेकिन UmTRX के फायदे हैं:


यदि आप कुछ पैसे बचाना चाहते हैं और संदर्भ जनरेटर के साथ समस्याएं भयानक नहीं हैं, तो आप USRP B200 का उपयोग कर सकते हैं। उसके पास केवल एक चैनल है, लेकिन घरेलू प्रयोगों के लिए यह महत्वपूर्ण नहीं है। यूएसआरपी बी 200 का संदर्भ जनरेटर सटीकता में जीएसएम मानक का पालन नहीं करता है, लेकिन ज्यादातर मामलों में यह मेज पर सरल काम के लिए पर्याप्त है। USRP B200 के साथ, आपके एक बेस स्टेशन से दूसरे में हैंडओवर की समस्या हो सकती है, लेकिन आप अपने घुटने पर एक उच्च-मूल्य नेटवर्क बनाने की योजना नहीं बनाते हैं, है ना?

लेकिन मैं पक्षपाती हो सकता हूं, अपने लिए जांच कर सकता हूं।

इस पाठ के मसौदों पर टिप्पणियों के लिए आंद्रेई बखमत, इवान क्लाईचनिकोव, पावेल ट्रूखानोव, अलेक्जेंडर चेमरिस और अन्य हैकस्पेस प्रतिभागियों का धन्यवाद।

Source: https://habr.com/ru/post/In213845/


All Articles