저는 Orange pi의 단일 보드 컴퓨터 두 대를 가지고 있는데, 각각 두 대의 온보드 네트워크 어댑터가 있습니다. 그 중 하나는 일반적으로 eth0이라고 하며 다른 하나는 보드마다 다릅니다. enxc0742bffdf83 및 enxc0742bffdf6e와 같은 다른 이름이 있습니다. 저는 Armbian 이미지를 사용하여 보드에 전원을 공급했습니다. DCHP에서 자동으로 IP 주소를 얻지 않도록 두 네트워크 어댑터를 하나에 구성했습니다. 나는 아래와 같이 /etc/network/interfaces 파일을 수정하여 이 작업을 수행했습니다.
auto eth0
iface eth0 inet manual
auto enxc0742bffdf6e
iface enxc0742bffdf6e inet manual
수동으로 구성된 이미지를 다른 SD 카드에 복사하고 /etc/network/interfaces를 수동으로 다시 변경할 필요 없이 직접 실행할 수 있기를 바랍니다. 어댑터 1 및 어댑터 2와 같이 모든 마더보드에 적용되는 공통 별칭을 사용하는 옵션이 있습니까? 그렇지 않은 경우 시스템 시작 시 각 보드 어댑터의 올바른 이름으로 /etc/network/interfaces 파일을 자동으로 업데이트하는 일반 스크립트를 만드는 방법이 있습니까?
답변1
로 시작하는 네트워크 인터페이스 이름에는 enx...
연결된 NIC의 MAC 주소가 포함됩니다. 파일로 인해 할당되었을 수 있습니다 /etc/systemd/network/81-usbnet.link
.
자세한 내용을 보시고 배워보시기 man systemd.net-naming-scheme
바랍니다 .man systemd.link
/etc/systemd/network/*.link
두 번째 NIC의 속성에 따라 보드의 두 번째 NIC와 일치하는 일반 파일을 작성하고 필요한 이름을 할당하지 못할 수도 있습니다 . 그렇게 할 수 있다면 다음과 같은 파일을 만들고 기본 ASCII 영숫자 정렬 순서에서 먼저 나오 *.link
도록 이름을 지정하십시오 .81-usbnet.link
[Match]
<some condition that matches your second NIC>
[Link]
NamePolicy=
Name=<your desired name for the second NIC>
*.link
시스템이 initramfs를 사용하는 경우 파일이 initramfs에 포함되고 시스템이 initramfs에서 실행 중인 동안 NIC 드라이버가 로드된 경우에도 적용되도록 이를 다시 생성해야 할 수 있습니다 .
또는 커널 할당 이름(예: )이 eth0
시스템에서 안정적이라고 확신하는 경우 커널 부팅 매개변수를 추가하면 두 개의 네트워크 인터페이스(예: 및 ) net.ifnames=0
를 얻을 수 있습니다 . 네트워크 인터페이스 드라이버 모듈이 항상 동일한 순서로 로드되는지 확인하세요. 파일 에 다음과 같은 내용을 추가할 수 있습니다 .eth0
eth1
/etc/modprobe.d/*.conf
install <second_NIC_driver> /sbin/modprobe <first_NIC_driver> && /sbin/modprobe -i <second_NIC_driver>
이렇게 하면 커널이 어떤 이유로 두 번째 네트워크 카드의 드라이버를 먼저 로드하더라도 모듈 로드 프로세스는 항상 첫 번째 네트워크 카드의 드라이버를 먼저 로드하므로 첫 번째 네트워크 카드가 항상 이름을 캡처합니다 eth0
.
답변2
systemd-networkd
/etc/network/interfaces 대신 이 서비스(시스템과 함께 제공됨)를 사용해 보십시오.
서비스를 활성화하고 /etc/systemd/network/*.network
파일을 통해 네트워크를 구성하면(참고자료 참조 man systemd.network
) 다양한 기준(예: 인터페이스 이름 와일드카드 또는 드라이버 이름)에 따라 인터페이스와 일치하도록 구성할 수 있습니다.
[Match]
Name=enx*
[Network]
...
[Match]
Driver=r8188eu
[Network]
Address=...
(파일 목록은 *.network
ASCII 알파벳 순서로 읽혀지며 각 인터페이스는첫 번째.networkctl status