Скоро будет неделя, как долбаюсь. Нача с изучения РФС, потом просто в интернете читал, потом исходники микрочиповского стека.
В итоге сам по себе запрос примитивен, по виду протокола, но ДНС сервер категорически утверждает, что я ему прислал ошибозный запрос.
В ответ от сервера ДНС получю тотже запрос, но поле ошибок содержит код, что неправильный формат сообщения.
ответ ошибки:
Код:
|
AA AA
81 05 -- ошибка
00 01
00 00
00 00
00 00
03 77 77 77
02 79 61
02 72 75
00
00 01
00 01 |
реализация ДНС части:
Код:
|
__flash unsigned int Dest_Port_DNS = 53;
__flash unsigned char dns_ip[4] = {213,87,1,1};
void make_dns_req(void) {
Clr_PPP();
Make_PPP_Head();
Make_IP_head(IP_PROT_UDP, IP_DEST_ARDDR_DNS);
Make_UDP_Head(UDP_PORT_DNS);
//---DEMO TEST DNS---
Add_buf_phone(0xAA);
Add_buf_phone(0xAA);//___ID
Add_buf_phone(0x01);
Add_buf_phone(0x00);//___FLAGS
Add_buf_phone(0x00);
Add_buf_phone(0x01);//___QUESTION
Add_buf_phone(0x00);
Add_buf_phone(0x00);//___ANSWER
Add_buf_phone(0x00);
Add_buf_phone(0x00);//___AUTHORITY
Add_buf_phone(0x00);
Add_buf_phone(0x00);//___ADDITITIONAL
Add_buf_phone(3);
Add_buf_phone('w');
Add_buf_phone('w');
Add_buf_phone('w');
Add_buf_phone(2);
Add_buf_phone('y');
Add_buf_phone('a');
Add_buf_phone(2);
Add_buf_phone('r');
Add_buf_phone('u');
//------
Update_IP_len();
Calc_IP_CRC();
Update_UDP_len();
PPP_Send_();
Clr_PPP();
} |
До этого снифер на компьютере там всё нормально проходит, пробовал другие днс серверы, результат тотже, уже и незнаю куда деваться.
Подскажите как быть ?