הגדרת קישוריות שרת-לקוח (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 Command Reference. פקודות שרת ה-SRP מתחילות בסדר אלפביתי עם שרת srp (הפעלה,השבתה). פקודות לקוח ה-SRP מתחילות בסדר אלפביתי עם start autostart (get) של לקוח srp.

Codelab של נתב Thread Border

ב-OpenThread Border Router codelab מוסבר איך להגדיר את מכשיר הקצה של לקוח ה-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 ובפקודות לקוח

בדוגמאות האלה נעשה שימוש בפקודות 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
    >