diff --git a/daemon/face/ethernet-transport.cpp b/daemon/face/ethernet-transport.cpp
index 5ea05c5..5a8f91a 100644
--- a/daemon/face/ethernet-transport.cpp
+++ b/daemon/face/ethernet-transport.cpp
@@ -29,11 +29,8 @@
 
 #include <pcap/pcap.h>
 
-#include <cerrno>       // for errno
-#include <cstring>      // for memcpy(), strerror(), strncpy()
 #include <arpa/inet.h>  // for htons()
-#include <net/if.h>     // for struct ifreq
-#include <sys/ioctl.h>  // for ioctl()
+#include <cstring>      // for memcpy()
 
 namespace nfd {
 namespace face {
@@ -60,9 +57,6 @@
     BOOST_THROW_EXCEPTION(Error(e.what()));
   }
 
-  // do this after assigning m_socket because getInterfaceMtu uses it
-  this->setMtu(getInterfaceMtu());
-
   asyncRead();
 }
 
@@ -218,33 +212,5 @@
   doClose();
 }
 
-int
-EthernetTransport::getInterfaceMtu()
-{
-#ifdef SIOCGIFMTU
-#if defined(__APPLE__) || defined(__FreeBSD__)
-  // see bug #2328
-  using boost::asio::ip::udp;
-  udp::socket sock(getGlobalIoService(), udp::v4());
-  int fd = sock.native_handle();
-#else
-  int fd = m_socket.native_handle();
-#endif
-
-  ifreq ifr{};
-  std::strncpy(ifr.ifr_name, m_interfaceName.data(), sizeof(ifr.ifr_name) - 1);
-
-  if (::ioctl(fd, SIOCGIFMTU, &ifr) == 0) {
-    NFD_LOG_FACE_DEBUG("Interface MTU is " << ifr.ifr_mtu);
-    return ifr.ifr_mtu;
-  }
-
-  NFD_LOG_FACE_WARN("Failed to get interface MTU: " << std::strerror(errno));
-#endif
-
-  NFD_LOG_FACE_DEBUG("Assuming default MTU of " << ethernet::MAX_DATA_LEN);
-  return ethernet::MAX_DATA_LEN;
-}
-
 } // namespace face
 } // namespace nfd
diff --git a/daemon/face/ethernet-transport.hpp b/daemon/face/ethernet-transport.hpp
index 2412924..63658d0 100644
--- a/daemon/face/ethernet-transport.hpp
+++ b/daemon/face/ethernet-transport.hpp
@@ -98,12 +98,6 @@
   void
   handleError(const std::string& errorMessage);
 
-  /**
-   * @brief Returns the MTU of the underlying network interface
-   */
-  int
-  getInterfaceMtu();
-
 protected:
   boost::asio::posix::stream_descriptor m_socket;
   PcapHelper m_pcap;
diff --git a/daemon/face/multicast-ethernet-transport.cpp b/daemon/face/multicast-ethernet-transport.cpp
index b4adea0..b7bbdc2 100644
--- a/daemon/face/multicast-ethernet-transport.cpp
+++ b/daemon/face/multicast-ethernet-transport.cpp
@@ -61,6 +61,7 @@
   this->setScope(ndn::nfd::FACE_SCOPE_NON_LOCAL);
   this->setPersistency(ndn::nfd::FACE_PERSISTENCY_PERMANENT);
   this->setLinkType(linkType);
+  this->setMtu(localEndpoint.getMtu());
 
   NFD_LOG_FACE_INFO("Creating transport");
 
diff --git a/daemon/face/unicast-ethernet-transport.cpp b/daemon/face/unicast-ethernet-transport.cpp
index 316c91d..e2e56d0 100644
--- a/daemon/face/unicast-ethernet-transport.cpp
+++ b/daemon/face/unicast-ethernet-transport.cpp
@@ -44,6 +44,7 @@
   this->setScope(ndn::nfd::FACE_SCOPE_NON_LOCAL);
   this->setPersistency(persistency);
   this->setLinkType(ndn::nfd::LINK_TYPE_POINT_TO_POINT);
+  this->setMtu(localEndpoint.getMtu());
 
   NFD_LOG_FACE_INFO("Creating transport");
 
