configure o roteador sem fio usando os arquivos systemd-networkd * .network

3

Eu gostaria de configurar um dispositivo incorporado para me comportar como um roteador sem fio, e gostaria de alcançá-lo preferencialmente usando arquivos de configuração do networkd.

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 para roteadores sem fio, a rede LAN sem fio também oferece DHCP. Eu usei o servidor DHCP integrado 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]

Suponho que deve haver um NAT entre as duas redes, como é comum para roteadores sem fio, mas não é um requisito explícito.

Isto é, tanto quanto eu tenho com o meu conhecimento atual, a interface com fio se conecta a WAN corretamente, e o ponto de acesso sem fio também fornece endereços DHCP. Mas eu não consigo acessar WAN (internet) se eu me conectar ao WiFi.

Aqui está um 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 o 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 [Route], e só tenho o conhecimento básico de roteamento.

Atenciosamente, Iztok Jeras

    
por user2963756 23.06.2016 / 13:05

3 respostas

0

Por RHEL 5 & 6 considerando que 153.xx é seu System 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

Para RHEL 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
    
por 23.06.2016 / 13:21
0

Encontrei com os arquivos de rede acima que o mascaramento estava faltando. As seguintes correções que:

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.

    
por 03.11.2018 / 22:49
-2

O problema não estava na configuração da rota, mas a configuração do iptables estava faltando.

    
por 23.06.2016 / 16:51