a vidím, že jsi nadefinoval i subnet, takže ještě lépe by bylo použít syntaxi
Ethernet.begin(mac, ip, dns, gateway, subnet);
jinak by ta deklarace subnetu byla k ničemu, použila by se defaultní 255.255.255.0, tedy by to fungovalo v tomto případě stejně, ale když už, tak ať je to "čisté".
Proměnnou dns zatím nemáš nadeklarovanou, tedy ji nadeklaruj,
----------------------------
Pro úplnost, pokud by IP-adresa DNS-serveru vždy byla shodná s IP-adresou routeru, mohl by zápis v programu vypadat takto, ale bylo by to méně přehledné:
Ethernet.begin(mac, ip, gateway, gateway, subnet);