configuracióndered
El objeto configuración de red permite configurar las interfaces de red en el reproductor. Cada instancia del objeto corresponde a una sola interfaz de red (Ethernet, WiFi o módem), que se especifica mediante el atributo tipo.
Este objeto solo le permite configurar/recuperar ajustes relacionados con las interfaces de red del dispositivo. Para otra información de red, utilice el módulo OS de Node.js®.
IDL de networkconfiguration
[
Constructor(String ifName)
] interface NetworkInterface {
readonly attribute String type; // values: wifi, ethernet, modem
NetworkInterfaceConfig defaultConfig();
Promise<NetworkInterfaceConfig> getConfig(NetworkInterfaceConfigRequestParams params[optional]); // Promise will be resolved as WifiInterfaceConfig, ModemInterfaceConfig, EthernetInterfaceConfig
Promise<void> applyConfig(NetworkInterfaceConfig config);
[type == "ethernet"] Promise<LLDPNeighborInformation> getNeighborInformation();
[type == "ethernet"] Promise<void> enableLeds();
[type == "wifi"] Promise<WifiAccessPointList> scan();
[type == "wifi"] Promise<void> reassociate();
interface WifiAccessPointList {
attribute String essId;
attribute String bssId;
attribute long signal;
};
interface LLDPNeighborInformation {
// information is directly converted from LLDP. Fields are defined deep down there.
};
interface NetworkInterfaceConfigRequestParams {
attribute bool includeEncryptedSecrets;
};
interface NetworkInterfaceConfig {
attribute bool enable;
attribute long metric;
[optional = CONFIG_DHCP_SERVER] attribute DHCPServerConfig dhcpServerConfig;
attribute Array<String> dnsServerList;
attribute Array<IPAddress> ipAddressList;
attribute long inboundShaperRate;
attribute long mtu;
[optional = CONFIG_VLAN] attribute Array<int> vlanIdList;
attribute String clientIdentifier;
attribute String domain;
attribute Array<String> enabledProtocolList;
};
[optional = CONFIG_DIALUP] interface DialUpInterfaceConfig : public NetworkInterfaceConfig {
attribute String user;
attribute String password;
attribute String number;
attribute String initString;
};
interface DHCPServerConfig {
attribute String start;
attribute String end;
[optional] attribute String gateway;
[optional] attribute Array<String> dnsServerList;
[optional] attribute String domain;
};
interface IPAddress {
attribute String family;
attribute String address;
attribute String netmask;
attribute String gateway;
attribute String broadcast;
};
interface EthernetInterfaceConfig : public NetworkInterfaceConfig {
attribute String securityMode;
attribute String identity;
attribute String eapTlsOptions;
attribute String caCertificates;
attribute String clientCertificate;
attribute String privateKey;
};
interface WifiInterfaceConfig : public NetworkInterfaceConfig{
attribute String essId;
attribute String passphrase;
[optional = CONFIG_SECURE_STORE] attribute String obfuscatedPassphrase;
attribute String securityMode;
attribute String identity;
attribute String eapTlsOptions;
attribute String caCertificates;
attribute String clientCertificate;
attribute String privateKey;
attribute String frequencies;
[optional = CONFIG_WIFI_AP] attribute bool accessPointMode;
[optional = CONFIG_WIFI_AP] attribute long accessPointFrequency;
[optional = CONFIG_WIFI_AP] attribute bool accessPointHidden;
};Creación de objetos
Para crear un objeto networkconfiguration, primero cargue el módulo brightsign/networkconfiguration utilizando el método require(). Luego cree una instancia de la clase networkconfiguration utilizando un valor de cadena que indique la interfaz de red asociada con la instancia.
var NetworkConfigClass = require("@brightsign/networkconfiguration");
var networkConfigEth = new NetworkConfigClass("eth0"); El parámetro ifName puede ser cualquiera de los siguientes:
- 0 o "eth0": El puerto Ethernet en el reproductor BrightSign
- "eth1": El puerto Ethernet de “control” en los reproductores que tienen uno. Este puerto es solo para control de pantalla (DNS relay no es compatible). Tenga en cuenta que el puerto no está habilitado de forma predeterminada y debe habilitarse explícitamente (lo cual puede hacerse desde el shell prompt de BrightSign, JavaScript o BrightScript).
- 1 o "wlan0": El WiFi interno
- 2 o "ppp0": Un módem conectado
- "usb0", "usb1", etc.: Interfaces Ethernet USB
NetworkInterface
Utilice esta interfaz para configurar una interfaz de red en el reproductor.
- tipo String: El tipo de interfaz de red, que es de solo lectura. Puede ser uno de los siguientes:
- "ethernet": Un puerto Ethernet en el reproductor BrightSign.
- "wifi": El WiFi interno
- "módem": Un módem conectado
El puerto Ethernet de “control” en los reproductores que tienen uno, como el XD6 y el HD6, no está habilitado de forma predeterminada. Debe habilitarse explícitamente, lo cual puede hacerse desde el shell prompt de BrightSign, JavaScript o BrightScript.
La interfaz de red puede configurarse como una VLAN utilizando el siguiente formato de cadena: "[parent_interface].[vlan_id]" (por ejemplo "eth0.42"). Una vez que las interfaces VLAN estén configuradas, deben habilitarse en la interfaz de red principal (por ejemplo, "eth0") incluyéndolas en la vlanIdList de la interfaz principal. Las interfaces VLAN utilizan DHCP de forma predeterminada. Solo son compatibles con los reproductores Series 4 (XTx44, XDx34, HDx24, LS424) y Series 3 (XTx43, XDx33, HDx23, LS423, HO523). Consulte también Métricas de enrutamiento predeterminadas.
getConfig()
Promise<NetworkInterfaceConfig> getConfig(NetworkInterfaceConfigRequestParams params[optional])Devuelve los ajustes de configuración de la interfaz de red. Dependiendo del parámetro tipo especificado, este método devolverá una interfaz Configuración de interfaz Ethernet, Configuración de interfaz Wi‑Fi, o Configuración de la interfaz del módem . Si hay una contraseña establecida, getConfig() devolverá true para el parámetro contraseña . Si no hay una contraseña establecida, getConfig() devolverá false para el parámetro contraseña .
Tenga en cuenta que esta clase se ocupa de la configuración de red persistente del reproductor. Si desea determinar los ajustes actuales (por ejemplo, la dirección IP que se ha recuperado mediante DHCP), utilice el módulo OS de Node.js®.
applyConfig()
Promise<void> applyConfig(NetworkInterfaceConfig config)Configura la interfaz de red utilizando los parámetros del objeto NetworkInterfaceConfig pasado. Este método devuelve void en caso de éxito.
Para restablecer un ajuste de la interfaz de red a su valor predeterminado, pase el objeto NetworkInterfaceConfig sin el atributo correspondiente.
El parámetro configuración debe contener la configuración completa deseada. Cualquier configuración anterior se sobrescribe. Si desea cambiar un elemento mientras mantiene el resto de la configuración igual, primero llame a getConfig y modifique el objeto devuelto (consulte el ejemplo en la sección Examples).
getNeighborInformation()
Promise<LLDPNeighborInformation> getNeighborInformation()Devuelve información LLDP relacionada con la red, o null. Este método solo está disponible con la interfaz ethernet.
enableLeds()
Promise<void> enableLeds()Habilita o deshabilita los LED de actividad ethernet (es decir, el parpadeo durante el enlace y la actividad). Los LED ethernet están habilitados de forma predeterminada. Los cambios en este ajuste no persisten después de reinicios. Este método solo está disponible con la interfaz ethernet.
scan()
Promise<WifiAccessPointList> scan()Busca puntos de acceso WiFi y devuelve una lista de los puntos de acceso detectados. Este método solo está disponible con la interfaz WiFi.
reassociate()
Promise<void> reassociate()Intenta desconectarse y volver a conectarse de forma asíncrona a la red WiFi configurada actualmente. Normalmente esto no debería ser necesario, pero podría ser útil al diagnosticar problemas de red. Si tiene éxito, la promesa devuelta se resolverá. Si no tiene éxito, la promesa devuelta será rechazada con información del error.
Este método está presente en BOS 8.4.20 y posteriores, BOS 8.5.26 y posteriores, y en todas las versiones de BOS 9.0.
Tenga en cuenta que la promesa puede resolverse antes de que la red se haya vuelto a conectar. Utilice @brightsign/networkhotplug para determinar cuándo se completa la reconexión.
WifiAccessPointList
Esta interfaz representa los resultados de una búsqueda de redes inalámbricas. Cada entrada de la lista contiene los siguientes parámetros:
- essID String: nombre de red WiFi ESSId
- bssID String: BSSId del punto de acceso
- señal long: La intensidad de la señal recibida. El valor absoluto de este atributo normalmente no es relevante, pero puede compararse con el valor informado en otras redes o en diferentes ubicaciones.
LLDPNeighborInformation
Esta interfaz contiene información de ubicación recibida de la infraestructura de red mediante el protocolo LLDP-MED.
NetworkInterfaceConfigRequestParams
- includeEncryptedSecrets bool: Si se establece en verdadero, se incluyen secretos cifrados; si se establece en falso no se incluyen.
NetworkInterfaceConfig
Esta interfaz contiene configuraciones relacionadas con una interfaz de red.
- métrica long: La métrica de enrutamiento para la puerta de enlace predeterminada en la interfaz. Las rutas con métricas más bajas se prefieren sobre las rutas con métricas más altas. Si no se especifica, la métrica se establecerá para garantizar que las interfaces se prefieran de manera coherente para una configuración dada.
- dhcpServerConfig DHCPServerConfig: Una interfaz DHCPServerConfig que especifica la configuración del servidor DHCP para la interfaz. El servidor DHCP puede deshabilitarse estableciendo este atributo en un valor nulo al llamar a applyConfig().
- dnsServerList Array<String>: Una lista de cadenas que contiene un máximo de tres servidores DNS. Cada cadena debe contener la dirección IP dotted-quad de un servidor DNS.
- ipAddressList Array<IPAddress>: Una matriz que contiene cero o una configuración de dirección IPv4 estática. Los reproductores actualmente no admiten más de una dirección IPv4 por interfaz ni la configuración estática de direcciones IPv6. Si la matriz está vacía, las direcciones IP se asignarán mediante DHCP.
- inboundShaperRate long: El límite de ancho de banda para el tráfico entrante en bits por segundo. Si no está definido, no hay límite de ancho de banda.
- mtu long: La unidad máxima de transmisión (MTU) para la interfaz de red en bytes. Si no se especifica, se elegirá automáticamente un valor mtu apropiado.
- vlanIdList Array<unsigned short>: Una lista de ID de VLAN para las cuales esta interfaz de red es la principal.
- identificador del cliente String: El identificador del cliente DHCP para la interfaz de red
- dominio String: El nombre de dominio para la interfaz de red
- enabledProtocolList Array<String>: Una matriz opcional que contiene el conjunto de protocolos IP habilitados. El valor predeterminado es [IPv4, IPv6].
DialUpInterfaceConfig
Esta interfaz contiene atributos relacionados con la interfaz del módem:
- usuario String: El nombre de usuario que se ha introducido: algunos operadores requerirán el nombre de usuario, otros no.
- contraseña String: La contraseña que se ha introducido: algunos operadores requerirán la contraseña, otros no.
- número String: El comando de "iniciar conexión", que anteriormente marcaba un número. Ahora, number es casi siempre "*99#".
- initString String: La cadena de configuración general del módem, que varía entre operadores.
DHCPServerConfig
Esta interfaz configura un servidor DHCP en el puerto Ethernet o en el punto de acceso inalámbrico. Si configura DHCP para WiFi, tenga en cuenta que la interfaz WiFi debe estar en modo de punto de acceso.
Debe asignarse una dirección IP estática a la interfaz wlan0 para que el servidor DHCP funcione correctamente. Para aplicar una Dirección IP, consulte ConfiguraciónDeInterfazDeRed, y use la configuración ipAddressList.
- comenzar String: El inicio del rango de direcciones IP ofrecidas
- fin String: El final del rango de direcciones IP ofrecidas
- puerta de enlace String optional: Dirección IPv4 de la puerta de enlace que utilizarán los clientes.
- dnsServerList Array<String> optional: Una matriz de cadenas que contiene las direcciones IPv4 de los servidores de nombres (las direcciones IPv6 no son compatibles actualmente)
- dominio String optional: El sufijo de dominio que utilizarán los clientes
IPAddress
Esta interfaz representa una configuración de dirección IP.
- familia String: La configuración IP (debe establecerse en IPv4).
- dirección String: La dirección IP4. Esta es una cadena decimal punteada de cuatro grupos; por ejemplo, "192.168.1.42".
- máscara de red String: La máscara de red IP4. Esta es una cadena decimal punteada de cuatro grupos; por ejemplo, "255.255.255.0".
- puerta de enlace String: La configuración de la interfaz IP4. Esta es una cadena decimal punteada de cuatro grupos; por ejemplo, "192.168.1.2".
- transmisión String: La dirección de difusión IP4. Esta es una cadena decimal punteada de cuatro grupos; por ejemplo, "192.168.1.255".
EthernetInterfaceConfig
- modo de seguridad String: Establece el método de cifrado.
- identidad String: La identidad RADIUS (Remote Authentication Dial-In User Service). Si este valor está en blanco, se tomará del certificado de cliente especificado (se utilizará "subjectAltName" si está presente; de lo contrario, se utilizará "commonName").
- eapTlsOptions String: Una cadena que contiene opciones específicas de EAP
- caCertificates String: El contenido de un archivo de certificado CA en formato de texto (es decir, un archivo "pem")
- clientCertificate String: El contenido de un archivo de certificado de cliente en formato de texto (es decir, un archivo "pem")
- privateKey String: La clave privada para autenticación
WiFiInterfaceConfig
Esta interfaz contiene atributos relacionados con la interfaz WiFi:
- essId String: El ESSID de la red inalámbrica
- frase de contraseña String: La frase de contraseña/clave en texto sin formato para la red inalámbrica
- obfuscatedPassphrase String optional: La frase de contraseña/clave para la red inalámbrica que ha sido ofuscada mediante un secreto compartido. Contacte con [email protected] para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
Los siguientes atributos se relacionan con la compatibilidad con WPA Enterprise:
- modo de seguridad String: Establece el método de cifrado WiFi. De forma predeterminada, se permiten tanto el cifrado WPA (TKIP) como WPA2 (CCMP). Este método acepta una lista separada por espacios y sin distinción entre mayúsculas y minúsculas que puede incluir valores "tkip" o "ccmp". Pasar una cadena vacía establece el modo predeterminado. Si tanto CCMP como TKIP están permitidos, CCMP siempre tiene prioridad.
- identidad String: La identidad RADIUS. Si este valor está vacío, se tomará del certificado de cliente especificado (se utilizará "subjectAltName" si está presente; de lo contrario, se utilizará "commonName").
- eapTlsOptions String: Una cadena que contiene opciones específicas de EAP. Actualmente, esta cadena puede utilizarse para habilitar o deshabilitar la compatibilidad con MD5 ("md5=enable" o "md5=disable").
- caCertificates String: El contenido de un archivo de certificado CA en formato de texto (es decir, un archivo "pem"). Los certificados también pueden enviarse desde un peer EAP.
- clientCertificate String: El contenido de un certificado de cliente en formato de texto (es decir, un archivo "pem")
- privateKey String: La clave privada para la autenticación. Si la clave privada está protegida con contraseña, utilice el atributo passphrase/obfuscatedPassphrase para establecer la contraseña. Si el certificado de cliente y la clave privada asociada están en el mismo archivo PKCS#12, el contenido del archivo debe especificarse en el campo privateKey y el campo clientCertificate debe dejarse vacío.
- frecuencias String: Obtiene la lista de frecuencias WiFi
- modo de punto de acceso bool optional: Si el modo de punto de acceso WiFi está habilitado o deshabilitado. El ESSID y la frase de contraseña del punto de acceso WiFi se establecen con los atributos essId y passphrase/obfuscatedPassphrase. Si se ha establecido una frase de contraseña, el punto de acceso inalámbrico utilizará autenticación WPA2; de lo contrario, no utilizará autenticación.
- accessPointFrequency long optional: La frecuencia del punto de acceso WiFi (en MHz)
- accessPointHidden bool optional: Si hidden es verdadero, el SSID está oculto; si es falso es visible. El valor predeterminado es no oculto, que era el comportamiento anterior.
Ejemplos
El siguiente ejemplo consulta un dispositivo BrightSign para obtener la configuración de red de una interfaz específica e imprime los resultados (o cualquier error) en la consola:
var networkConfigClass = require("@brightsign/networkconfiguration");
var nc = new networkConfigClass("ethO");
nc.getConfig().then(
function(data) {
console.log("***General Interface Data***");
console.log(JSON.stringify(data));
})
.catch(
function(data) {
console.log(JSON.stringify(data));
});El siguiente ejemplo de descarga aplica una dirección IP estática a la interfaz ethernet. Si no se proporciona una dirección IP estática, configura la interfaz para DHCP en su lugar:
El siguiente ejemplo de código restringe la compatibilidad de versiones IP únicamente a IPv4:
var networkConfigClass = require("@brightsign/networkconfiguration");
var networkConfigEthernet = new networkConfigClass("eth0");
networkConfigEthernet.getConfig()
.then(
function(data) {
networkConfig = {}
networkConfig.enabledProtocolList = ["IPv4"];
networkConfigEthernet.applyConfig(networkConfig)
.then(
function() {
console.log("Success");
})
.catch(
function(err) {
console.log(err);
});
})
.catch(
function(err) {
console.log(err);
});Para cambiar un elemento mientras mantiene el resto de la configuración igual, llame a getConfig y modifique el objeto devuelto:
var NetworkConfiguration = require('@brightsign/networkconfiguration');
var address = {
ipAddress:"10.0.1.20",
defaultGateway:"10.0.1.1",
subnetMask:"255.255.255.0",
broadcast: "10.0.1.255"
};
var networkConfig = new NetworkConfiguration("eth0");
networkConfig.getConfig()
.then(function(config) {
var ipAddress = {
family: "IPv4",
address: address.ipAddress,
netmask: address.subnetMask,
gateway: address.defaultGateway,
broadcast: address.broadcast,
};
config.ipAddressList = [ipAddress];
networkConfig.applyConfig(config);
})
.then(function() {
console.log("Success");
})
.catch(function(error) {
console.log(`${JSON.stringify(error)}`);
});