Compartilhando a internet com apenas uma placa de rede e um hub/switch
Este é um pequeno tutorial que mostra como compartilhar uma conexão de internet para uma rede interna montada com um hub ou switch utilizando apenas uma placa de rede no servidor. Sei que não é o ideal, mas algumas vezes precisamos de uma "gambiarra" para quebrar um galho.
Parte 2: Conceito e execução
Antes de mais nada, certifique-se de que seu modem/roteador/bridge
e sua placa de rede estão devidamente conectados ao hub/switch,
assim como as estações que irão acessar a internet via servidor.
Bem, é algo realmente simples, nós faremos com que uma única placa de rede do sistema responda por dois endereços IP, um da WAN e outro da LAN, para isto só precisamos utilizar o ifconfig para criar uma interface virtual.
Presumindo que a eth0 já esteja configurada e acessando a net, rode:
# ifconfig eth0:0 192.168.0.1
Então use o comando ifconfig para verificar que há uma nova interface criada:
# ifconfig
# iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -j SNAT -- <seu IP externo>
OBS: Creio que também se possa usar mascaramento, mas aqui em casa não funciona por limitações do ajato, então sou obrigado a usar o POSTROUTING mesmo.
Bem, é algo realmente simples, nós faremos com que uma única placa de rede do sistema responda por dois endereços IP, um da WAN e outro da LAN, para isto só precisamos utilizar o ifconfig para criar uma interface virtual.
Presumindo que a eth0 já esteja configurada e acessando a net, rode:
# ifconfig eth0:0 192.168.0.1
Então use o comando ifconfig para verificar que há uma nova interface criada:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:21:63:38:C8
inet addr:<ip externo> Bcast:255.255.255.255 Mask:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7260287 errors:0 dropped:0 overruns:0 frame:0
TX packets:6837035 errors:0 dropped:0 overruns:0 carrier:0
collisions:8903 txqueuelen:1000
RX bytes:2843308860 (2711.5 Mb) TX bytes:3528797612 (3365.3 Mb)
Interrupt:5 Base address:0xd400
eth0:0 Link encap:Ethernet HWaddr 00:00:21:63:38:C8
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:670 errors:0 dropped:0 overruns:0 frame:0
TX packets:861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:50395 (49.2 Kb) TX bytes:1124792 (1.0 Mb)
Interrupt:5 Base address:0xd400
Então basta criar uma regra de iptables para compartilhar esta conexão com a rede:
# iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -j SNAT -- <seu IP externo>
OBS: Creio que também se possa usar mascaramento, mas aqui em casa não funciona por limitações do ajato, então sou obrigado a usar o POSTROUTING mesmo.
Ainda assim, é um ótima alternativa para uma solução temporária ou mesmo simples de compartilhamento!
Parabéns