questões de domínio XMPP (prosódia)

1

Estou executando um servidor XMPP em um pi de framboesa em minha lan doméstica. Eu tenho um domínio registrado para apontar para o ip externo do meu roteador e as portas são encaminhadas no meu roteador. No entanto, eu não posso usar o domínio externo / ip quando conectado à minha LAN, apenas quando fora e aproximadamente. Qual é a maneira mais fácil de configurar meus computadores em casa para reconhecer se o servidor é local (e apontar para 192.168.x.x) ou remoto?

    
por Steinberg2010 28.03.2016 / 21:13

2 respostas

1

Configure um servidor DNS leve no seu framboesa (eu recomendo dnsmasq sobre o servidor ISC BIND "padrão" porque é mais fácil de configurar para essa finalidade) e configure-o como o servidor DNS padrão para qualquer dispositivo conectado ao seu LAN (provavelmente, na sua configuração DHCP).

Na configuração do DNS, aponte seu domínio para o endereço local 192.168.x.x, substituindo o ponteiro de domínio global da Internet em sua LAN. Configure o DNS para encaminhar todas as outras consultas para o servidor DNS apropriado fora de sua LAN (como o DNS do seu ISP).

Isso resultará em um dispositivo de rede local obtendo o endereço do servidor local sempre que ele consultar seu domínio. Quando esse dispositivo estiver em trânsito, ele obterá o IP externo "real" de um servidor DNS fora de sua LAN.

    
por 28.03.2016 / 21:33
0

Como anterior outra resposta aconselhou, você pode usar um pequeno servidor de DNS em seu raspi e fazê-lo dessa maneira. Se você não quiser, e se a resolução do seu nome estiver configurada para procurar / etc / hosts primeiro, você pode usar um script como esse, para determinar o que fazer

domain=mydomain.com  # modify as needed
domain_INT_IP=192.168.1.10  #modify as needed
home_netw=192.168 # first two octets, modify as needed but probably not
NIC=eth0  # modify as needed
myIP=$(ifconfig ${NIC}|grep "inet addr"|cut -d: -f2|cut -d" " -f1)
my_netw=$(echo ${myIP}|cut -d. -f1-2)
if [ "${my_netw}" == ${home_netw} ]
then
  echo ${domain_EXT_IP}"  "${domain} >> /etc/hosts
else
  grep "${domain}" /etc/hosts >/dev/null; r=${?}
  if [ ${r} -eq 0 ]
  then
    sed -i -e "/${domain}/d" /etc/hosts
  fi
fi

Basicamente insere o endereço IP local no arquivo /etc/hosts quando detecta que o endereço IP da sua máquina está dentro de sua rede doméstica. E exclui essa linha quando você estiver fora, permitindo que você use o servidor DNS que estiver configurado no arquivo /etc/resolv.conf .

    
por 28.03.2016 / 21:48