Eu tenho um servidor e um PC cliente conectados diretamente ao mesmo switch de desktop. Mas também quero colocar um link dedicado de alta velocidade separado entre eles. O objetivo é conectá-los à internet e LAN com 1G, mas o tráfego entre o PC e o servidor é de 10G:
Se relevante, o PC executa o Windows 10 em uma placa de estação de trabalho Asus e o servidor executa o FreeBSD 12 em uma placa Supermicro. Ambos possuem NICs Intel 1G e Chelsio 10G, e ambos os rodapés possuem firmwares de estação de trabalho/servidor com todos os recursos. Ambos estão na mesma sub-rede em toda a LAN no momento.
Minhas perguntas:
- Quais são as maneiras mais corretas ou facilmente implementadas para configurar a rede do PC e do servidor, para que o loop não cause problemas de rede? Ou seja, o tráfego entre o PC e o servidor só pode passar pelo link 10G e o tráfego de/para qualquer outro dispositivo nunca pode passar pelo link 10G?
(Para que, se eu desconectar o fio entre o PC e o switch, o PC ainda não esteja conectado a outros dispositivos LAN por meio do loop através do servidor)
- Se no futuro eu atualizar o switch para um switch totalmente gerenciado que possa lidar com controles de acesso, como o Netgear ProSAFE, ou eu começar a usar VLANs nele, a "resposta correta" mudará?
Atualizar
Como os comentários estão ficando longos, este é um resumo de alguns dos problemas que eles revelaram, o que tornou essa pergunta difícil.
O principal problema é que a rede é baseada em DNS. Isso é importante porque os endereços IP não aparecem no explorador de arquivos do Windows, apenas os nomes de host descobertos. Um endereço IP pode ser usado para um servidor de arquivos SMB e seus compartilhamentos, mas terá que ser inserido manualmente toda vez que um compartilhamento de arquivo for acessado e, infelizmente, muitos programas não têm escopo para inserir um caminho manual, espera-se que todos os dispositivos navegáveis aparecerão em uma árvore de navegação do explorador de arquivos preenchida ou descerão de uma lista de dispositivos descobertos. Portanto, usar o IP 10G para o servidor não é uma solução confiável e viável.
(Discovery é presumivelmente DNS ou WS-discovery do PAC e DNS/WS-Discovery/mDNS-bonhour de alguns outros dispositivos. SMBv1/NetBIOS/WINS estão todos desativados - obrigado por observar este aspecto @user1686)
O fato de o servidor ter 2 NICs sem ponte, um dos quais não tem link para o servidor DNS e é ponto a ponto direto, presumivelmente significa que seus IPs precisam ser distintos. (E os IPs 10G precisarão ser estáticos, pois não há DHCP nesse link/sub-rede) .
Também suspeito que devo bloquear a descoberta por meio do link 1G separadamente, se ele não usar DNS, ou configurar a descoberta para usar DNS e nenhum outro método - na memória, pode-se configurar o Windows com o qual os métodos de descoberta são ativados e em que ordem experimentá-los in e especificar apenas DNS? Mais uma vez, obrigado @ user1686
Pelas respostas, acho que vejo talvez 3 soluções possíveis. Qual seria mais correto, ou todos são válidos?
Possível solução 1?
O que recebo das respostas até agora é que, se o 10G estiver em uma sub-rede diferente e o arquivo de hosts do PC for hackeado manualmente para substituir o DNS e usar o IP 10G para o servidor e o roteamento ou firewall estiver configurado para garantir o IP 1G dos servidores não é acessível a partir do PC, parece que funcionaria.
Mas é incrivelmente desajeitado e parece um "trabalho de hack". Demasiadas substituições manuais definidas em máquinas individuais. Não sei se isso é "normal".
Possível solução 2?
Outra opção depende do DNS local em execução no Unbound
, que (como BIND
) oferece suporte a visualizações. Isso significa que o servidor DNS pode ser configurado para fornecer o IP normal do servidor para todos os dispositivos na pesquisa, mas os servidores IP 10G para o PC (somente). Não tenho certeza se isso é suficiente - é?
Se for, uma solução pode ser: sub-rede LAN 10.0.0.0/8, servidor 1G IP alocado pelo DNS para dizer 10.0.0.1 servidor 10G estático 10.0.0.2 e, em seguida, usar DNS para fornecer o IP 1G do servidor a todos os dispositivos, exceto o PC, mas retorne o IP 10G do servidor + a NIC 10G do PC como seu primeiro salto/gateway, para o PC.
Ingenuamente, o resultado seria: os IPs 1G e 10G estão na mesma sub-rede, então o servidor é visto como estando na sub-rede correta pelo PC. Mas o IP 10G é invisível para todos os outros dispositivos, e o IP 1G é visível, mas ignorado pelo PC, portanto não há conflito. Portanto, quase tudo é feito no DNS.
Isso é viável?
Possível solução 3
Os mesmos IPs acima (2), mas configure o DNS para retornar ambos os IPs para todos os dispositivos. Dispositivos LAN não-PC falharão ao encontrar 10.0.0.2 e eventualmente decidirão que 10.0.0.1 é o IP usado. O PC é protegido por firewall para descartar todos os pacotes para 10.0.0.1 e, portanto, decide que 10.0.0.2 é o único IP funcional (pode ser necessário uma dica de primeiro salto). Então, novamente, tudo é feito no DNS, impedindo uma entrada de firewall para bloquear o loop 1G.
Funcional também?
Basta conectar os dois usando um cabo e configurar ambas as portas para terem endereços IP. Este link deve usar uma sub-rede completamente separada de sua LAN principal, por exemplo, se o switch 1G carrega 192.168.1.0/24, então o link 10G dedicado deve ser 192.168.2.0/24 (ou melhor ainda, um /30).
A ponte não ocorrerá a menos que você deliberadamente estabeleça uma ponte. Nem o Windows nem o FreeBSD (nem qualquer outro sistema operacional) o habilitam automaticamente.
O roteamento não ocorrerá a menos que você configure deliberadamente o encaminhamento de pacotes. Nem o Windows nem o FreeBSD o habilitam automaticamente.
(Além disso, o IPv4 usa tabelas de roteamento configuradas explicitamente, portanto, mesmo que o PC ou o servidor tivesse o roteamento ativado, o roteamento ainda não ocorreria porque outros hosts não teriam como saber que podem usá-los como gateways. O IPv6 precisaria de um um pouco mais de cuidado para garantir que as máquinas não enviem anúncios de roteador, mas isso também é desativado por padrão no Windows e no FreeBSD.)
Obviamente, se você não deseja que o PC use o servidor como um gateway, não preencha o campo "Gateway padrão" ao configurar endereços IP em sua placa de rede de 10 Gbit...
Não.
Essa descoberta não é baseada em DNS. Pode estar usando LLMNR & WS-Discovery, ou o antigo NetBIOS (se SMBv1 for permitido), ou mDNS & DNS-SD (mas o Windows ainda não suporta isso), ou mesmo LDAP (Active Directory), mas ganhou não estar usando DNS comum.
Caso contrário, você concorda em inserir caminhos manualmente, então você pode mapear esses caminhos para uma letra de unidade usando "Map Network Drive" ou
net use
. Eles aparecerão permanentemente na subárvore "Este PC".O DNS não manipula a alocação de endereços. Eu acho que você quer dizer "DHCP"?
Sim, normalmente esses links ponto a ponto não possuem DHCP, mas por outro lado, nada impede que você execute um daemon DHCP no servidor e permita que pelo menos o PC adquira seu endereço dinamicamente. (Mas faça isso com cuidado - não anuncie a opção DHCP 'Routers'.)
Bridging não é realmente uma boa solução, mesmo com STP para evitar loops. Não há como dizer ao STP para usar um caminho específico apenas para acessar determinados endereços MAC – ou o link está ativo ou não.
(Há uma razão pela qual eles não chamam os switches de "roteadores Ethernet".)
Eu acho que os protocolos mais recentes TRILL ou 802.1aq "ponte de caminho mais curto" realmente funcionariam aqui (como eles roteiam no nível MAC), mas parece que ainda levará anos até que eles comecem a aparecer em switches de consumo acessíveis. (O PC e o servidor também precisariam participar, e para o Windows isso é ainda mais improvável.) Até então, STP é tudo ou nada.
Os dois links realmente precisam estar em sub-redes diferentes, caso contrário, você precisará de mais coisas para substituir no PC...
O problema com essa abordagem é que, quando um host tem várias interfaces pertencentes à mesma sub-rede, ele geralmente não tentará adivinhar qual usar para cada endereço IP de destino individual. Ele sempre preferirá uma interface para toda a sub-rede. A menos que você adicione manualmente rotas mais específicas para substituí-las por destino.
(No entanto, o Windows pode realmente adivinhar - não verifiquei recentemente. Mas acredito que ele só aplica essa adivinhação a intervalos de endereços "link-local" designados.)
A rota sugerida por Aron não torna o endereço IP 1G inacessível. Em vez disso, torna o endereço IP 1G acessível por meio do link 10G.
Então, na verdade, você não precisa de ambos – você só precisa de um ou de outro.
Se você seguir a sugestão de Aron, há apenas uma única coisa que você precisa substituir: o roteamento para os endereços 1G de ambos os computadores.
(Infelizmente, é "normal" que os hosts não participem dos protocolos de roteamento IP - o Windows não fala OSPF para permitir que os custos da rota sejam determinados automaticamente, nem o seu roteador LAN, eu suspeito. O Windows fala RIPv2, mas não estou certeza se isso seria útil nessa situação ou se não seria mais trabalhoso do que uma substituição de rota estática.)
Isso pode funcionar – novamente, os endereços precisam estar em sub-redes diferentes.
E se você está bem com as regras manuais de firewall, também deve estar bem com as rotas manuais - elas têm a mesma quantidade de "substituições" e são uma solução um pouco melhor. (E eles não são literalmente a "dica do primeiro salto" de que você fala?)
Configuração mais fácil: use uma sub-rede diferente para o link de 10 GbE. /30 será suficiente. Alguns dispositivos até funcionam em uma sub-rede /31. Use uma sub-rede com endereços que não precisam ser acessíveis por meio de sua conexão de 1 GbE. Com sub-redes diferentes, nenhum pacote irá aleatoriamente para um ou outro caminho.
Como você provavelmente terá DNS em sua conexão de 1 GbE, a maneira mais fácil de evitar ambiguidades seria não usar nomes para sua sub-rede de 10 GbE. Como é ponto a ponto de qualquer maneira, basta usar endereços IP para configurar serviços que devem usar o link de 10 GbE.
10gb lan chame de intranet. Ou seja, xyz.local 10.1.1.0/24
1gb chame de internet 172.16.1.xcx/24
Definir todos os 10 GB na intranet ((10.1.1.0/24) sem nenhum endereço de gateway up
DNS 1. ROUTER_IP (somente no host do cliente)
Servidor DNS DNS 1= 127.0.0.1 (no servidor) DNS2 = 9.9.9.9
no interlan
Cliente/servidor na 2ª interface usa espaço IP para 1gb lan
Ou seja, 172.16.1.0/24 Gateway padrão e IP do roteador DNS
Roteador configurado com duas lans
Intra lan IP 101.1.1/24 Nenhum gateway definido IP do servidor DNS1 DNS2 pub DNS (9.9.9.9)
Internet lan ip 172.16.1.1/24 Gateway wan ip DNS1= ip do servidor 172.16.1.xxx DNS2 9.9.9.9
Nome de domínio xyz.local.
Para linux/bsd configure /etc/resolve.conf adequadamente
Todo o tráfego da LAN será resolvido com 10.1.1.xxx
Gateway irá cutucar o DNS local para xyz.local
Todos os outros irão para DNS público
Colocar uma