Systemd - MAC 주소 및 IP 주소 설정

Systemd - MAC 주소 및 IP 주소 설정

내 마더보드에서 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그리고.linksystemd를 사용할 때의 파일시스템 네트워크. 이러한 파일의 기본 위치는 입니다 /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

답변2

이를 위해 systemd를 사용해야합니까? 유지 관리가 어렵고 빠르게 지저분해질 수 있으므로 사용자 정의 셸 스크립트를 사용하여 자신만의 시스템 서비스를 만드는 것을 권장하지 않습니다.

인터페이스에서 고정 IP 주소와 MAC 주소를 설정하는 보다 일반적인 방법은 구성 파일에서 설정하는 것입니다 /etc/network/interfaces(Debian 기반 Linux 시스템 가정).

예를 들어 다음을 구성에 추가합니다.

auto eth1
iface eth1 inet manual
    address 192.168.160.218
    netmask 255.255.255.0
    hwaddress ether 00:11:22:33:44:55

다음을 사용하여 네트워크 인터페이스를 구성하는 방법도 있습니다.시스템 네트워크데몬은 systemd의 일부입니다. .network구성하려는 인터페이스에 적합한 파일을 편집해야 합니다 . 그러면 Systemd-networkd는 시작 중에 이 인터페이스를 구성해야 합니다.

관련 정보