configuración del host
El objeto hostconfiguration le permite recuperar información sobre interfaces de red y conectividad a Internet.
IDL de hostconfiguration
interface NetworkHost {
HostConfig defaultConfig();
Promise<HostConfig> getConfig();
Promise<void> applyConfig(HostConfigWritable config);
};
interface HostConfig {
[optional] attribute String proxy;
[optional] attribute Array<String> proxyBypassList;
[optional] attribute Array<String> timeServerList;
[optional] attribute String timeServerInterval;
[optional] attribute String hostName;
[optional] attribute bool loginPassword;
[optional] attribute bool forwardingEnabled;
[optional] attribute bool masqueradingEnabled;
[optional] attribute Array<NatRule> natList;
[optional] attribute Array<String> sshAuthorizedKeys;
};
interface HostConfigWritable : HostConfig {
[optional] attribute String[or bool] loginPassword;
[optional] attribute String[or bool] obfuscatedLoginPassword;
};
interface NatRule {
attribute NatRuleMatch match;
attribute NatRuleReplacement replace;
};
interface NatRuleMatch {
attribute String protocol;
[optional] attribute String sourceAddressRange;
attribute String destinationAddressRange;
attribute unsigned short destinationPort;
};
interface NatRuleReplacement {
attribute String destinationAddress;
attribute unsigned short destinationPort;
};Creación de objetos
Para crear un objeto hostconfiguration , primero cargue el módulo brightsign/hostconfiguration usando el método require() . Luego cree una instancia de la clase hostconfiguration .
var HostConfigurationClass = require("@brightsign/hostconfiguration");
var hc = new HostConfigurationClass();NetworkHost
Utilice esta interfaz para recuperar y modificar la configuración del host.
getConfig()
Promise<HostConfig> getConfig() Devuelve una interfaz HostConfig que contiene información actual de configuración del host:
- proxy String: El servidor proxy utilizado para solicitudes HTTP, HTTPS y FTP.
- proxyBypassList String: Una lista de hosts exentos de la configuración proxy
- timeServerList String: Una lista de servidores de hora. Consulte roNetworkConfiguration.SetTimeServer() para obtener más información.
- timeServerInterval String: con qué frecuencia el reproductor se comunica con el servidor de hora y ajusta su reloj. Un valor de 0 especifica el intervalo predeterminado (12 horas).
- nombreDeHost String: El nombre de host del dispositivo
- loginPassword bool: Indica si se ha configurado una contraseña de inicio de sesión para la conexión SSH.
- reenvío habilitado bool: Habilita o deshabilita el reenvío IP. Si falso, no se realiza ningún reenvío IP.
- suplantaciónActivada bool: Habilita o deshabilita la traducción de direcciones con reenvío IP. Si reenvío_habilitado es verdadero, masquerading_enabled debe especificarse como verdadero o falso.
- Si reenvío_habilitado es verdadero y masquerading_enabled es falso, los datagramas IP se reenvían entre todas las interfaces y no se realiza ninguna traducción de direcciones.
- Si reenvío_habilitado es verdadero y masquerading_enabled es verdadero, los datagramas IP se reenvían entre todas las interfaces, pero SNAT se aplica a cualquier datagrama enviado desde una interfaz "upstream". Para este propósito, una interfaz "upstream" es cualquiera en la que se establece una ruta predeterminada. Tenga en cuenta que puede haber más de una interfaz de este tipo. Los datagramas destinados a una interfaz que no tiene una ruta predeterminada se reenvían sin NAT.
- natList Array <NatRule>:
- sshAuthorizedKeys Array<String>: Una matriz de cadenas de claves públicas autorizadas. La misma propiedad puede pasarse al método applyConfig() para establecer las claves públicas autorizadas. Disponible a partir de BOS 10.0.11.
applyConfig()
Promise<void> applyConfig(HostConfigWritable config)Aplica configuraciones de host al reproductor. Este método acepta una interfaz HostConfigWritable.
El parámetro configuración debe contener la configuración deseada completa. Cualquier configuración previa se sobrescribe. Si desea cambiar un elemento mientras mantiene el resto de la configuración igual, llame a getConfig y modifique el objeto devuelto (consulte el ejemplo en la sección Examples).
HostConfig
Esta interfaz contiene parámetros de configuración del host:
- proxy String: El nombre o la dirección del servidor proxy utilizado para solicitudes HTTP y FTP. La cadena del proxy debe tener el formato "http://user:password@hostname:port". El nombre de host puede contener hasta cuatro caracteres "*"; cada carácter "*" puede utilizarse para reemplazar un octeto de la dirección IP actual. Por ejemplo, si la dirección IP es actualmente 192.168.1.2 y el proxy está configurado como "proxy-*-*", entonces el reproductor intentará usar un proxy llamado "proxy-192-168".
- proxyBypassList Array<String>: Una lista de nombres de host exentos de la configuración del proxy. El reproductor intentará acceder a los hosts especificados directamente en lugar de usar el proxy especificado en el atributo proxy . Por ejemplo, el nombre de host "example.com" excluiría "example.com", "example.com:80" y "www.example.com" de la configuración del proxy.
- timeServerList Array<String>: Una matriz que contiene cero o un servidor de hora para ser utilizado por el reproductor. Una matriz vacía deshabilita el ajuste automático del reloj del reproductor. Una sola entrada indica el servidor de hora y el protocolo que deben utilizarse como URL. Los protocolos admitidos son HTTP, HTTPS y NTP. Para mantener la compatibilidad con versiones anteriores, se admite el uso de solo un nombre de host e indica que debe utilizarse NTP. Tenga en cuenta que, al usar HTTPS, la verificación del host y del par están deshabilitadas ya que el reloj del reproductor puede no ser correcto. Las siguientes son direcciones válidas de servidores de hora:
- http://time.brightsignnetwork.com/
- https://time.brightsignnetwork.com/
- ntp://time.brightsignnetwork.com/
- time.brightsignnetwork.com
- timeServerInterval String: Un valor que especifica con qué frecuencia (en segundos) el reproductor debe comunicarse con el servidor de hora para ajustar su reloj. El intervalo predeterminado es de 12 horas. El intervalo mínimo permitido es de 120 segundos.
- nombreDeHost String: El nombre de host del reproductor. Si no se ha establecido explícitamente un nombre de host, se genera automáticamente un nombre de host basado en el número de serie del dispositivo. Pasar una cadena vacía a este método restablece el nombre de host del dispositivo a su valor generado automáticamente.
- loginPassword bool: Un valor de verdadero significa que la contraseña existe, falso significa que no hay contraseña.
- reenvíoHabilitado bool: Habilita o deshabilita el reenvío IP. El reenvío IP está deshabilitado (falso) de forma predeterminada.
- masqueradingEnabled bool: Habilita o deshabilita la traducción de direcciones de origen con reenvío de IP. Si reenvíoHabilitado es true, masqueradingEnabled debe especificarse como true o false:
- Si masqueradingEnabled es false, los datagramas IP se reenvían entre todas las interfaces y no se realiza ninguna traducción de direcciones.
- Si masqueradingEnabled es true, los datagramas IP se reenvían entre todas las interfaces, pero SNAT se aplica a cualquier datagrama que se envíe fuera de una interfaz "upstream" (cualquier interfaz o interfaces en las que se configure una ruta predeterminada). Los datagramas destinados a una interfaz que no tenga una ruta predeterminada se reenvían sin NAT.
- natList Array<NatRule>: Una lista de reglas de DNAT que permite a los usuarios cambiar la dirección y el puerto de destino de un paquete.
HostConfigWritable
Esta interfaz contiene configuraciones de contraseña para SSH. Al escribir configuraciones usando el método applyConfig() , algunos miembros de la interfaz HostConfig tienen un comportamiento especial.
- loginPassword String o bool:
- Si se proporciona una cadena, establece una contraseña de inicio de sesión en texto plano para la conexión SSH (tenga en cuenta que SSH también debe habilitarse por separado en el registro para que esto sea útil).
- Si se proporciona el valor booleano Verdadero , la contraseña existente (si existe) permanece sin cambios.
- Si se proporciona el valor booleano Falso , se elimina cualquier contraseña existente.
- obfuscatedLoginPassword String o bool:
- Como se indicó anteriormente, excepto que la contraseña debe haberse ofuscado previamente utilizando un secreto compartido. Póngase en contacto con [email protected] para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
Este comportamiento garantiza que código como getConfig().then((c) => { applyConfig(c); }) conserve cualquier contraseña existente, aunque la propia contraseña no sea devuelta por getConfig().
NatRuleMatch
Las reglas de esta interfaz se comparan con los destinos de los paquetes TCP o UDP que ingresan al reproductor. Si los campos del paquete coinciden con las propiedades establecidas en NatRuleMatch, la IP y el puerto de destino se sobrescribirán con los valores deseados en la interfaz NatRulesReplacement .
- protocolo String: Filtro para "udp" o "tcp" (la entrada debe estar en minúsculas).
- rango de direcciones de origen String optional: Filtro para este rango de direcciones IP de origen (en formato CIDR ). Se incluirá tráfico de todas las direcciones IP de origen si no se especifica este atributo opcional.
- destinationAddressRange String: El rango de direcciones IP de destino (en formato CIDR ) que se sobrescribirá.
- puerto de destino unsigned short: El puerto de destino que se sobrescribirá.
NatRuleReplacement
Las propiedades de dirección y puerto especificadas en NatRuleReplacement se escriben en el paquete para reemplazar las propiedades seleccionadas de dirección IP y puerto.
- dirección de destino String: La dirección IP que reemplazará la dirección IP anterior en el destino.
- puerto de destino unsigned short: El puerto que reemplazará el puerto anterior en el destino.
Ejemplos
El siguiente script usa el método applyConfig() para configurar el nombre de host, el servidor de hora y el intervalo de actualización del servidor de hora:
var HostConfigurationClass = require("@brightsign/hostconfiguration");
var hc = new HostConfigurationClass();
var configData = {};
configData.hostName = "myplayer";
configData.proxy = "";
configData.proxyBypassList = [];
configData.timeServerInterval = 1200;
configData.timeServerList = ["time.brightsignnetwork.com"];
console.log("***Configuring Host***")
hc.applyConfig(configData).then(
function() {
console.log("Success");
})
.catch(
function(data) {
console.log(JSON.stringify(data));
}); Para cambiar un elemento mientras mantiene el resto de la configuración igual, llame a getConfig y modifique el objeto devuelto:
var HostConfiguration = require('@brightsign/hostconfiguration');
var hostConfiguration = new HostConfiguration;
hostConfiguration.getConfig()
.then(function(config) {
config.hostName = "host-brightsign";
hostConfiguration.applyConfig(config);
})
.then(function() {
console.log("Success");
})
.catch(function(error) {
console.log(`${JSON.stringify(error)}`);
});