Коротка історія: те, як ви це зробили, є правильним (відповідно до вашого коментаря до питання).
Довга історія: в Linux мережевий "пристрій" називається foo:bar
псевдонімом "foo", який використовується, коли нам потрібно призначити кілька мережевих налаштувань інтерфейсу "foo", наприклад, щоб він відповідав на декілька підмереж на одному проводі.
Це химерний спосіб зробити це, і невідповідний для завантаження. Для IPv6 всі адреси, призначені інтерфейсу eth0, перераховані разом під записом eth0. Існує більш сучасний метод зробити це (за допомогою ip addr
команди).
Ви можете помітити інтерфейси псевдонімів, оскільки вони мають двокрапку :
у своїх назвах, частина зліва від двокрапки - це існуюча назва інтерфейсу, а строфа інтерфейсу, коли ви це робите ifconfig
, дуже коротка. Також HWaddr
має бути ідентичним інтерфейсу 'батьківського' інтерфейсу. Вони також не будуть вказані в /proc/net/dev
. Якби ви сказали ip addr
, eth0:0
показували б як другу адресу інтерфейсу eth0
. (шукайте відрізну лінію, починаючи з inet
)
Псевдоніми та їхні батьки мають багато налаштувань та полів, оскільки вони поділяють фізичний рівень. Ядро не сприймає їх як повністю окремі інтерфейси. Для одного трафік з’являється на батьківському інтерфейсі, а не на псевдонімі. Можливо, ви помітили, що в псевдонімі навіть немає лічильників пакетів / байтів!
Якщо вам потрібно нюхати трафік, брандмауер тощо на інтерфейс псевдоніму, вам потрібно використовувати його батьківський. Оскільки єдиною відмінністю псевдоніма від його батьків є налаштування IPv4, єдиний спосіб співставити трафік на псевдонімі - це використовувати ці налаштування IP. З iptables
, ви співпадаєте з IPv4 адресою псевдоніма так само, як ви робили в коментарі до своєї відповіді.