Resumo:
Pi precisa do Fedora para encaminhar o tráfego para a Internet.
Pi
1 placa de rede (da qual gostamos):
usb0 - conectado ao Fedora.
Fedora:
conectado à Internet.
2 placas de rede (com as quais nos preocupamos):
wlp4s0 - internet wifi
enp0s20f0u6i1 - conectado ao pi.
Para tornar a vida mais simples, eu recomendo interromper o Predictable Network Interface Namesy. Queremos usar nomes legais e não queremos que eles mudem em nós.
Etapa 1: Pare os Nomes de Interface de Rede Predizíveis do systemd adicionando "net.ifnames = 0" à linha de comando do kernel.
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"
Agora atualize o grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
nota:
Eu vi onde o valor "biosdevname = 0" foi adicionado à linha de comando do kernal, além de net.ifnames = 0. Minha configuração não exigiu isso.
Etapa 2:
Atribua um novo nome usando as regras do udev criando um novo arquivo de regras
sudo vi /etc/udev/rules.d/10-myCustom-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:f3:79:59", KERNEL=="eth*", NAME="test0"
DEVE alterar a linha ATTR{address}=="08:00:27:f3:79:59"
para seu endereço MAC
Altere NAME="test0"
para o nome que você deseja fornecer ao nic.
nota:
Removido ATTR{dev_id}=="0x0" and ATTR{type}=="1"
do meu modelo do Ubuntu 14.
Alguns dizem para remover KERNEL=="eth*"
ou a linha inteira é ignorada. Este não foi o caso na minha configuração.
Se você 'perder' o endereço MAC como eu fiz porque reiniciei antes desta etapa, não mostro com ifconfig, vá encontrá-lo em /sys/class/net/assignedName/address
.
BTW: esse sistema renomeou como eth0
, cat /sys/class/net/eth0/address
Etapa 3:
Atribuir o novo nome da interface a um endereço
sudo vi /etc/network/interfaces
auto test0
iface test0 inet static
address 192.168.2.202 -- use your address
netmask 255.255.255.0 -- use your address
and what other entries your system requires.
Etapa 4:
reinicialize (é mais fácil para a maioria de nós)
Agora, isso nos dá um nome estático para o nosso nic.
Você só adicionará regras de iptable ao Fedora para que isso não seja necessário no Pi.
Suposições:
Tanto o Fedora quanto o Pi possuem tabelas de roteamento padrão e nenhuma regra de iptable.
nota:
Queremos manter nosso endereço IP privado privado e não público.
RFC1918 name IP address range largest CIDR block (subnet mask)
24-bit block 10.0.0.0 – 10.255.255.255 10.0.0.0/8 (255.0.0.0)
20-bit block 172.16.0.0 – 172.31.255.255 172.16.0.0/12 (255.240.0.0)
16-bit block 192.168.0.0 – 192.168.255.255 192.168.0.0/16 (255.255.0.0)
Pi:
Atribua o endereço IP a usb0
sudo vi /etc/network/interfaces
auto usb0
iface usb0 inet static
address 172.16.0.1
netmask 255.240.0.0
add any other values needed.
Fedora:
Ativar o encaminhamento de ipv4
sudo vi /etc/sysctl.conf
net.ipv4.ip_forward=1
Atribuir o endereço IP para test0 (lembre-se que nós mudamos o nome do nic acima)
sudo vi /etc/network/interfaces
# This connects to the Pi
auto test0
iface test0 inet static
address 172.16.0.2
netmask 255.240.0.0
add any other values needed.
# This is the internet connection
auto wlp4s0
iface wlp4s0 inet static
address 192.168.2.106
netmask 255.255.255.255
add any other values needed like
gateway a.b.c.d
dns-nameservers 8.8.8.8 8.8.4.4
Se o endereço wlp4s0 atribuído pelo DHCP ficaria mais parecido com isto
Esta é a conexão com a internet
auto wlp4s0
iface wlp4s0 inet dhcp
Defina as regras de iptable para encaminhar os pacotes do test0 para o wlp4s0 E envolva os pacotes com um invólucro endereçado da sub-rede local .... Inserindo regras na linha de comando.
# this rule will forward all traffic from nic test0 to nic wlp4s0
sudo iptables -A FORWARD -i test0 -o wlp4s0 -j ACCEPT
# this rule will continue to forward any existing connections from test0 to wlp4so
sudo iptables -A FORWARD -i test0 -o wlp4s0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# this rule will wrap the packet with a local address so they do not get lost in transit.
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
nota:
Nenhuma regra de firewall está ativada. Este é um mínimo para que funcione. Adicione outras regras para proteger seu sistema.
Torne as regras de iptable persistentes nas reinicializações.
No Ubuntu16, o nome do pacote é iptables-persistent
. O Fedora pode ser diferente.
sudo apt-get install iptables-persistent
Salvar as regras atuais de iptable
iptables-save > /etc/iptables/rules.v4
Reinicie o fedora.
Verifique:
endereços IP.
regras de iptable