私のマザーボードでeth1のMACアドレスとIPアドレスを設定するためにsystemdを使用しようとしています。
MACアドレス
MAC アドレスを設定するために、次のサービスが作成されます。
/lib/systemd/system/eth1mac.service
[Unit]
Description=Setting up MAC address
Before=network.target
[Service]
ExecStart=/bin/sh /etc/eth1mac
[Install]
WantedBy=multi-user.target
サービスはここでシェルスクリプトを指します。
/etc/eth1mac
#!/bin/sh
ifconfig eth1 down
ifconfig eth1 hw ether 00:11:22:33:44:55
ifconfig eth1 up
これはうまくいきます。
IPアドレス
IP アドレスを設定するために、次のサービスが作成されました。
/lib/systemd/system/eth1ip.service
[Unit]
Description=Setting up eth1 IP address
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/bin/sh /etc/eth1ip
[Install]
WantedBy=multi-user.target
サービスはここでシェルスクリプトを指します。
/etc/eth1ip
#!/bin/sh
ifconfig eth1 192.168.160.218
質問
サービスは実行中ですが、ボードを再起動するたびに呼び出されません。再起動時にサービスを再実行するには、いくつかの依存関係が必要ですか?
ベストアンサー1
ネットワーク構成が合格しました。.network
そして.link
systemd 使用時のファイルシステムネットワーク。これらのファイルのデフォルトの場所はです/etc/systemd/network
。
例:MACアドレス名を使用して74:d1:2c:2c:6e:d8
インターフェイス名を次に変更し、phy0
MACアドレスを11:22:33:44:55:66
次に変更します/etc/systemd/network/10-phy0.link
。
[Match]
# Match card's MAC address
PermanentMACAddress=74:d1:2c:2c:6e:d8
[Link]
Description=Ethernet Port 1
# Rename interface to phy0
Name=phy0
# Override MAC address (spoof MAC address)
MACAddress=11:22:33:44:55:66
IPアドレスの設定/etc/systemd/network/phy0.network
:
[Match]
# Match interface name
Name=phy0
[Network]
Description=Interface phy0 (network)
DHCP=no
# Static IPv4 or IPv6 address with CIDR
Address=192.168.1.123/24
Gateway=192.168.1.1
# DNS server address
DNS=192.168.1.1
Domains=mynetwork.lan