configurar el enrutador inalámbrico usando archivos systemd-networkd *.network

configurar el enrutador inalámbrico usando archivos systemd-networkd *.network

Me gustaría configurar un dispositivo integrado para que se comporte como un enrutador inalámbrico, y me gustaría lograrlo preferiblemente utilizando archivos de configuración en red.

Tengo dos archivos *.network, una interfaz WAN cableada y una interfaz LAN inalámbrica, y me gustaría que el tráfico LAN pueda acceder a la WAN.

# cat /etc/systemd/network/wired.network 
[Match]
Name=eth0

[Network]
DHCP=ipv4
IPForward=yes
IPMasquerade=yes

Como es común en los enrutadores inalámbricos, la red LAN inalámbrica también proporciona DHCP. Utilicé el 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]

Supongo que debería haber una NAT entre las dos redes, como es común en los enrutadores inalámbricos, pero no es un requisito explícito.

Hasta aquí he llegado con mis conocimientos actuales: la interfaz cableada se conecta correctamente a la WAN y el punto de acceso inalámbrico también proporciona direcciones DHCP. Pero no puedo acceder a WAN (Internet) si me conecto al AP WiFi.

A continuación se muestra el estado de la interfaz de red:

# 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

Y estado de la ruta:

# 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

No pude encontrar muchos ejemplos para la sección [Ruta] y solo tengo conocimientos básicos de enrutamiento.

Saludos, Iztok Jeras

Respuesta1

En los archivos .network anteriores encontré que faltaba el enmascaramiento. Lo siguiente soluciona eso:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Parecía que mi versión de systemd se creó sin soporte para iptables. Construirlo nuevamente con la opción 'libiptc'soluciona eso. necesitaba agregar

IPForward=yes
IPMasquerade=yes

al archivo wireless.network también.

Respuesta2

Para RHEL 5 & 6considerar 153.xxes tuSystem IP

Agregar ruta temporal

ip route add 192.168.10.0/24 via 153.254.92.42 dev eth0

Ruta permanente Añadir

echo "192.168.10.0/24 via 153.254.92.XX" >> /etc/sysconfig/network-scripts/route-eth1

ParaRHEL 7

Agregar ruta temporal

ip route add 192.168.20.0/29 via 153.254.92.XX dev enp00s0f0

Ruta permanente Añadir

echo "192.168.10.0/24 via 153.254.92.XX" >> /etc/sysconfig/network-scripts/ifcfg-enp00s0f0

Respuesta3

El problema no estaba en la configuración de la ruta, sino que faltaba la configuración de iptables.

información relacionada