W5300 DNS 설정 문의

W5300을 이용해서 TCP/IP 통신을 하고 있습니다.
외부 공인 IP를 이용해서 통신을 하려고 하니, DNS 주소가 필요한 듯 합니다.

제가 참고한 예제 소스(1. W5300_Drv_AVR_V1.2.2_Basic)에는 IP, Gateway, Subnet, MAC만 설정하도록 되어 있는데, DNS는 어떻게 설정할 수 있나요?

W5100 소스에 보면
NetConf.dns = ((u_long)GET_DNS_IP);
라고 해서 설정하는 부분이 있는것 같은데,
setGAR, setSIPR 등 W5300 예제 소스에서 초기 설정하는 것과 같이 바로 설정할 수 있는 함수나 참고 코드가 있는지요?

없다면 간단한 예제 좀 부탁드립니다…

안녕하세요

DNS의 경우 gateway, ip 와 달리 dns 주소 설정 만으로 동작하지않습니다.
DNS는 UDP 기반의 프로토콜로 DNS 서버로 데이터를 요청하여 수신하는 방식입니다.
아래의 라이브러리를 포팅하시어 DNS_init(), DNS_run()함수를 통해 DNS를 이용할 수 있습니다.
domain_addr에 domain address를 적어주시면 해당하는 ip address가 ip_addr에 저장됩니다.

DNS_init( socket, buf);
DNS_run( dns_server_ip, domain_addr, ip_addr); 

답변 감사합니다. 추가로 몇가지 조언 좀 부탁드릴께요.

윈도우프로그램(TCP/IP Server) - W5300보드(TCP/IP Client)
현재 이렇게 구성되어 있는데, 내부망에서는 접속이 잘됩니다.
그런데 외부망을 통하면 이상하게 접속이 안되네요…;;
물론 서버쪽 방화벽에서는 포트포워딩을 해주었구요…

MAC Address도 예전에 IEEE에서 구매한 주소로 넣어는데, 혹시 따로 MAC Address를 등록하는 절차가 있어야 하나요? 구매한 주소 그냥 넣어서 사용하면 되는것 아닌지요?

DNS 설정이 안되어 있어서 그런건 아닌가 싶어 어제 문의를 드렸었는데,
윈도우프로그램(TCP/IP Server) - 윈도우프로그램(TCP/IP Client → DNS설정 안함)으로는 외부망을 통해 접속이 되는것으로 봐서… DNS 설정과는 상관이 없어 보이기도 합니다…ㅜㅜ

만약 상관이 있다면 알려주신 라이브러리, 함수를 어떻게 적용해야 하는지요?
W5300_Drv_AVR_V1.2.2 예제소스를 사용해서 아래와 같이 접속하고 있습니다.

u08 ServerIP[4] = {112,216,161,174};
u08 ClientIP[4] = {192,168,1,159};
u08 Gateway[4] = {192,168,1,1};
u08 Subnet[4] = {255,255,255,0};
u08 Mac[6] = {0x70,0xB3,0xD5,0xF7,0x2E,0xEE};

int main(void)
{

setSHAR(Mac);
setGAR(Gateway);
setSUBR(Subnet);
setSIPR(ClientIP);

while(1){
loopback_tcpc(SocketNo1, ServerIP, PORT_No, bufferRXPacket, 0);
}

}

외부망 접속이 안되는 이유가 도대체 … ㅜㅜ
급한 건인데 계속 좌절하고 있네요… 도움 좀 부탁드립니다.