Intreaba un CCNA fara experienta daca un router forward-eaza broadcast-urile si iti va raspunde hotarat ca NU. Intreaba mai departe un CCIE si s-ar putea sa primesti raspunsul corect: “– depinde“. Desi la prima vedere pare un lucru de care nu vom avea niciodata nevoie (si daca ne gandim doar la ARP-uri chiar avem dreptate), exista trafic de broadcast pe care un router ne dorim sa-l trimita mai departe (nu neaparat tot ca trafic de broadcast). Bill Gates ne-a convins la un moment dat sa instalam cate un server DHCP in fiecare subnet/LAN, insa multa lume a inteles ca acest lucru reprezinta o pierdere de resurse. Putem configura un router CISCO (si nu numai) sa forward-eze unicast pachetele broadcast de tip BOOTP folosite de catre DHCP client/server si sa avem in acest fel un server DHCP centralizat. Acest lucru se face activand pe interfata din LAN pe care se primeste broadcast-ul, comanda “ip helper-address x.x.x.x“, unde x.x.x.x este ip-ul serverului DHCP. Practic, pentru ca traficul de la router pana la serverul DHCP este unicast, serverul poate fi plasat oriunde in internet.
In mod implicit, aceasta comanda va forwarda doar urmatoarele tipuri de broadcast:
- UDP port 69: TFTP
- UDP port 67: BOOTP Client
- UDP port 68: BOOTP Server
- UDP port 37: Time Protocol
- UDP port 49: TACACS
- UDP port 53: DNS
- UDP port 137: NetBios
- UDP port 138: NetBios Datagram
Asadar daca vrem sa folosim “ip helper-address” pentru un server DHCP centralizat iar interfata din LAN, pe care avem setata comanda va primi un “DNS query”, cererea DNS va fi si ea trimisa mai departe catre serverul DHCP iar acesta va raspunde cu un mesaj de eroare de tip “ICMP Port Unreachable”. Ca sa evitam acest lucru, putem filtra anumite tipuri de broadcast folosind comanda globala “no ip forward-protocol udp” pe care o consulta de fiecare data “ip helper-address“.
- no ip forward-protocol udp 53
- no ip forward-protocol udp 137
- no ip forward-protocol udp 138
etc.
Ca sa va faceti o idee mai clara, va atasez si o captura de trafic dintre router (IP: 34.34.34.2) si serverul DHCP (ip: 14.14.14.1) care aloca unui host direct conectat cu interfata 34.34.34.2 a router-ului, un ip din clasa 34.34.34.0/24:
In speranta ca lucrurile sunt destul de clare va rog sa-mi spuneti ce se intampla daca pe interfata routerului pe care am activat “ip helper-address” vom da comanda “no ip directed-broadcast” ? Hosturile din LAN vor mai primi adrese IP de la serverul DHCP ?
Un copil de scoala generala stie cat fac 1+1, un absolvent de IT se intreaba daca este in baza 10 sau baza 2 🙂 . Eu as ghici ca merge DHCP forward si cu “no ip directed-broadcast” pe interfata sursa cel putin, dar nebanuite sunt caile Cisco-ului.
ai dreptate, functioneaza fara probleme mai ales ca este comportamentul “default” al router-ului de a nu forwarda broadcast. practic daca dai comanda asta pe o interfata nici nu-ti va aparea in config pentru ca este implicita.
exista insa o legatura intre “ip helper-address” si “ip directed-broadcast”. daca activezi “ip directed-broadcast” pe interfata pe care se forwardeaza pachetele de tip BOOTP, DNS querry … si ai mai multe servere DHCP, DNS etc. din acelasi subnet, poti folosi pe interfata sursa “ip helper-address x.x.x.x” cu x.x.x.x adresa de broadcast a subnetului din care fac parte serverele.
cat despre posibile BUG-uri, cateodata si 1+1 fac 3 pentru valori suficient de mari ale lui 1 🙂