Два разных IP-адреса для одного интерфейса сетевой карты

Текущее руководство bash по массивам говорит

Переменная массива считается установленной, если подстрому индексу присвоено значение.

Так что, ИМХО, вам придется сделать что-то другое для ассоциативных массивов. Я не могу сказать, является ли это недавним изменением в поведении bash.

Другим способом определения is_var_set было бы (ab)использовать declare builtin, используя следующее:

Состояние возврата равно нулю, если ... одно из имен не является допустимым именем переменной оболочки ...

function is_var_set {
  declare -p "${1:?"No var provided to 'is_var_set'! "}" >& /dev/null
}

Вышесказанное будет работать для имен переменных верхнего уровня, но не для каких-либо конкретных элементов массива.

2
04.08.2017, 18:19
2 ответа

net0— это интерфейс, а net0/addrи net0/v4— это объекты addrobj . У вас может быть несколько addrobj, связанных с одним и тем же сетевым интерфейсом уровня 2 (канала передачи данных ).

Из Администрирование Oracle Solaris :Сетевые интерфейсы и виртуализация сети:

addrobj

Specifies an identifier for the unique IP address or set of addresses that is used in the system. The addresses can be either IPv4 or IPv6 types.

The identifier uses the format: interface / user_specified_string.

The interface refers to the IP interface to which the address is assigned. The interface variable must reflect the name of the datalink on which the IP interface is configured.

user-specified-string refers to a string of alphanumeric characters that begins with an alphabet letter and has a maximum length of 32 characters. Subsequently, you can refer to the addrobj instead of the numeric IP address when you use any ipadm subcommand that manages addresses in the system, such as ipadm show-addr, or ipadm delete-addr.

4
27.01.2020, 21:58

Это должно было стать комментарием, но оно было помечено как слишком длинное, поэтому его поместили в ячейку для ответа.

Хотя я бы не рекомендовал использовать одну и ту же подсеть с одним и тем же сетевым адаптером, так как это ничего не даст. Даже использование VNIC на той же ссылке не принесет вам многого, если только вы не хотите контролировать или отслеживать IP/ссылку.

Не уверен, что это поможет, но вы также можете рассмотреть возможность настройки строгой множественной адресации, чтобы упростить маршрутизацию :Для систем, которые являются шлюзами для других доменов, таких как брандмауэр или VPN-узел, используйте эту процедуру, чтобы включить строгую множественную адресацию. Свойство hostmodel управляет отправкой и получением IP-пакетов в многосетевой системе через ipadm.

Проверьте текущее значение и запишите возможные значения :ipadm show-prop -p hostmodel ip

0
27.01.2020, 21:58

Теги

Похожие вопросы