• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ArturLaranja

Computador com 4 IP's - Como enviar e receber tráfego por cada um deles?

26 mensagens neste tópico

Boas malta,

tenho uma dúvida que se prende com redes mas é em C# que depois queria implementar esta minha ideia através de sockets. Como isto tem mais a ver com redes, coloco aqui nesta secção a minha dúvida.

É assim: tenho um pc ligado a uma rede interna e mais 3 modems daqueles que se vendem agora aí das operadoras móveis. Com isto tudo tenho 4 IP's, portanto. Eu através de sockets no C# consigo dizer que quero comunicar com o exterior (pingar o www.yahoo.com, por exemplo) através de cada um dos IP's. Faço o bind no socket. Só que há um problema. So consigo fazer isto quando o IP que escolho no bind é igual ao IP que está em default gateway na tabela de rounting do XP (faço um "route print" na consola de DOS). Supondo que os meus IP's sao o 1.1.1.1, 2.2.2.2, 3.3.3.3 e o 4.4.4.4. Se eu fizer o bind ao 3.3.3.3 por exemplo ele só comunica com o exterior se o 3.3.3.3 tiver na minha default gateway. Se tiver o 1.1.1.1. já nao consigo!! E esse default gateway tem o IP do último dispositivo que eu liguei via dial up.

A minha questão é, portanto, se é possivel comunicar com o exterior via os 4 IP's no windows XP usando o C# ou eventualmente outra linguagem qualquer.

É possivel alterar as tabelas de routing do XP de modo a fazer o que quero, caso seja mesmo preciso?

Obrigado

cumpz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Atenção que modem é diferente de router. Podes ter um router que tenha incorporado um modem, mas um modem não tem um IP!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

???

Eu tenho 3 modems ligados por USB ao meu PC. Ligo-me por Dial-up ao servidor da tmn/vodafone/optimus e recebo um IP... a partir daí tou ligado à net.

Tendo os IPs depois queria fazer o que perguntei aqui...

Cmpz

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então quer dizer que tens 3 ligações, ou seja 3 modems que se ligam cada um a uma diferente operadora, certo?

Eu não sei se podes fazer isso, o teu PC só pode ter um IP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, isso mesmo! tenho 3 modems (+ rede local) e por isso tenho 4 IPs diferentes. Consigo ligar-me na boa e fico com 4 IP's diferentes ao mesmo tempo. So que faço ROUT PRINT na consola DOS e ele so me dá um default gateway que é o da ultima placa q liguei! Ou seja, toda a minha informação entra e sai a partir desse IP. Se o desligar, passo a ter outra gateway associada a outra placa q esteja ligada.

Conclusao: posso ter activos os IP's que quiser ao mesmo tempo... agora escolher um ou outro para comunicar com o exterior é que é uma gaita!!!!

Cumpz e tks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É uma situação caricata sem dúvida...

Nunca vi uma dúvida assim... :S Em principio deve-te escolher  IP cujo DNS for mais rápido a responder, mas não tenho a certeza.

Se souber de alguma coisa digo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens ai uma confuçao de ligaçoes va la vai... uma cena, 3 placas de operadora, para que tantas? acho que o win nao da para fazer varias saidas ao msm tempo porque ele so te mete uma como defualt, tens e que ver qual é com o tal programar poder alterar os defualt, so assim e que acho q vai ser capaz de o fazer, mas vais tornar isso numa confuçao maior ainda, e tou msm a ver o Xp a atroiar.se todo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pebat, estás enganado ;) O XP aguenta-se e mto bem! É possivel fazer tudo o q perguntei... já o fiz! Neste momento tenho 4 IP's no windows e cada um faz o que quero e como quero... :)

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tendo os 4 IP's na máquina, altero a tabela de routing do XP e indico que destinos sao acedidos por cada IP. Isso faz-se com o comando "route add" ;)

Dps disso, em c# com sockets, faço o bind aos IP's que quero...

espero ter ajudado

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eheh, és um fixe ^^

Dá aí um exemplo do route add para o P@P por exemplo.

Obrigado ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é facil:

route add -p IP_DESTINO mask 255.255.255.255 IP_ORIGEM metric 1

dps façam o bind no socket e siga... mas isto dá algumas dores de cabeça fazer... ;)

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é facil:

route add -p IP_DESTINO mask 255.255.255.255 IP_ORIGEM metric 1

dps façam o bind no socket e siga... mas isto dá algumas dores de cabeça fazer... ;)

abç

Essa mask tem de ser alguma em específico?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta trocado.

IP_DESTINO -> IP_ORIGEM

IP_ORIGEM -> DEFAULT_GATEWAY

De facto, só uma ligação pode ser usada da cada vez.

Podes é andar a trocar a ligação no teu programa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, não está trocado. É assim mesmo como disse.

A mask é a máscara de rede.

abç

EDIT: shumy, não! Podes usar todas as ligações ao mesmo tempo. Se tiveres 100 usas as 100 em paralelo!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ningem falou na mascara.

Usas uma ligação de cada vez. A não ser que tenhas alguma sistema que troque as ligações.

Mas em geral em um host usas uma só ligação, e só quando falha é que passa para outro. A excepção é usada só em máquinas que fazem distribuição de carga.

Para fazer isso em um host deves ter algum software de distribuição de carga. não?

Já agora gostava de ver essas tabelas de routing. Penso que não será problema coloca-las aqui, já que estás numa rede interna.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

shumy, quando eu disse: "Não, não está trocado. É assim mesmo como disse." estava a responder ao que tinhas dito anteriormente:

"Esta trocado.

IP_DESTINO -> IP_ORIGEM

IP_ORIGEM -> DEFAULT_GATEWAY"

E quando falei nas máscaras de rede estava a responder ao que o djthyrax tinha perguntado.

Eu não uso uma ligação de cada vez, uso as 4 ligações ao mesmo tempo mas para coisas diferentes. Por exemplo o IP1 está na Web. o IP2 está a ver o mail, etc... mas isso está em paralelo. Agora imagina, cada modem sao 3,6 Mbps se meteres os 3 a fazer o download dum ficheiro por FTP podes ficar com 3x3,6MBps no total basta que para isso faças o balanceamento de carga. Programar isso é relativamente simples.

shumy, essas minhas tabelas de routing nao têm nada q saber. Segue o que disse anteriormente. Se inserires 3 caminhos estáticos diferentes para cada um dos IP's fazes isto na boa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que chegaste á conclusão que estas a trabalhar com todas as ligações?

Abres um sniffer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Várias formas:

A) abro um sniffer

:D faço um FTP download de 4 ficheiros iguais em 4 servidores diferentes de FTP

C) Windows Task Manager na parte de Networking

D) Informação de cada operador

C) Luzinhas no tray do windows

Está MESMO tudo em paralelo, acredita... :)

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nenhuma dessas informações indica que o sistema está a trabalhar com todas essas interfaces ao mesmo tempo.

Desculpa lá estar a duvidar... mas gostava de ver isso a trabalhar em paralelo. Apesar disso não sou estupido o suficiente para não dizer que não possa estar enganado.

Sei que se pode fazer, mas tenho duvidas que só as configurações de routing no host sirvam para por isso a funcionar.

Podes mostrar ai uma amostra do sniffer que prove isso a trabalhar em paralelo? Pode ser mesmo um file do Ethereal, se for esse com que estás a trabalhar.

Mais uma vez não leves a mal, só queria ter mesmo a certeza que isso funciona, porque eu não tenho a possibilidade de ter um ambiente desses.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não indica pq? Bom, mas se quisermos ser picuinhas até podemos dizer que na informática nada trabalha em paralelo, certo? 1 processador, 1 instrução de cada vez... certo? :D

Não te posso mostrar nada pq estou em casa e isto é um projecto no trabalho. Mesmo que estivesse no trabalho nao te podia mostrar na mesma por razoes obvias. Nao leves a mal!

Mas tu podes ter um sistema destes sim! arranja mais outro IP e tens um sistema destes.

Acredita q isto trabalha em paralelo... o Windows Task Manager diz-te isso mesmo graficamente! Pah nao tenho interesse em estar a mentir ao pessoal, acredita!

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que o windows task manager indica isso. Não tem lá nenhuma informação de IP's?

A justificação b, também só indica que estás a aceder a vários servidores ao mesmo tempo, não com todas a tuas interfaces, provavelmente só com uma delas.

O PC tem as ligações activas e os IP's para cada interface, mas provavelmente não as utiliza todas.

Não é uma questão de mentir, é uma questao de saber se realmente estas a fazer a analise com a informação correcta.

O tray do windows, deves tar a referir-te ao software do ISP. Mas isso também é um bocado de desconfiar.

Só o sniffer te pode indicar se realmente estas a usar todas as ligações.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Windows Task Manager não tem os IP's mas tem o nome das ligações associadas aos IP's.

a justificação B é a seguinte: tenho 4 servidores de FTP com ficheiros para download. Em c# faço o bind ao IP q quero usar, e na tabela de routing configurei previamente o destino (o respectivo servidor FTP) e a origem (o IP que meti no bind). Do outro lado de lá (no servidor FTP) sei qual o IP pelo qual estou a aceder. Isto tira todas as duvidas!

Quando me referia ao tray do windows nao me referia ao software do ISP, referia-me ás dial-up activas. Eu nao instalo software de ISP nenhum.

O sniffer confirma tudo isto...

Se quiseres falar mais sobre isto manda-me pvt para eu te adicionar ao msn.

abç

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, estás a usar configurações muito especificas. As tabelas de routing são direccionadas para cada servidor. Mas isso não vai servir para uso geral. Esse comportamento também acontece com vários browsers ligados ao mesmo tempo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora