Команда 'ip addr' показує 'UP', навіть немає адреси, пов'язаної з цим інтерфейсом


16

Я хотів би зрозуміти, що мається на увазі під мережевим інтерфейсом? Тому що ip addrабо ifconfigкоманда показує інтерфейс як готовий, навіть коли з ним не пов’язаний IP.

наприклад на RHEL7:

[root@IDCDVAM887 ~]# ifconfig ens256
ens256: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:50:56:9e:19:5b  txqueuelen 1000  (Ethernet)
        RX packets 229406  bytes 59265584 (56.5 MiB)
        RX errors 0  dropped 229454  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(або)

[root@IDCDVAM887 ~]# ip addr show ens256
5: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:50:56:9e:19:5b brd ff:ff:ff:ff:ff:ff

Яке реальне використання показу в якості UP, коли в інтерфейсі взагалі немає IP-адреси? Я вважаю, що коли немає IP-адреси, на цьому не могло бути ніякої комунікації? Тоді в чому це користь?


1
Кадри Ethernet можуть зробити більше, ніж просто містити IP-пакети.
Кейсі

Відповіді:


17

Це LOWER_UPстан посилання Ethernet (або іншого протоколу рівня посилання). Він визначається як Driver signals L1 up, що в основному означає, що кабель встановлений, і він може бачити інший пристрій на іншому кінці кабелю.

Це UPозначає, що це було ввімкнено. Це можна управляти вами (або сценарій) , використовуючи ip link set <device> upв ifconfig <device> upкоманді.

Є й інші протоколи, такі як IPX, які використовують Ethernet, але не матимуть IP-адресу, оскільки вони не входять до стеку Інтернет-протоколів. Тож цілком прийнятно, щоб посилання була, UPале не мала IP-адреси.


DHCP насправді побудований на версії UDP трансляції, яка вимагає IP-рівня (насправді, він може бути маршрутизований). Інший приклад історично використовуваної альтернативи IP був NetBIOS (до того, як він був перенесений на NetBIOS через IPX / SPX, а потім як NetBIOS через TCP / IP)
pqnet

[root @ IDCDVAM887 ~] # ip addr show eno33557248 3: eno33557248: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link / ether 00: 50: 56: 9e: 68: 86 brd ff: ff : ff: ff: ff: ff inet 10.54.2.7/32 сфера глобального eno33557248: 1 valid_lft назавжди віддана перевагу_lft назавжди У наведеному вище форматі є віртуальний інтерфейс 'eno33557248: 1' з деяким IP. Чому він не відображався як окремо? Чи достатньо показати лише оригінальний інтерфейс як UP?
Шрікант Ганесан

@pqnet - Я намагався пояснити, що частина запиту ОП не відповідає IP, немає зв'язку. Можливо, це був не найкращий приклад! Я видалю його, оскільки це лише спричинить плутанину.
garethTheRed

Ця частина тепер я зрозумів, дякую вам обом .. !!!
Шрікант Ганесан

команда ip addr в RHEL7 для інтерфейсу, який налаштував декілька віртуальних інтерфейсів чи псевдонімів, що спричиняє багато плутанини, як дізнатись, працює вона чи ні
Шрікант Ганесан,

7

UPСтатус є адміністративне стан інтерфейсу, тобто , чи був включений інтерфейс. Ви можете включити будь-який інтерфейс, використовуючи напр

ip l s eth0 up

Якщо кабель підключений та встановлено зв’язок, інтерфейс також отримає робочий стан RUNNING.

Багато карток будуть перешкоджати генерації вихідних операторів, якщо адміністративний стан немає UP, і інтерфейс, який не UPможе бути RUNNING, не може бути , тож якщо я встановити

ip l s eth0 down

Я б очікував, що мій локальний інтерфейс втратить UPі RUNNING, і відповідний інтерфейс на віддаленій стороні також більше не буде RUNNING(але все-таки UP, тому, якщо я знову ввімкну свою сторону, я отримаю посилання).

Це лише посилання на Ethernet. Зверху на посилання можуть бути пов'язані різні протоколи, одним з них є IPv4. За замовчуванням IPv4 прив’язаний до всіх інтерфейсів, які підтримують сімейство протоколів.

Коли протокол пов'язаний, я можу надсилати та отримувати пакети з будь-якою адресою, призначеною для інтерфейсу. Якщо адреса не присвоєна, це просто означає, що не існує дійсної адреси, яка може використовуватися для вихідних пакетів (тому відправлення пакету не вдається), а також будь-яка одноадресна адреса вхідного пакету не може бути адресована тому, що система визнає локальною (так можуть прийматись лише широкомовні / багатоадресні пакети).

Це не стосується шару посилання в найменшій мірі, оскільки він лише встановить посилання.

Деякі програми, такі як клієнт DHCP, мають спеціальний дозвіл на надсилання довільно відформатованих пакетів, заповнення адреси джерела фантазії або 0.0.0.0та отримання пакетів, що надходять, незалежно від того, призначені вони для локальної машини. Це використовується під час автоматичної конфігурації IP-адреси, де DHCP-запит надсилається за допомогою вихідної адреси 0.0.0.0, а відповідь від сервера адресована на адресу широкомовної передачі 255.255.255.255.

Таким чином, існує дійсний випадок використання, коли IP-пакети обмінюються навіть без адреси, пов'язаної з інтерфейсом.

Окрім IPv4, є також IPv6, IPX, AppleTalk тощо, які можуть поділяти один і той же фізичний рівень. Як тільки зв'язок встановлено, будь-який з цих протоколів вищого рівня може використовувати свою власну послідовність активації, щоб перейти в робочий стан.


>> інтерфейс, який не вгору, не може бути ЗАВЕРШЕНО ні <<. Я думаю, що це може не застосовуватись для машин solaris x86, де інтерфейс відображається навіть у тому випадку, коли стан не є "Вгору". Наприклад 1. Підведіть новий віртуальний інтерфейс. root @ IDCDVAM890: ~ # ifconfig net0: 2 plumb 2. Перевірте стан інтерфейсу. RUNNING, але IP не призначений. root @ IDCDVAM890: ~ # ifconfig net0: 2 net0: 2: flags = 1000842 <BROADCAST, RUNNING , MULTICAST, IPv4> mtu 1500 index 2 inet 0.0.0.0 netmask 0
Srikanth Ganesan

@SrikanthGanesan, вам не потрібна IP-адреса, щоб мати інтерфейс у стані UP або RUNNING. Насправді інтерфейс повинен бути UP та RUNNING, щоб DHCP працював. Схоже, Solaris успадковує стан RUNNING віртуальних інтерфейсів від батьківського, але зберігає окремий стан UP. Це дещо нерегулярно, може бути цікаво дізнатися, чи коректує SNMP агент, який вони постачають, у зовнішньому вигляді.
Саймон Ріхтер

3

інтерфейс може бути "вгору" навіть без будь-якої адреси. Статус "вгору" відноситься до рівня зв'язку даних (також відомого як рівень 2), тобто "вгору" означає, що ви можете надсилати та отримувати ethernet-пакети. IP - це щось, що будується поверх цього.

Приклад конфігурації, в якій інтерфейс працює, але не має IP-адреси (і його не слід призначати), коли інтерфейс є веденим мостом.


0

магічно, якщо ви вкажете -4варіант або -oneline, він дійсно покаже інтерфейс "працює", як ви собі уявляли.

Щоб полегшити читання, я використав -briefваріант, але висновок не має значення.

побачити результат upопції, він все ще показує DOWNпристрій.

ubuntu@ubuntu:~$ ip --brief address show up
lo               UNKNOWN        127.0.0.1/8 ::1/128
eno1             DOWN
enp130s0f0       UP             100.79.223.150/26 fe80::a9e:1ff:fed9:2864/64

переглянути результат -4опції, все з адресами, без DOWNпристроїв.

ubuntu@ubuntu:~$ ip -4 -brief address show
lo               UNKNOWN        127.0.0.1/8
enp130s0f0       UP             100.79.223.150/26

див. результат -onlineопції, все з адресами, без DOWNпристроїв, але розділити адреси на IPv4 та IPv6.

ubuntu@ubuntu:~$ ip -oneline address show
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
4: enp130s0f0    inet 100.79.223.150/26 brd 100.79.223.191 scope global enp130s0f0\       valid_lft forever preferred_lft forever
4: enp130s0f0    inet6 fe80::a9e:1ff:fed9:2864/64 scope link \       valid_lft forever preferred_lft forever
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.