Ethernet maintain. Does not work properly.

Looks like Ethernet maintain does not work properly.
I am using MikroTik hAP ac (RB962UiGS-5HacT2HnT)
with my Arduino ethernet.
It obtain IP address. But after Request lease renewal, nothing happend.
I have analyzed packet from my WiFi sonof, And make changes in Ethernet library.

File Dhcp.cpp
Function [void DhcpClass::send_DHCP_MESSAGE(uint8_t messageType, uint16_t secondsElapsed)/i]
Except this:
* *IPAddress dest_addr( 255, 255, 255, 255 ); // Broadcast address* *
I have added this:
*IPAddress dest_addr;

if(messageType == DHCP_REQUEST && _dhcpDhcpServerIp[0] != 0
    && _dhcpDhcpServerIp[1] != 0
&& _dhcpDhcpServerIp[2] != 0
&& _dhcpDhcpServerIp[3] != 0){
    dest_addr = _dhcpDhcpServerIp;
    dest_addr = {255, 255, 255, 255};
* *Except this:* *
*    // ciaddr: already zeroed
    // yiaddr: already zeroed
    // siaddr: already zeroed
    // giaddr: already zeroed*
* *I have added this.* *
*    // ciaddr: already zeroed
    buffer[12] = _dhcpLocalIp[0];
    buffer[13] = _dhcpLocalIp[1];
    buffer[14] = _dhcpLocalIp[2];
    buffer[15] = _dhcpLocalIp[3];
    // yiaddr: already zeroed
    // siaddr: already zeroed
    // giaddr: already zeroed*
And all is worked correct.
I am not good know Ethernet protocols.
Mamy somebody check this and improve Ethernet library?

It works here with the w5100 ethernet shield. I use Mikrotik 433 and 433ah routers, and it renews the lease.

Bear in mind that the Ethernet.maintain() call does nothing except return 0 if it isn't time to renew the lease. It won't send a lease renewal request until half the lease time has expired.

Edit: If you want to check the lease times in the router:
/ip dhcp-server lease print detail

Thank you for ansver.
Yes. I know. Arduino send renew lease request every 5min. But in my case it was not worked before I was changed library.