[GTER] Dúvida sobre ajuste do ACK/SEQ em NAT

Fabrício Barros Cabral fxcabral at yahoo.com.br
Wed Oct 5 01:38:15 -03 2005


Olá todos!

Estou implementando um sistema simples de NAT (para fins puramente
acadêmicos) e me surgiu um problema interessante. No momento, meu
sistema de NAT apenas modifica o endereço e a porta de destino de um
determinado pacote. Após a modificação, eu guardo o endereço e porta de
destino original (para fazer o restore dos pacotes que virão) e
recalculo o IP e TCP/UDP checksum. Então, utilizo uma simples conexão
telnet a um servidor web qualquer (eu estou redirecionando a conexão
para um *outro* servidor web, rodando em *outra* máquina e em *outra*
porta - diferente da padrão) afim de testar esta implementação de NAT.
Assim, observo que o 3-way handshake ocorre normalmente, conforme o
esperado. Só que ao enviar um comando GET (eu digito GET + <enter> na
conexão telnet), eu observo que o GET foi enviado normalmente e recebo
também um ACK deste envio, mas logo em seguida aparecem alguns RST deste
ACK, mas que não impedem o recebimento da resposta ao GET. Este mesmo
problema não foi detectado por mim usando um NAT nativo do sistema
operacional.

Assim pergunto: ao modificar o endereço e porta de destino de um pacote,
além de atualizar o IP e TCP/UDP checksum é preciso ajustar o SEQ/ACK
destes pacotes? Pois segundo o que me consta, isso só é necessário se
houver alguma mudança no payload (TCP), o que eu não estou fazendo. Se
isto não tiver nada a ver, alguém poderia me apontar algumas sugestões
sobre o que pode estar acarretando este problema?

Agradeço antecipadamente,

--fx


	

	
		
_______________________________________________________ 
Novo Yahoo! Messenger com voz: ligações, Yahoo! Avatars, novos emoticons e muito mais. Instale agora! 
www.yahoo.com.br/messenger/



More information about the gter mailing list