*BSD가 네트워크 인터페이스에 드라이버별 이름을 사용하는 이유는 무엇입니까? 그것은 제한을 의미합니까?

*BSD가 네트워크 인터페이스에 드라이버별 이름을 사용하는 이유는 무엇입니까? 그것은 제한을 의미합니까?

네트워크 카드 브랜드에 따라 인터페이스 이름이 다르다는 것을 알았습니다(드라이버에 따라 다름).

  • *BSD가 네트워크 인터페이스에 드라이버별 이름을 사용하는 이유는 무엇입니까?
  • 커널에 "일반 네트워크 인터페이스"를 설명하는 추상화 계층이 없으므로 각 드라이버가 자체 API를 통해 내부적으로 처리된다는 의미입니까?
  • (어떻게) 링크 집계, 트래픽 조절, QoS와 같은 하위 시스템에 영향을 줍니까(알트큐), 필터링 및 기타?

정확히 말하면 pfSense에서는 LAG(링크 집계) 가상 인터페이스와 함께 ALTQ를 사용할 수 없는 것 같습니다.

적절한 추상화 계층이 없기 때문에 이것이 BSD 내부 제한 사항입니까?

답변1

*BSD가 네트워크 인터페이스에 드라이버별 이름을 사용하는 이유는 무엇입니까?

그것은 단지 역사적인 선택일 뿐이다. 이름의 문자는 카드와 통신하는 드라이버에서 나오므로 동일한 드라이버를 사용하는 경우 두 개의 별도 인터페이스에서 동일하게 됩니다.

한 가지 실질적인 이점이 있습니다. BSD에서는 네트워크 드라이버가 섹션 4에 자체 매뉴얼 페이지를 가지고 있다는 것입니다.dc(4)네트워크 어댑터를 제어하는 ​​DEC 21143 드라이버에 대해 알려줍니다 dc0.

하드 디스크와 같은 BSD Unix의 다른 부분에서도 이를 볼 수 있습니다.

적절한 추상화 계층이 없기 때문에 이것이 BSD 내부 제한 사항입니까?

아니요.

그만한 가치가 있는 만큼,리눅스도 비슷한 길을 가고 있다. 네트워킹이 더욱 복잡해짐에 따라 이더넷 어댑터에 대한 단순한 명명 규칙의 시대는 사라지고 있습니다.

답변2

일반 이름이나 드라이버별 이름을 사용하는 선택은 드라이버 제한 사항과 아무 관련이 없습니다.

대부분 화장품 선택입니다. 일반 이름을 사용하면 거의 항상 관련 없는 정보를 숨길 수 있다는 이점이 있습니다. 네트워크 인터페이스는 누가 만들었든 상관없이 네트워크 인터페이스입니다. 장치의 기능은 사용 중인 드라이버가 아니라 정확한 모델과 구성에 따라 달라집니다. 특정 이름의 장점은 관리자에게 있습니다. 오류 메시지에 (그래, 어느 것이 0이고 어느 것이 1인지) 언급되는 경우 (아, 그게 Wi-Fi 인터페이스입니다) 또는 (아, 그게 eth01입니다)라고 언급하는 것보다 정보가 적습니다. Broadcom 인터페이스).wlan0bcm0

FreeBSD에서 네트워크 설정 작업은 다음을 호출하여 수행됩니다.ioctl유닉스 소켓에서. 이 ioctl은 일반 네트워킹 코드에 의해 처리되며 ioctl이 이를 요구하는 경우 관련 드라이버로 흘러갑니다.

ALTQ가 링크 집계와 어떻게 상호 작용하는지 모르겠습니다. 최신 버전의 FreeBSD를 사용하십시오.예전에는 작동하지 않았지만 지금은 작동합니다.

답변3

이를 통해 어떤 네트워크 카드와 통신하고 있는지 쉽게 알 수 있습니다.

Intel(igb0) 및 Realtek(rl0) NIC가 있는 경우 이제 즉시 구분할 수 있습니다.

또한 다양한 드라이버가 다양한 기능을 지원합니다. 일부 드라이버는 지원 polling하고 일부는 지원하지 않습니다. 일부 지원 등 LRO. 모두 이름이 지정되지 않은 경우 어떤 지원을 추적하는 것이 더 쉽습니다 .TSORSSeth

eth다른 유형의 네트워킹 인터페이스가 많다면 의미가 있을 수 있지만 거의 그렇지 않습니다.

답변4

*BSD가 네트워크 인터페이스에 드라이버별 이름을 사용하는 이유는 무엇입니까?

일을 간단하게 만들기 위해. 이름이 붙은 인터페이스를 보면bge0설명서를 보거나니모닉 링크 시스템당신은 이 운전자가Broadcom 기가비트 이더넷.이것문서도 유용합니다.

커널에 "일반 네트워크 인터페이스"를 설명하는 추상화 계층이 없으므로 각 드라이버가 자체 API를 통해 내부적으로 처리된다는 의미입니까?

여기서의 규칙은 다음과 같습니다.

  • 드라이버 이름을 사용하여 장치 이름을 만듭니다.
  • 가장 낮은 PCI ID를 사용하여 장치 이름 바로 뒤에 번호를 만듭니다.

추상화 계층이 필요하지 않습니다. 간단해요.

(어떻게) 링크 집계, 트래픽 조절, QoS(ALTQ), 필터링 등과 같은 하위 시스템에 영향을 줍니까?

인터페이스 이름은 트래픽 조절을 방해해서는 안 됩니다.

정확히 말하면 pfSense에서는 LAG(링크 집계) 가상 인터페이스와 함께 ALTQ를 사용할 수 없는 것 같습니다.

오늘은 작동할 것입니다:

적절한 추상화 계층이 없기 때문에 이것이 BSD 내부 제한 사항입니까?

이를 처리할 적절한 레이어가 없다는 것은 아닙니다. 다른 리소스를 사용하여 다음과 같은 이름을 처리할 수 있기 때문입니다.인터페이스 이름 생성( /etc/rc.conf), 또는PCI ID 변경하기마더보드 설정에서 그리고 이 질문에 대해 다른 사람들이 말했듯이 Linux조차도 biosdevname.

관련 정보