systemd의 인터페이스에 여러 IP 주소를 설정하는 방법은 무엇입니까?

systemd의 인터페이스에 여러 IP 주소를 설정하는 방법은 무엇입니까?

그래서 /etc/systemd/network에 lan.network 파일이 있습니다:

[Match]
Name=eth0

[Network]
DHCP=no

[Address]
Address=192.168.59.1/24

때로는 다른 장치를 동일한 인터페이스로 가져오지만 별도의 서브넷(192.168.1.x)에 있습니다. 장치에 액세스하기 위해 선택적으로 인터페이스에서 두 개의 IP 주소를 실행하고 싶습니다. systemd에서 이를 수행하는 가장 좋은 방법은 무엇입니까?

/etc/network/interfaces이전 버전의 데비안(Wheezy)에서 다음을 편집 하고 얻었습니다:

auto eth0
iface eth0 inet static
address 192.168.59.1

iface eth0:1 inet static
address 192.168.1.5

따라서 기본적으로 eth0 인터페이스가 활성화되고 192.168.1.x에 액세스해야 할 때 다음을 실행합니다.

ifup eth0:1.

답변1

내가 이해한 바에 따르면 이 작업을 영구적으로 수행하려면 모든 주소를 함께 쌓으면 됩니다. 즉:

Address=192.168.59.1/24 192.168.1.5/24

답변2

Arch Linux, SystemD 249.2-1을 사용하면 다음 세 가지 방법 중 어느 것도 작동하지 않습니다(이 답변도 시도했습니다.)

-------------------------
[Network]
Address=10.2.3.4/16
Address=10.6.7.8/16
-------------------------
[Network]
Address=192.168.59.1/24 192.168.1.5/24
-------------------------
[Address]
Address=10.2.3.4/16

[Address]
Address=10.6.7.8/16
-------------------------

대신 간단한 SystemD 서비스를 사용하여 부팅 후 두 번째 IP를 설정할 수 있습니다.이 답변systemd 서비스 생성에 대한 자세한 내용... 보너스 포인트: 이 방법을 사용하면 정적 또는 DHCP를 기본 주소로 사용할 수 있습니다.

  • /usr/local/bin/second_ip를 터치하세요.
  • chmod +x /usr/local/bin/second_ip
  • 파일을 다음과 같이 편집하세요
#!/bin/bash
ip address add 10.10.128.128/16 dev eth0
  • /etc/systemd/system/second-ip.service를 터치합니다.

  • 파일을 다음과 같이 편집하세요

  • systemctl은 두 번째 IP를 활성화합니다.

     [Unit]
     Description=second ip service
     After=network.target
    
     [Service]
     User=root
     ExecStart=/usr/local/bin/second_ip                                                                                      Type=simple
    
     [Install]
     WantedBy=multi-user.target
    

관련 정보