Noto que dependiendo de la marca de la tarjeta de red, los nombres de las interfaces difieren (supongo que depende del controlador).
- ¿Por qué * BSD usa nombres específicos del controlador para las interfaces de red?
- ¿Significa que no hay una capa de abstracción que describa "una interfaz de red genérica" en el núcleo, por lo que cada controlador se abordaría internamente a través de su propia API?
- (¿cómo) afecta a los subsistemas como la agregación de enlaces, la conformación del tráfico, QoS ( ALTQ ), el filtrado y otros?
Precisamente, parece que bajo pfSense, no puedo usar ALTQ con una interfaz virtual de agregación de enlaces (LAG).
¿Es esta una limitación interna de BSD debido a la falta de una capa de abstracción adecuada?
eth0
a travésethINFINITY
. Ya no podrá escribirifconfig eth0
y esperar que verá la primera interfaz Ethernet, lo que hace que dichos sistemas Linux sean funcionalmente similares desde el punto de vista de la interfaz de usuario a FreeBSD, donde necesita un conocimiento a priori de los nombres de interfaces en el sistema, oifconfig
primero necesita obtener una lista con un comando no calificado . Los mecanismos subyacentes del núcleo son, por supuesto, completamente diferentes.La elección de usar nombres genéricos o específicos del controlador no tiene nada que ver con ninguna limitación del controlador.
Es sobre todo una elección cosmética. El uso de nombres genéricos tiene la ventaja de ocultar información que casi siempre es irrelevante: una interfaz de red es una interfaz de red, sin importar quién la haya creado. Las capacidades de un dispositivo dependen del modelo exacto y de su configuración, no de qué controlador está en uso. La ventaja de los nombres específicos es para el administrador: si un mensaje de error menciona
eth0
(ok, cuál es 0 y cuál es 1), es menos informativo que si mencionawlan0
(ah, esa es la interfaz wifi) obcm0
(ah, eso es la interfaz Broadcom).En FreeBSD, las operaciones de configuración de red funcionan llamando
ioctl
a un socket Unix. Este ioctl es procesado por el código de red genérico y se filtra al controlador correspondiente si el ioctl lo requiere.No sé cómo ALTQ interactúa con la agregación de enlaces. Asegúrese de usar una versión reciente de FreeBSD, ya que esto no funcionaba, pero ahora sí .
fuente
Hace que sea más fácil saber con qué tarjeta de red está hablando.
Si tiene un Intel (igb0) y un Realtek (rl0) nic, ahora puede distinguirlos de inmediato.
Además, los diferentes controladores admiten diferentes características. Algunos controladores son compatibles
polling
y otros no. Algo de apoyoLRO
,TSO
yRSS
etc. Es más fácil realizar un seguimiento de los que el apoyo que, cuando no todos son simplemente nombradoseth
.eth
podría tener sentido si tuviera muchos otros tipos de interfaces de red, pero rara vez lo hace.fuente
Para simplificar las cosas. Si busca una interfaz llamada
bge0
y echa un vistazo a los manuales o utiliza su sistema de enlace mnemónico , recordará rápidamente que este controlador es un Broadcom Gigabit Etherhet . Este documento también es útil.La regla aquí es:
No se necesita capa de abstracción. Así de simple
Los nombres de interfaz no deben interferir en la configuración del tráfico.
Hoy debería funcionar:
No es que no haya una capa adecuada para manejar esto. Se debe a que podría usar otros recursos para manejar esos nombres, como crear nombres de interfaz (
/etc/rc.conf
) o cambiar su ID de pci en la configuración de la placa base. Y como han dicho otros sobre esta pregunta, incluso Linux va a tomar este caminobiosdevname
.fuente