+ Responder ao Tópico



  1. #1
    estanisgeyer
    Visitante

    Padrão Urgente! NAT + roteamento + Banco de dados Firebird

    Boa noite...

    Estou com um pequeno problema e acredito que seja apenas um detalhe.
    Desenvolvemos uma aplicação em ruindows para se comunicar com um banco de dados firebird remoto. Este banco de dados está ligado diretamente à um número ip válido. A dificuldade está em instalar o aplicativo no cliente e fazer funcionar a comunicação. Acontece que o cliente possui um gateway linux, sendo habilitado o repasse de pacotes por NAT para as estações windows. Vejam a estrutura da rede:

    Estação Windows (192.168.0.4 - gw 192.168.0.2) ---> Roteador Linux (eth0: 192.168.0.2 - ppp0: IP dinâmico) ---> [[ INTERNET ]] ---> Servidor Firebird (200.xxx.xxx.xxx).

    O firebird escuta na porta 3050, porém a porta da máquina cliente que se conecta ao firebird é aleatória, geralemente acima de 65000.
    Instalo o aplicativo na máquina cliente e este precisa se comunicar com o firebird externo, porém há um gateway no meio do caminho. Já tentei usar uma regra no post que fiz anteriormente porém não funcionou.
    Alguém tem uma sugestão?

    Agradeço pela atenção.

    Marcelo Estanislau.

  2. #2
    estanisgeyer
    Visitante

    Padrão Urgente! NAT + roteamento + Banco de dados Firebird

    Oi, ninguém pode me ajudar.....

  3. #3
    Kakaroto
    Visitante

    Padrão Urgente! NAT + roteamento + Banco de dados Firebird

    e ae

    kara q situação vc tem hein!, só uma coisa como q é q vc tem um aplicação q não conversa com o firebird na mesma porta? me diz?! nunca vi isso !!! olha não vi seu outro post mas a unica solução q vejo ai e vc fazer um redirecionamento de portas, não tive tempo de testar essa regra entre maquinas aq no trampo porq ta uma correria mas o melhor e vc testar ai logo ok, se ja usou essa regra no post anterior q disse, ou se ja deram essa sugestão, e so desconsiderar falou!! olha ao meu ver vc vai precisar de duas regras neste gateway linux, uma pra ir e outro para voltar
    vai la

    * para ir
    iptables -t nat -A POSROUTING -s IP_maquina_cliente -i eth0 -d IP_firebird -p tcp --dport 65000 -j REDIRECT --to-port 3050


    * para voltar
    iptables -t nat -A PREROUTING -s IP_firebird -i ethx -d IP_maquina_cliente -p tcp --sport 3050 -j REDIRECT --to-port 65000


    certo, outra solução seria mudar sua aplicação para responder na mesma porta do firebird mas pelo q li nos docs sobre o firebird e sobre interfaces de bancos, ele depende muito do driver(ou interface com o banco)
    usado em cada aplicação e a sintaxe da linguagem(Java, C, etc), me corrijam se eu estiver errado!! graças a criação da interface ODBC, se tornou possível o desenvolvimento de aplicações escritas em linguagens diferentes utilizando a mesma metodologia para se comunicar com bancos de dados diferentes, não precisando de modulos exclusivos para cada linguagem, putz ja to começando a falar dificil(Aff) bom chega de estorinha e vamos la, oq quero dizer é o seguinte, não sei qual "driver" sua aplicação usa?!, mas digamos q ela usa ODBC certo a comunicação se daria de forma bem simples a sua aplicação conversaria com o ODBC
    e este se encarrega de fazer a comunicação não sei lhe dizer como funciona isso, nem q porta o ODBC usa nem procurei por isso, mas digamos então, pelo meu ver para fazer a aplicação responder na mesma porta teria q mexer no ODBC e isso nunca hehehehee nem compensa então a sugestão redirecionamento de portas, pelo firewall uma sugestão, mas se falei abobrinha me desculpem eu estou aprendendo ainda e é discutindo q o nosso conhecimento chega lá certo, bom espero ter ajudado pelo menos dado uma luz

    falow
    kakaroto

  4. #4
    estanisgeyer
    Visitante

    Padrão Resolvido

    Boa tarde, caros amigos...

    Resolvi essa bronca. A pura verdade é que não estava nada errado no gateway do cliente, muito menos em drivers e sei lá o que. Como fiz então para resolver?
    Tive que editar o arquivo da máquina ruindows do cliente, onde foi instalado o aplicativo. O arquivo é o C:\WINDOWS\SERVICES.
    Tive que adicionar o serviço do banco de dados, por incrível que pareça, depois de reiniciar, começou a funcionar. Adicionei a seguinte linha:

    gds_db 3050/tcp Firebird # Serviço de BD Firebird


    Obrigado pela ajuda de todos, principalmente do Marcos Amorim que me auxiliou no gateway e não encontramos nada de errado.... hehehehe.... bah desculpe, foi mal... mas é assim que se aprende.

    Att.