Motivação:
Quero usar meu servidor Linux em vez do roteador sem fio comum por vários motivos
- Quero aprender como montar um servidor mais completo no linux
- Não quero ter um modem conectado a um roteador, conectado a um switch de rede
- Estou farto de ter que desconectar meu roteador a cada 10 dias porque ele simplesmente trava
- Estou farto de comprar roteadores apenas para perceber que está faltando algo crucial, como encaminhamento de porta ou endereçamento IP estático (dhcp)
Configurar:
Por fim, a conexão chegará a um modem e diretamente ao meu servidor através do eth0
, e então eth1
será enviada para um switch de rede ao qual todos os outros computadores clientes se conectarão por meio de cabos Ethernet (esqueça a conexão sem fio por enquanto). Atualmente, porém, estou em um prédio de escritórios e tenho a conexão entrando em um modem, que vai para um roteador, que vai para um switch de rede, que então entra eth0
conforme especificado acima.
Tutoriais atuais:
Eu olhei alguns tutoriais (Tutorial do Ubuntué o melhor), e analisei algumas das perguntas sobre roteadores aqui (ou seja.Este), mas todos eles encobrem vários conceitos-chave, como:
- Qual é
eth1
a relação deeth0
? Devo/etc/network/interfaces
dizereth1
para usareth0
comonetwork
(geralmente é o endereço físico real do roteador)? - Tenho que fazer alguma coisa para instruir
eth1
a pegar a internet que entraeth0
e repassar para quem quiser no switch de rede?
Abordagem atual:
Aqui está meu /etc/network/interfaces
arquivo no servidor:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
E ifconfig
me diz que ambas as NICs estão funcionando bem:
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
E aqui está o que está route -n returns
no servidor:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Então no cliente eu tenho
auto lo
iface lo inet loopback
iface eth0 inet dhcp
Mas não está sendo atribuído um endereço IP.
EDITAR:Aqui está o arquivo de configuração isc-dhcp-server localizado no /etc/dhcp3/dhcpd.con
qual copiei principalmente deesse site.
# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
EDITAR:Saída desudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Pergunta:
Quais etapas/componentes cruciais estão faltando nesta configuração?
Responder1
Eu tenho que ir como Jack, o Estripador, devido a várias coisas que faltam em você:
Se o seu cliente usar o DHCP para obter os IPs, você precisará de um servidor DHCP.
iface eth0 inet dhcp
Nos clientes isso indica que eles obterão seus IP's de um servidor DHCP, se você não configurou um servidor DHCP, você deve usar IP's fixos ou instalar um servidor DHCP.
Faltam servidores DNS configurados nos clientes. Seja pela falta de um servidor DHCP, ou você pode querer usar um servidor DNS local para toda a sua rede.
Você não ofereceu as
iptables
regras (a saída desudo iptables -L
), mas posso adivinhar que você não ativou as regras do Masquerade, nem o encaminhamento de IPconforme descrito.O endereço IP de
eth1
não é recomendado. Qualquer IP terminado0
normalmente é a própria rede ea maioria dos roteadores/firewall fica confusa quando eles são usados. Mude para192.168.7.1
e você ficará bem.Seu
broadcast
valor naeth1
interface não está correto. Está enviando pacotes para lugar nenhum. O valor correto (levando em consideração outros valores da interface) é192.168.7.255
.Suas opções no servidor DHCP são cruéis. Os pacotes ARP para o seu roteador nunca chegarão. Isto é o que você deveria ter:
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.7.255; option routers 192.168.7.1; ## This should be the same value of the step 4 option domain-name-servers 8.8.8.8; subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.10 192.168.7.25; }
Siga estes e provavelmente você terá seu roteador funcionando.
Responder2
Braiam respondeu à minha pergunta, mas achei que seria útil colocar um passo a passo completo aqui. Por favor, atualize isso se eu tiver cometido algum erro.
Primeiro, certifique-se de ter duas placas Ethernet (NICs) e atualize o /etc/network/interfaces
arquivo como tal (façanãoconfunda isso com o /etc/networks
arquivo).
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.7.1
netmask 255.255.255.0
broadcast 192.168.7.255
network 192.168.1.0
Para encontrar seu gateway
, broadcast
e network
, sigaestas instruções.
Em seguida, entre no cliente e edite /etc/network/interface
(novamente,não /etc/networks
) para ip estático primeiro, para garantir que pelo menos a placa NIC esteja funcionando.
iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
Altere os valores para corresponder aos valores acima. Se funcionar, ótimo, então use as instruçõesaquimas siga-osexatamente, pois existem vários dhcp
arquivos, então não confunda a pasta /etc/dhcp
com /etc/dhcp3
e assim por diante.