Use o DD-WRT para o WOL automático quando o tráfego estiver na mesma sub-rede

1

Então, eu vi os scripts do WOL e eles parecem funcionar bem quando estou tentando se conectar de um computador que está fora do meu roteador.

Script que estou usando: link

Agora, o problema que vejo é que quando eu estiver em casa, o script WOL será inútil porque o computador iniciador e o servidor estão na mesma sub-rede, portanto, o roteador não registrará a solicitação.

Existe uma maneira de fazer com que o roteador registre as solicitações que são enviadas entre dois computadores dentro de sua rede? Eu não sou muito experiente quando se trata de estrutura de rede, mas eu não sei se isso é possível. Eu preciso de alguma forma de proxy todo o meu tráfego através do meu roteador?

Para uma explicação, aqui está o que estou tentando fazer:

Eu tenho meu servidor doméstico que serve para SMB, AFP, HTTP (s) e alguns outros aplicativos da web. Eu gostaria que o servidor estivesse dormindo quando não estivesse sendo acessado. Então, se algo fora da rede solicitar acesso HTTP, eu quero que o servidor acorde. Se um computador na sub-rede local solicitar um compartilhamento SMB, eu quero que o servidor acorde.

Coisas a serem observadas: Eu tenho um servidor Ubuntu. Todas as máquinas que estão na rede local estão diretamente conectadas ao roteador. Eu tenho um hub que algumas máquinas estão conectadas, mas todo o tráfego deve estar passando pelo roteador.

EDIT: Apenas tive um pensamento. E se eu colocar o servidor em questão em uma VLAN separada e permitir a comunicação entre a VLAN através do roteador. Em seguida, o tráfego teria que passar pelo firewall e eu poderia registrar o tráfego lá. Alguém saberia como configurar esse sistema?

    
por Chris Rice 12.08.2012 / 23:26

3 respostas

0

Resolvido, movendo o servidor em questão para uma VLAN dedicada e, em seguida, registrando o tráfego entre ele e o resto da rede usando regras específicas de iptable acionadas em algumas portas.

Eu terei um writeup completo no meu site quando eu terminar o projeto e atualizarei essa resposta.

    
por 25.08.2012 / 00:28
1

Um método bastante simples seria chamar wol manualmente do seu roteador. Embora você possa fazê-lo na recepção de um pacote, ele pode não funcionar tão bem na prática, devido ao grande atraso entre o momento em que o pacote de WoL é enviado e o momento em que a máquina de destino está pronta para ser processada. O aplicativo pode expirar antes que a máquina de destino esteja ativada.

O filtro de pacotes Linux pode passar pacotes para userspace através do QUEUE target, e você pode escrever programas para reagir a estes pacotes com o biblioteca netfilter_queue . Não tenho conhecimento de nenhum programa existente que envie um pacote de WoL ou execute outro programa (como /usr/sbin/wol ), mas não parece difícil de escrever. Saber quando fazer isso é outra chaleira de peixe: você não vai querer passar por tudo isso sempre que o computador que precisa ser acordado receber um pacote.

Eu sou a favor de fazer com que os usuários façam alguma ação manual para fazer com que o pacote de WoL seja enviado. Um método fácil é ter um usuário dedicado no roteador, com um script chamando /usr/sbin/wol como seu shell e fornecer chaves SSH para usuários autorizados. Um método mais fácil é executar um servidor da Web no roteador - pode ser um muito simples e executar scripts CGI - e executar /usr/sbin/wol quando os usuários visitarem uma página e fornecerem credenciais aceitas.

    
por 14.08.2012 / 02:31
0

Você deve apenas executar / usr / sbin / wol para ativar localmente. Não tenho certeza de qual sistema operacional você executa e / ou se é compatível com seu sistema operacional. Você teria que executar o comando antes de tentar acessar seu servidor. Então não seria automático.

Do i need to somehow proxy all my traffic through my router?

Bem, essa é uma maneira de tornar isso automático. Se você realmente precisa fazer isso, configure a máscara de rede do seu DHCP para 255.255.255.255, de forma que cada solicitação de LAN faça uma viagem de ida e volta ao roteador. Mas isso é muito ineficiente. Definir a máscara de rede como 255.255.255.255 faz com que cada máquina pense que está em sua própria rede e qualquer pacote enviado para qualquer coisa, exceto a própria, precisará passar pelo gateway (seu roteador).

    
por 12.08.2012 / 23:44