настройка беспроводного маршрутизатора с помощью файлов systemd-networkd *.network

настройка беспроводного маршрутизатора с помощью файлов systemd-networkd *.network

Я хотел бы настроить встроенное устройство так, чтобы оно работало как беспроводной маршрутизатор, и сделать это желательно с помощью сетевых файлов конфигурации.

У меня есть два файла *.network, проводной интерфейс WAN и беспроводной интерфейс LAN, и я хотел бы, чтобы трафик LAN мог иметь доступ к WAN.

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

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

Как это обычно бывает с беспроводными маршрутизаторами, беспроводная локальная сеть также предоставляет DHCP. Я использовал интегрированный в systemd DHCP-сервер.

# 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]

Я предполагаю, что между двумя сетями должен быть NAT, как это принято в беспроводных маршрутизаторах, но это не является явным требованием.

Насколько я знаю на данный момент, проводной интерфейс подключается к WAN правильно, а беспроводная точка доступа также предоставляет DHCP-адреса. Но я не могу получить доступ к WAN (интернету), если я подключаюсь к точке доступа WiFi.

Вот состояние сетевого интерфейса:

# 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

И статус маршрута:

# 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

Мне не удалось найти много примеров для раздела [Маршрут], и у меня есть только базовые знания о маршрутизации.

С уважением, Изток Джерас

решение1

Я обнаружил, что в указанных выше файлах .network отсутствует маскарадинг. Следующие исправления:

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

Оказалось, что моя версия systemd была собрана без поддержки iptables. Повторная сборка с опцией 'libiptc'исправляет это. Мне нужно было добавить

IPForward=yes
IPMasquerade=yes

также в файл wireless.network.

решение2

Для RHEL 5 & 6рассмотрения 153.xxэто вашSystem IP

Временный маршрут добавлен

ip route add 192.168.10.0/24 via 153.254.92.42 dev eth0

Постоянный маршрут Добавить

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

ДляRHEL 7

Временный маршрут добавлен

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

Постоянный маршрут Добавить

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

решение3

Проблема была не в конфигурации маршрута, а в отсутствующей конфигурации iptables.

Связанный контент