systemd-networkd *.network ファイルを使用してワイヤレス ルーターを設定する

systemd-networkd *.network ファイルを使用してワイヤレス ルーターを設定する

組み込みデバイスをワイヤレス ルーターとして動作するように設定したいのですが、できれば networkd 設定ファイルを使用してこれを実現したいと考えています。

有線 WAN インターフェイスと無線 LAN インターフェイスの 2 つの *.network ファイルがあり、LAN トラフィックが WAN にアクセスできるようにしたいと考えています。

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

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

無線ルーターでは一般的ですが、無線 LAN ネットワークも 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]

ワイヤレス ルーターでは一般的ですが、2 つのネットワーク間に NAT が存在する必要があると思いますが、これは明示的な要件ではありません。

これが私の現在の知識の限界です。有線インターフェイスは WAN に適切に接続され、ワイヤレス アクセス ポイントも DHCP アドレスを提供します。ただし、WiFi AP に接続しても WAN (インターネット) にアクセスできません。

ネットワーク インターフェイスのステータスは次のとおりです。

# 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

[Route] セクションの例はあまり見つけられず、ルーティングについては基本的な知識しかありません。

敬具、イズトク・ジェラス

答え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 設定が欠落していました。

関連情報