Tutorial: "Bypass" ao router MEO (com servidor GNU/Linux) | MEO Fórum
Tutorial: "Bypass" ao router MEO (com servidor GNU/Linux)
O meu problema era o seguinte: Precisava de ter o meu servidor que corre neste momento Archlinux com um endereço de IP público, para poder aceder à minha rede local e aos recursos do mesmo via OpenVPN. No entanto queria manter a box da TV e o serviço de telefone a funcionar. Esta foi a solução que encontrei. É bastante versátil e pode ser usada para outros fins que não o meu – basicamente qualquer outro propósito que exiga um endereço de IP público para um aparelho qualquer que não seja o router da MEO.
A maior dificuldade que tive ao elaborar esta solução não foi com o sistema em sim, mas sim em encontrar toda a informação que precisava sobre o funcionamento do sistema da MEO. A maior parte da informação encontra-se neste fórum, mas está toda espalhada por posts nas mais diversas threads, e algumas delas já com uns aninhos em cima. Daí estar a reunir toda a informação que precisei aqui. Espero que ajude mais alguém.
Já agora – Esta informação foi a que consegui arranjar. Funcionou no meu caso, mas casa queiram experimentar nos vossos equipamentos descarto desde já responsabilidade por qualquer problema que ocorra. Nunca perguntei, mas tenho quase a certeza que estas configurações não são suportadas pela MEO.
Após este "disclaimer" vamos ao que interessa. Por favor leiam tudo até ao fim antes de começar a tentar aplicar estas configurações.
1. Hardware necessário (para além do fornecido pela MEO):
Servidor Linux com 3 portas ethernet (vamos chamar-lhe GNU/Linux Server – GLS para simplificar);
Se o GLS não dispuser de 3 ethernet, pode-se utilizar um GLS com apenas 2, recorrendo adicionalmente a um switch de rede qualquer (não precisa de ser um smart switch) com pelo menos 4 portas.
2. Esquema de ligações:
3. Distribuição de funcionalidades:
Com este setup, as funções de cada aparelho tornam-se pouco usuais. Essencialmente o ONT mantém o seu papel, mas o router MEO fica a funcionar como um simples "access point", sem funções de "routing" quase nenhumas, sendo este papel de gestão de rede assegurado pelo GLS.
4. Configurações genéricas do GLS:
Não faz parte deste tutorial explicar como configurar os serviços que o GLS corre, mas são os seguintes:
OpenVPN – Faço a ressalva que é necessário criar um virtual device (tap0) e que depois é preciso colocar em bridge mode com o interface enp1s0 num device denominado br1. A melhor informação sobre isto encontra-se ou na documentação do OpenVPN ou na Archwiki.
dnsmasq (servidor de DNS e DHCP)
É claro que pode haver mais, mas este são os mais relevantes para o use case que quero explicar.
5. Configurações específicas do GLS
Tal como descrito na figura, o nome dos interfaces de rede do GLS são enp0s0, enp1s0 e enp2s0.
5.1 – Internet no GLS
Ligamos o ONT diretamente ao enp0s0. Podemos reparar que se usarmos um cliente de DHCP neste interface não vamos receber nenhum endereço de rede. Isto acontece porque a MEO usa um sistema de "Vlans". Mais uma vez, a Archwiki explica como configurar uma VLAN muito melhor do que eu alguma vez conseguiria expor aqui, neste caso a VLAN12.
A partir do momento em que usem um cliente de dhcp no novo interface virtual, já devem receber um endereço de IP. O primeiro passo está concluído e o GLS tem agora acesso à Internet.
5.2 – Servidor de DHCP no GLS
De seguida, configuramos o nosso servidor de DHCP do GLS para atribuir endereços numa gama diferente do router MEO. Este geralmente funciona no range 192.168.1.0/24. Vamos configurar o nosso servidor GLS numa gama completamente diferente para não haver enganos. No meu caso estou a usar 10.10.10.0/24 (alguém se lembra do pai natal número 10 10 10?), mas usem o que acharem melhor.
Atenção que as configurações do "dnsmasq" não devem incidir sobre o interface enp1s0, mas sim sobre o interface br1 se estiverem a usar uma bridge de openvpn para ligar o interface virtual tap0 com o físico enp1s0.
Um outro passo muito importante é ir à configuração do nosso servidor de DHCP e atribuir um endereço diferente à MEO Box. Para tal, apontamos o MAC Address da vossa MEO Box e configuramos o "dnsmasq" (neste caso) para atribuir a esse endereço físico o seguinte endereço de IP: 192.168.1.60. Este endereço tem de ficar na gama dos endereços atribuídos pelo router MEO. Não é preciso preocuparmos-nos com route pushing nem nada.
5.3 – Bridge entre o ONT e o router MEO
Agora precisamos de criar um interface de bridge entre o dispositivo virtual de VLAN12 e o nosso enp0s2 que liga à porta WAN do router MEO. Mais uma vez a ArchWiki mostra como é simples fazer isso.
Se tudo correu bem, neste momento o router MEO tem acesso à Internet com um endereço de IP público diferente do servidor GLS. Estamos quase a chegar ao fim.
5.4 – Configs do router MEO
Agora chegamos à parte mais "tricky".
Primeiro vamos atribuir ao router meo um novo endereço de IP. Vamos manter os que já lá estão inalterados, mas vamos acrescentar o endereço 10.10.10.2 à gama de endereços nas quais o router fica pronto a responder. Isto vai facilitar-nos a vida mais tarde quando quisermos aceder ao router.
Agora o que temos a fazer é desligar o servidor de DHCP do router. V6 e V4. Sim, isso mesmo. O router passa agora a ser um mero access point. Depois de isto estar desligado, podem ligar a porta enp0s1 do GLS a uma das portas LAN do router e a Meo Box a outra. Se tudo correu bem, agora o GLS é responsável pela rede local e a MEO Box continua a funcionar via Router MEO. O telefone não deve ser afetado.
6. Com um switch
Se quisermos usar um switch de rede, ou não tivermos uma máquina com 3 portas ethernet, basta esquecer as configurações da br1 e ligar o ONT ao switch, onde também fica ligado o Router MEO e o GLS na porta enp0s0. O resto mantém-se.
A vantagem desta abordagem é que a TV fica completamente independente do GLS.
Por outro lado, obriga a ter mais um aparelho ligado (o switch).
Boas, isto é interessante, isso significa que esse servidor tem de estar sempre ligado para que o resto funcione?
Não tenho servidor linux, e pelo que li, não tenho forma de ter internet sem ser a passar pelo router meo, uma vez que é este que faz a autenticação na rede, e não consigo metê-lo em modo bridge, a caixa ont tem 1 ficha rj11 ou 12..
Agora estou-me a questionar se isso funcionaria aqui.
Sim, quando se usa o servidor com o modo de "bridge", é preciso que este esteja sempre ligado, uma vez que se torna responsável pela distribuição da rede (o máximo que já consegui no meu caso foram cerca de 180 dias, após esse tempo fiz um reboot para atualizar o kernel que tinha um patch de segurança importante disponí?el).
No entanto, podes sempre olhar para a opção 6 (com um switch), que permite que os serviços de televisão e telefone continuem a funcionar, mesmo com o servidor desligado. Para esse cenário também só precisas de 2 portas ethernet no teu servidor (que é bastante mais comum que 3).
Dúvida: Se quando ligo o ONT directamente a outro router que não o da meo, não consigo ter net (segundo consta, por usar IPoE?) como é que ligando um switch, no meio, já faz com que funcione? Quero dizer, mesmo admitindo a primeira opção, como é possível que esse servidor se torne responsável pela rede? Isto é um bocado confuso pra mim, eu só queria meter um router que aqui tenho, o Asus N18U, na rede, ligar o servidor vpn e conseguir aceder de fora.
Isso é devido ao que está explicado no ponto 5.1:
Para poderes obter um enedereço de IP, precisas de configurar uma VLAN (neste caso, VLAN 12). Independentemente da existência de um switch, esse passo tem de ser dado. A link para a archwiki explica bem como o fazer em qualquer sistema baseado em GNU/Linux, tenho a certeza que também dá em windows, mas não sou a pessoa indicada para te explicar como, porque sinceramente não fao ideia de como se faça isso nesse sistema operativo.