הגדרת קישוריות שרת-לקוח (SRP) עם Service Registration Protocol (SRP) בעזרת CLI של OT

הצגת המקור ב-GitHub

OpenThread מציע פונקציונליות של שרת SRP וגם לקוח, וכך מאפשר מכשירים לרישום שירותים מבוססי-DNS באמצעות עדכון DNS רגיל שנשלח כ-unicast חבילות. הפונקציונליות הזו מאפשרת גילוי של שירות מבוסס-DNS.

המדריך הזה מספק משימות בסיסיות שמשתמשות בכמה מהsrp server הנפוצים יותר ו-srp client.

פקודות שרת SRP

לרשימה של פקודות srp server, מקלידים help:

srp server help
addrmode
auto
disable
domain
enable
help
host
lease
seqnum
service
state
Done

פקודות לקוח SRP

לרשימה של פקודות srp client, מקלידים help:

srp client help
autostart
callback
help
host
keyleaseinterval
leaseinterval
service
start
state
stop
ttl
Done

חומר עזר על פקודות ב-CLI

לקבלת תיאורים ותחביר של כל הפקודות, עיינו ב'חומר העזר בנושא פקודות ב-CLI'. פקודות שרת ה-SRP מתחילות בסדר אלפביתי עם שרת srp (הפעלה,השבתה). פקודות הלקוח של SRP מתחילות בסדר אלפביתי עם הפעלה אוטומטית של לקוח srp (get).

מעבד קוד של נתב Thread של גבול

פרוטוקול OpenThread Border Router Router כולל מידע על אופן ההגדרה של מכשיר קצה ללקוח SRP.

סקירות כלליות של כמה פקודות SRP בסיסיות

בפקודות של שרת SRP ולקוח ניתן להשתמש ברצף כדי לבצע משימות SRP טיפוסיות:

  1. מפעילים את שרת ה-SRP.

    srp server enable מפעיל את שרת ה-SRP לאחר היצירה של רשת פרוטוקול Thread.

  2. מפעילים את לקוח ה-SRP.

    • srp client host name מגדיר את שם המארח שישמש את הלקוח.

    • srp client host address (set) מפעיל מצב כתובת לקוח באירוח אוטומטי, או מגדירה במפורש את רשימת הכתובות של הלקוחות המארחים.

    • srp client service add מוסיף שירות עם שם או שירות מסוימים של מכונה השם ומספר היציאה.

    • srp client autostart enable מאפשר מצב הפעלה אוטומטית. אפשר גם באופן ידני כדי להפעיל את הלקוח, מריצים את srp client start.

  3. מאמתים את סטטוס השירות.

    • srp client host ו-srp client service מציינים אם מארח הלקוח והשירות נרשמו בהצלחה בצומת הלקוח.

    • srp server host ו-srp server service מספקים סטטוס של מארח ושירות בצומת השרת.

  4. מסירים את השירות.

    שירות srp client service remove מסיר שירות, אבל שם השירות נשמר.

  5. מסירים את שמות המארח והשירות.

    המארח וכל השירותים הרשומים יוסרו על ידי srp client host remove.

דוגמאות לשימוש בפקודת SRP ושרת SRP

בדוגמאות האלה נעשה שימוש בפקודות CLI בסיסיות כדי להגדיר רשת פרוטוקול Thread. מתחילים שרת והלקוח ה-SRP, לאמת את סטטוס השרת ולהסיר את השירות. נתונים שנדגמו משמש להמחשה.

הפעלת שרת ה-SRP

  1. מפעילים את צומת שרת ה-SRP:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. מגדירים רשת פרוטוקול Thread ומפעילים את שרת ה-SRP על ידי הרצת הפקודה srp server enable:

    dataset init new
    Done
    dataset
    Active Timestamp: 1
    Channel: 22
    Channel Mask: 0x07fff800
    Ext PAN ID: 8d6ed7a05a28fb3b
    Mesh Local Prefix: fded:5114:8263:1fe1::/64
    Network Key: 7fcbae4153cc2955c28440c15d4d4219
    Network Name: OpenThread-f7af
    PAN ID: 0xf7af
    PSKc: b658e40f174e3a11be149b302ef07a0f
    Security Policy: 672, onrc
    Done
    dataset commit active
    Done
    ifconfig up
    Done
    thread start
    Done
    state
    leader
    Done
    ipaddr
    fded:5114:8263:1fe1:0:ff:fe00:fc00
    fded:5114:8263:1fe1:0:ff:fe00:c000
    fded:5114:8263:1fe1:68bc:ec03:c1ad:9325
    fe80:0:0:0:a8cd:6e23:df3d:4193
    Done
    srp server enable
    Done
    

הפעלת לקוח ה-SRP

  1. מפעילים את צומת הלקוח SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. מצטרפים לרשת בפרוטוקול Thread, מגדירים את השם והכתובת של מארח הלקוח, וגם רישום שירות:

    dataset networkkey 7fcbae4153cc2955c28440c15d4d4219
    Done
    dataset commit active
    Done
    ifconfig up
    Done
    thread start
    Done
    state
    child
    Done
    ipaddr
    fded:5114:8263:1fe1:0:ff:fe00:c001
    fded:5114:8263:1fe1:44f9:cc06:4a2d:534
    fe80:0:0:0:38dd:fdf7:5fd:24e
    Done
    srp client host name my-host
    Done
    srp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534
    Done
    srp client service add my-service _ipps._tcp 12345
    Done
    srp client autostart enable
    Done
    

    כמו שמוצג למעלה, מפעילים את הפקודה srp client autostart enable הפעלה אוטומטית במצב הפעלה אוטומטית אצל הלקוח. הלקוח עוקב אחר נתוני הרשת כדי לגלות שרתי SRP זמינים ברשת Thread, ואז הלקוח מפעיל את עצמו באופן אוטומטי.

  3. אם מפעילים את הלקוח באופן ידני, מריצים את הפקודה הבאה וכוללים הכתובת והיציאה של ה-SRP:

    srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154
    Done
    

    יציאת ה-UDP של שרת ה-SRP היא c002(49154) בדוגמה שלמעלה.

אימות סטטוס השירות

  1. בודקים אם המארח והשירות נרשמו בהצלחה בצומת הלקוח:

    srp client host
    name:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    srp client service
    instance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0
    Done
    

    מוודאים שבפלט מוצג state:Registered גם לפקודות המארח וגם לפקודות השירות, כמו בדוגמה שלמעלה.

  2. בדיקת המארח והשירות בצומת השרת:

    srp server host
    my-host.default.service.arpa.
    deleted: false 
    addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    srp server service
    my-service._ipps._tcp.default.service.arpa.
    deleted: false
    port: 12345
    priority: 0
    weight: 0
    ttl: 7200
    lease: 7200
    key-lease: 1209600
    TXT: []
    host: my-host.default.service.arpa.
    addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    

    חשוב לוודא שהפלט מציג את הערך deleted: false עבור srp server host ו-srp server service, כמו בדוגמה שלמעלה.

הסרת השירות

  1. מסירים את השירות דרך צומת הלקוח:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. מאשרים באמצעות צומת השרת שהשירות הוסר:

    srp server service
    my-service._ipps._tcp.default.service.arpa.
    deleted: true
    Done
    

    רשומת השירות מופיעה בפלט כי שם השירות לא הוסר.

הסרת שם המארח ושמות השירות

  1. הסרת המארח וכל השירותים הרשומים שלו:

    srp client host remove 1
    Done
    
  2. מוודאים בצומת השרת שלא רשומות רשומות של מארח או שירות:

    srp server host
    Done
    srp server service
    Done
    >