DHCP conectado à NIC A - Fornecer IP às máquinas na NIC B

1

Com base nesta pergunta , pode fazer o seguinte:

 - Router with DHCP connected to NIC A on Box 1
 - Machine B connected to NIC B on Box 1

Eu preciso da Máquina B para obter um endereço IP DHCP do roteador na NIC A. Atualmente, a configuração e configuração é a seguinte:

 - NIC A DHCP Assigned IP: 10.0.x.x (255.255.255.224)
 - NIC B Static IP: 10.1.x.x (255.255.255.252)

Eu tenho o ipv4_forwarding, mas não consigo atribuir um IP estático à Máquina B. O que preciso fazer para que todo o tráfego da NIC A flua pela NIC B. Ou, mais especificamente, como posso fazer a Máquina B obter um endereço IP do DHCP no roteador.

  • Preciso configurar o IPTables? Se sim, por onde eu começo?
  • Preciso configurar uma rota na caixa do Linux? Como?
  • Não pode ser feito?

Para esclarecer

Esta caixa não é no roteador. Já existe um roteador no lugar. Esta é uma caixa linux usada para Samba Shares e Virtual Machines. No entanto, existem algumas máquinas que não podem ser conectadas ao comutador principal, mas podem ser conectadas por meio de outro hub a essa máquina.

Em suma Esta máquina está no meio.

    
por BinaryMisfit 01.09.2009 / 19:28

6 respostas

4

Você tem três hosts:

Machine "B" ======  Machine "A" ====== Machine "R"
10.1.0.1            10.0.0.2            10.0.0.1

A menos que Machine "R" (seu roteador) saiba que 10.1.0.0/16 roteia através de 10.0.0.2 , simplesmente não funcionará.

Você tem três opções:

  1. Crie uma ponte na máquina "A"
  2. Pegue a Máquina "R" para instalar uma tabela de roteamento e use uma combinação de redirecionamento ICMP e proxy_arp para configurar o restante da rede
  3. Use a Tradução de endereços de rede na máquina "A". Isso irá "esconder" todos os hosts à esquerda dele, então a máquina "R" não poderá acessar os serviços na Máquina "B".

Para criar uma ponte, é realmente simples. Na máquina "A":

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 on

Em seguida, configure br0 para ter o endereço IP que você deseja ter (digamos, executando dhclient br0 ).

Em seguida, a Máquina "B" deve poder usar dhclient eth0 e obter um endereço IP da Máquina "R"

Pontes vêm com um monte de problemas, não sendo o menor deles o fato de que muitos dispositivos têm suporte a STP com bugs.

Se você pegar a Máquina "R" para criar sua tabela de roteamento, você precisará da Máquina "A" para ativar o proxy arp:

echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

Outras máquinas em sua rede precisarão aceitar redirecionamentos ICMP. Eu vi pelo menos duas impressoras que não são por padrão. Sua milhagem pode variar.

Por fim, ativar a Tradução de endereços de rede é realmente uma simples questão:

iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source $IP

em que $IP é o endereço fornecido por Machine "R" para uso. Existem várias ferramentas que automatizam isso.

    
por 02.09.2009 / 01:02
2

Você deve ligar as duas interfaces de rede; Desta forma, o computr do meio atuará como um hub de rede, passando o tráfego entre as duas portas de uma maneira completamente transparente. Sem roteamento, sem configurações, o outro computador e o roteador "apenas" poderão conversar entre si (e com o computador de transição, é claro).

    
por 01.09.2009 / 19:32
1

Você precisa configurar o Agente de Retransmissão DHCP na sua caixa linux. O agente de retransmissão DHCP permite que você retransforme a solicitação DHCP de uma sub-rede para outros servidores DHCP em sub-redes diferentes. O comando linux para fazer a retransmissão DHCP é dhcrelay

Além disso, você precisa verificar se é possível acessar o servidor DHCP da Máquina B (verificar minha resposta à sua outra pergunta para configurar rotas e gateway padrão) e se nenhuma regra de firewall em seu servidor está bloqueando pacotes da Máquina B para o DHCP servidor.

    
por 01.09.2009 / 19:59
1

Por que não vincular o servidor dhcp em ambas as interfaces?

por padrão, o dhcpd já deve escutar em todas as interfaces (se nenhum parâmetro for dado ao daemon) ... então eu acho que você só tem que alterar seu dhcpd.conf para gerenciar a máscara de rede no eth1 também ... e o daemon também servirá nesta interface.

EDIT após resposta Diago Desculpe eu entendi mal sua pergunta. Não excluo a resposta para outras referências, se for útil.

    
por 01.09.2009 / 19:39
1

Se você seguiu as instruções da pergunta que você vinculou, a caixa é um roteador. A configuração ip_forward = 1 permite o roteamento. Se isso não é o que você quer, então você precisa configurá-lo como uma ponte.

Por ter a configuração de caixa como um roteador, você está tornando as coisas mais complexas, então parece que você quer / precisa. Configurar o sistema com duas interfaces como uma ponte é provavelmente a opção mais fácil. Se você precisa da caixa para ser realmente um roteador, então terá que considerar as outras opções.

Você pode configurar um agente de retransmissão dhcp no computador, mas também precisará adicionar uma rota ao roteador para poder acessar o espaço de endereço interno, e precisará adicionar um escopo adicional ao roteador para o endereço interno. espaço de endereço.

Você poderia simplesmente configurar um servidor DHCP na caixa com duas interfaces e servir os endereços para sua rede interna. Isso pode ser a coisa mais simples de configurar, se simplesmente criar uma caixa com duas interfaces, uma ponte não é uma opção.

    
por 01.09.2009 / 20:00
0

A caixa 1 precisa ser configurada como um agente de retransmissão dhcp.

    
por 01.09.2009 / 19:39