This shows you the differences between two versions of the page.
|
pc:laboratoare:11 [2022/05/14 02:43] bogdan_costel.mocanu [Protocolul DNS] |
pc:laboratoare:11 [2023/05/07 17:56] (current) dorinel.filip [Exerciții] New domain |
||
|---|---|---|---|
| Line 620: | Line 620: | ||
| ==== Suportul de laborator ==== | ==== Suportul de laborator ==== | ||
| - | ===I. Email=== | + | |
| - | Va oferim [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/Email|aici]] un cod sursă schelet pentru realizarea unui client de email SMTP scris in C. Veți folosi un server SMTP acre rulează local. Acesta poate fi creat folosind un utilitar existent în Python, numit //smtpd//. Rularea acestui utiliar pe portul 25 se face astfel: | + | ===I. DNS=== |
| + | Va oferim [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/master/lab11|aici]] un cod sursă schelet pentru realizarea unei aplicații in C care utilizează API-ul DNS. | ||
| + | |||
| + | ===II. Email=== | ||
| + | Va oferim [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/master/lab11|aici]] un cod sursă schelet pentru realizarea unui client de email SMTP scris in C. Veți folosi un server SMTP acre rulează local. Acesta poate fi creat folosind un utilitar existent în Python, numit //smtpd//. Rularea acestui utiliar pe portul 25 se face astfel: | ||
| <code> | <code> | ||
| Line 631: | Line 635: | ||
| </note> | </note> | ||
| - | ===II. DNS=== | ||
| - | Va oferim [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/dns|aici]] un cod sursă schelet pentru realizarea unei aplicații in C care utilizează API-ul DNS. | ||
| ==== Exerciții ==== | ==== Exerciții ==== | ||
| - | ===I. E-mail=== | + | ===I. DNS=== |
| - | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/Email|aici]], implementați următoatrea cerință: | + | |
| - | 1. Implementați un client SMTP peste TCP prin care să trimiteți către serverul //smtpd// un e-mail care conține niște text și un fișier dat ca parametru sub forma unui atașament de tip //text/plain// (API-ul necesar pentru conexiunea TCP cu server-ul este detaliat în [[https://ocw.cs.pub.ro/courses/pc/laboratoare/07|laboratorul 7]]). | + | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/master/lab11|aici]], implementați următoatrea cerință: |
| - | + | ||
| - | == Bonus == | + | |
| - | + | ||
| - | - Folosind instrucțiunile de [[https://www.dropbox.com/s/d382g7f705uo6bq/SMTP_Google.pdf?dl=0|aici]], trimiteți un e-mail către asistent prin intermediul serverului SMTP de la Google. | + | |
| - | + | ||
| - | ===II. DNS=== | + | |
| - | + | ||
| - | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/bogdan_costel.mocanu-master-patch-08393/dns|aici]], implementați următoatrea cerință: | + | |
| 1. Scrieți un program care să afișeze numele și adresele IP pentru un host. Programul poate primi ca parametru fie numele (caz în care se va afișa adresa), fie adresa IP (caz în care se va afișa numele). Testați-va programul folosind informațiile din tabelul de mai jos. Exemplu de apel: <code> | 1. Scrieți un program care să afișeze numele și adresele IP pentru un host. Programul poate primi ca parametru fie numele (caz în care se va afișa adresa), fie adresa IP (caz în care se va afișa numele). Testați-va programul folosind informațiile din tabelul de mai jos. Exemplu de apel: <code> | ||
| Line 661: | Line 654: | ||
| ^ Tip ^ Gazdă ^ Răspuns ^ TTL ^ Prioritate ^ | ^ Tip ^ Gazdă ^ Răspuns ^ TTL ^ Prioritate ^ | ||
| | **Pentru single-v4 există o singură adresă IPv4** ||||| | | **Pentru single-v4 există o singură adresă IPv4** ||||| | ||
| - | | A | single-v4.protocoale.xyz | 127.0.0.1 | 300 | | + | | A | single-v4.protocoale.life | 127.0.0.1 | 300 | |
| | **Pentru single-v4 există o singură adresă IPv6** ||||| | | **Pentru single-v4 există o singură adresă IPv6** ||||| | ||
| - | | AAAA | single-v6.protocoale.xyz | ::1 | 300 | | + | | AAAA | single-v6.protocoale.life | ::1 | 300 | |
| | ** Pentru single se definesc 2 adrese (una IPv4 si una IPv6)** ||||| | | ** Pentru single se definesc 2 adrese (una IPv4 si una IPv6)** ||||| | ||
| - | | A | single.protocoale.xyz | 127.0.0.1 | 300 | | + | | A | single.protocoale.life | 127.0.0.1 | 300 | |
| - | | AAAA | single.protocoale.xyz | ::1 | 300 | | + | | AAAA | single.protocoale.life | ::1 | 300 | |
| - | | **Spațiul dorinel.protocoale.xyz este delegat către un alt server de nume ce rulează la adresa potato.dfilip.xyz** ||||| | + | | **Spațiul dorinel.protocoale.life este delegat către un alt server de nume ce rulează la adresa potato.dfilip.xyz** ||||| |
| - | | NS | dorinel.protocoale.xyz | potato.dfilip.xyz | 300 | | + | | NS | dorinel.protocoale.life | potato.dfilip.xyz | 300 | |
| | **Pentru multi-v4 există 4 adrese IPv4** ||||| | | **Pentru multi-v4 există 4 adrese IPv4** ||||| | ||
| - | | A | multi-v4.protocoale.xyz | 127.1.1.1 | 300 | | + | | A | multi-v4.protocoale.life | 127.1.1.1 | 300 | |
| - | | A | multi-v4.protocoale.xyz | 127.2.2.2 | 300 | | + | | A | multi-v4.protocoale.life | 127.2.2.2 | 300 | |
| - | | A | multi-v4.protocoale.xyz | 127.3.3.3 | 300 | | + | | A | multi-v4.protocoale.life | 127.3.3.3 | 300 | |
| - | | A | multi-v4.protocoale.xyz | 127.4.4.4 | 300 | | + | | A | multi-v4.protocoale.life | 127.4.4.4 | 300 | |
| | **Pentru multi-v6 există 4 adrese IPv6** ||||| | | **Pentru multi-v6 există 4 adrese IPv6** ||||| | ||
| - | | AAAA | multi-v6.protocoale.xyz | ::1 | 300 | | + | | AAAA | multi-v6.protocoale.life | ::1 | 300 | |
| - | | AAAA | multi-v6.protocoale.xyz | ::2 | 300 | | + | | AAAA | multi-v6.protocoale.life | ::2 | 300 | |
| - | | AAAA | multi-v6.protocoale.xyz | ::3 | 300 | | + | | AAAA | multi-v6.protocoale.life | ::3 | 300 | |
| - | | AAAA | multi-v6.protocoale.xyz | ::4 | 300 | | + | | AAAA | multi-v6.protocoale.life | ::4 | 300 | |
| | **Pentru multi se definesc 8 adrese (4 de IPv4 și 4 de IPv6)** ||||| | | **Pentru multi se definesc 8 adrese (4 de IPv4 și 4 de IPv6)** ||||| | ||
| - | | A | multi.protocoale.xyz | 127.1.1.1 | 300 | | + | | A | multi.protocoale.life | 127.1.1.1 | 300 | |
| - | | A | multi.protocoale.xyz | 127.2.2.2 | 300 | | + | | A | multi.protocoale.life | 127.2.2.2 | 300 | |
| - | | A | multi.protocoale.xyz | 127.3.3.3 | 300 | | + | | A | multi.protocoale.life | 127.3.3.3 | 300 | |
| - | | A | multi.protocoale.xyz | 127.4.4.4 | 300 | | + | | A | multi.protocoale.life | 127.4.4.4 | 300 | |
| - | | AAAA | multi.protocoale.xyz | ::1 | 300 | | + | | AAAA | multi.protocoale.life | ::1 | 300 | |
| - | | AAAA | multi.protocoale.xyz | ::2 | 300 | | + | | AAAA | multi.protocoale.life | ::2 | 300 | |
| - | | AAAA | multi.protocoale.xyz | ::3 | 300 | | + | | AAAA | multi.protocoale.life | ::3 | 300 | |
| - | | AAAA | multi.protocoale.xyz | ::4 | 300 | | + | | AAAA | multi.protocoale.life | ::4 | 300 | |
| | **Adresele pc->pcom->protocoale definesc un șir de nume canonice care are la capăt o adresă IPv4** ||||| | | **Adresele pc->pcom->protocoale definesc un șir de nume canonice care are la capăt o adresă IPv4** ||||| | ||
| - | | CNAME | pc.protocoale.xyz | pcom.protocoale.xyz | 300 | | + | | CNAME | pc.protocoale.life | pcom.protocoale.life | 300 | |
| - | | CNAME | pcom.protocoale.xyz | protocoale.protocoale.xyz | 300 | | + | | CNAME | pcom.protocoale.life | protocoale.protocoale.life | 300 | |
| - | | A | protocoale.protocoale.xyz | 127.42.42.42 | 300 | | + | | A | protocoale.protocoale.life | 127.42.42.42 | 300 | |
| | **Emailul este deservit de 3 servere SMTP cu priorități diferite** ||||| | | **Emailul este deservit de 3 servere SMTP cu priorități diferite** ||||| | ||
| - | | MX | protocoale.xyz | alt1.gmail-smtp-in.l.google.com | 300 | 10 | | + | | MX | protocoale.life | alt1.gmail-smtp-in.l.google.com | 300 | 10 | |
| - | | MX | protocoale.xyz | alt2.gmail-smtp-in.l.google.com | 300 | 20 | | + | | MX | protocoale.life | alt2.gmail-smtp-in.l.google.com | 300 | 20 | |
| - | | MX | protocoale.xyz | alt3.gmail-smtp-in.l.google.com | 300 | 30 | | + | | MX | protocoale.life | alt3.gmail-smtp-in.l.google.com | 300 | 30 | |
| ^ Tip ^ Gazdă ^ Răspuns ^ TTL ^ Prioritate ^ | ^ Tip ^ Gazdă ^ Răspuns ^ TTL ^ Prioritate ^ | ||
| </spoiler> | </spoiler> | ||
| + | ===II. E-mail=== | ||
| + | Pornind de la codul disponibil [[https://gitlab.cs.pub.ro/protocoale-de-comunicatie/pcom-laboratoare-public/-/tree/master/lab11|aici]], implementați următoatrea cerință: | ||
| + | |||
| + | 1. Implementați un client SMTP peste TCP prin care să trimiteți către serverul //smtpd// un e-mail care conține niște text și un fișier dat ca parametru sub forma unui atașament de tip //text/plain// (API-ul necesar pentru conexiunea TCP cu server-ul este detaliat în [[https://ocw.cs.pub.ro/courses/pc/laboratoare/07|laboratorul 7]]). | ||
| + | |||
| + | == Bonus == | ||
| + | |||
| + | - Folosind instrucțiunile de [[https://www.dropbox.com/s/d382g7f705uo6bq/SMTP_Google.pdf?dl=0|aici]], trimiteți un e-mail către asistent prin intermediul serverului SMTP de la Google. | ||