
Gostaria de configurar um dispositivo incorporado para se comportar como um roteador sem fio e gostaria de fazer isso preferencialmente usando arquivos de configuração de rede.
Eu tenho dois arquivos *.network, uma interface WAN com fio e uma interface LAN sem fio, e gostaria que o tráfego da LAN pudesse acessar a WAN.
# cat /etc/systemd/network/wired.network
[Match]
Name=eth0
[Network]
DHCP=ipv4
IPForward=yes
IPMasquerade=yes
Como é comum em roteadores sem fio, a rede LAN sem fio também fornece DHCP. Usei o servidor DHCP integrado do systemd.
# cat /etc/systemd/network/wireless.network
[Match]
Name=wlan0*
[Network]
Description = Wireless IP interface
DHCPServer= yes
[Address]
Address = 192.168.128.1/24
Broadcast = 192.168.128.255
[DHCPServer]
PoolOffset = 10
PoolSize = 40
EmitDNS = yes
DNS = 8.8.8.8, 8.8.4.4
DefaultLeaseTimeSec = 600
MaxLeaseTimeSec = 7200
[Route]
Presumo que deva haver um NAT entre as duas redes, como é comum em roteadores sem fio, mas não é um requisito explícito.
Até onde cheguei com meu conhecimento atual, a interface com fio se conecta à WAN corretamente e o ponto de acesso sem fio também fornece endereços DHCP. Mas não consigo acessar a WAN (internet) se me conectar ao AP WiFi.
Aqui estão alguns status da interface de rede:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:26:32:f0:03:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.178.107/24 brd 192.168.178.255 scope global dynamic eth0
valid_lft 4650sec preferred_lft 4650sec
inet6 fe80::226:32ff:fef0:321/64 scope link
valid_lft forever preferred_lft forever
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default
link/sit 0.0.0.0 brd 0.0.0.0
4: wlan0wext: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:1d:43:40:0d:04 brd ff:ff:ff:ff:ff:ff
inet 192.168.128.1/24 brd 192.168.128.255 scope global wlan0wext
valid_lft forever preferred_lft forever
inet6 fe80::21d:43ff:fe40:d04/64 scope link
valid_lft forever preferred_lft forever
E status da rota:
# ip route
default via 192.168.178.1 dev eth0 proto dhcp src 192.168.178.107 metric 1024
192.168.128.0/24 dev wlan0wext proto kernel scope link src 192.168.128.1
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.107
192.168.178.1 dev eth0 proto dhcp scope link src 192.168.178.107 metric 1024
# ip route show table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.128.0 dev wlan0wext proto kernel scope link src 192.168.128.1
local 192.168.128.1 dev wlan0wext proto kernel scope host src 192.168.128.1
broadcast 192.168.128.255 dev wlan0wext proto kernel scope link src 192.168.128.1
broadcast 192.168.178.0 dev eth0 proto kernel scope link src 192.168.178.107
local 192.168.178.107 dev eth0 proto kernel scope host src 192.168.178.107
broadcast 192.168.178.255 dev eth0 proto kernel scope link src 192.168.178.107
Não consegui encontrar muitos exemplos para a seção [Rota] e só tenho o conhecimento básico de roteamento.
Atenciosamente, Iztok Jeras
Responder1
Descobri nos arquivos .network acima que faltava o mascaramento. O seguinte corrige isso:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Parece que minha versão do systemd foi construída sem suporte ao iptables. Construí-lo novamente com a opção 'libiptc'
corrige isso. eu precisava adicionar
IPForward=yes
IPMasquerade=yes
para o arquivo wireless.network também.
Responder2
Pois RHEL 5 & 6
considerar 153.xx
é o seuSystem IP
Adicionar rota temporária
ip route add 192.168.10.0/24 via 153.254.92.42 dev eth0
Rota permanente Adicionar
echo "192.168.10.0/24 via 153.254.92.XX" >> /etc/sysconfig/network-scripts/route-eth1
ParaRHEL 7
Adicionar rota temporária
ip route add 192.168.20.0/29 via 153.254.92.XX dev enp00s0f0
Rota permanente Adicionar
echo "192.168.10.0/24 via 153.254.92.XX" >> /etc/sysconfig/network-scripts/ifcfg-enp00s0f0
Responder3
O problema não estava na configuração da rota, mas sim na configuração do iptables.