Lệnh 'ip addr' hiển thị 'LÊN' thậm chí không có địa chỉ nào được liên kết với giao diện đó


16

Tôi muốn hiểu ý nghĩa của giao diện mạng là gì? Bởi vì ip addrhoặc ifconfiglệnh hiển thị một giao diện ngay cả khi không có IP liên kết với nó.

ví dụ trên 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

(hoặc là)

[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

Công dụng thực sự của việc hiển thị là UP khi giao diện hoàn toàn không có IP? Tôi tin rằng khi không có IP, có thể không có thông tin liên lạc về điều đó? Vậy thì công dụng của nó là gì?


1
Khung Ethernet có thể làm nhiều hơn là chỉ chứa các gói IP.
casey

Câu trả lời:


17

Các LOWER_UPlà trạng thái của Ethernet liên kết (hoặc giao thức lớp liên kết khác). Nó được định nghĩa là Driver signals L1 up, về cơ bản có nghĩa là cáp được trang bị và nó có thể nhìn thấy một thiết bị khác ở đầu kia của cáp.

UPnghĩa là nó đã được kích hoạt. Điều này có thể được kiểm soát bởi bạn (hoặc một kịch bản) bằng cách sử dụng ip link set <device> upcác ifconfig <device> uplệnh.

Có các giao thức khác, chẳng hạn như IPX sử dụng Ethernet, nhưng sẽ không có địa chỉ IP vì chúng không phải là một phần của ngăn xếp Giao thức Internet. Vì vậy, liên kết là hoàn toàn chấp nhận được UPnhưng không có địa chỉ IP.


DHCP thực sự được xây dựng dựa trên phát sóng UDP, đòi hỏi một lớp IP (trên thực tế, nó có thể được định tuyến). Một ví dụ khác về lịch sử thay thế cho IP là NetBIOS (trước khi được chuyển sang NetBIOS qua IPX / SPX và sau đó là NetBIOS qua 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: : ff: ff: ff: ff inet 10.54.2.7 / 32 phạm vi toàn cầu eno33557248: 1 hợp lệ Tại sao nó không hiển thị UP như riêng biệt? Có đủ để chỉ hiển thị giao diện gốc là UP?
Srikanth Ganesan

@pqnet - Tôi đã cố gắng tiết lộ rằng phần "không IP, không giao tiếp" trong câu hỏi của OP không đúng. Có lẽ đó không phải là ví dụ tốt nhất! Tôi sẽ xóa nó vì nó sẽ chỉ gây nhầm lẫn.
garethTheRed

Phần đó bây giờ tôi đã hiểu cảm ơn cả hai .. !!!
Srikanth Ganesan

ip addr ra lệnh trong RHEL7 cho một giao diện đã cấu hình nhiều giao diện ảo hoặc bí danh gây ra nhiều nhầm lẫn như làm thế nào để tìm xem nó có hoạt động hay không
Srikanth Ganesan

7

Các UPtình trạng là hành chính nhà nước của giao diện, tức là cho dù giao diện đã được kích hoạt. Bạn có thể kích hoạt bất kỳ giao diện nào bằng vd

ip l s eth0 up

Nếu cáp được cắm và một liên kết được thiết lập, giao diện cũng sẽ có trạng thái hoạt độngRUNNING .

Nhiều thẻ sẽ ngăn chặn việc tạo nhà cung cấp đi nếu trạng thái quản trị không UPvà giao diện không phải là không UPthể RUNNING, vì vậy nếu tôi đặt

ip l s eth0 down

Tôi hy vọng giao diện cục bộ của mình sẽ mất cả hai UPRUNNING, và giao diện tương ứng ở phía xa cũng sẽ không còn nữa RUNNING(nhưng vẫn UPvậy, vì vậy nếu tôi bật lại phía mình, tôi sẽ nhận được một liên kết).

Đó chỉ là liên kết Ethernet. Trên đầu liên kết, các giao thức khác nhau có thể bị ràng buộc, một trong số chúng là IPv4. Theo mặc định, IPv4 được liên kết với tất cả các giao diện hỗ trợ họ giao thức.

Khi giao thức bị ràng buộc, tôi có thể gửi và nhận các gói với bất kỳ địa chỉ nào được gán cho giao diện. Nếu không có địa chỉ nào được chỉ định, điều này chỉ có nghĩa là không có địa chỉ hợp lệ nào có thể được sử dụng cho các gói gửi đi (vì vậy việc gửi gói không thành công), cũng không có địa chỉ unicast nào mà gói đến có thể được gửi đến mà hệ thống sẽ nhận ra là cục bộ (vì vậy chỉ có thể nhận được các gói quảng bá / phát đa hướng).

Điều này không liên quan đến lớp liên kết một chút, vì nó sẽ chỉ thiết lập một liên kết.

Một số chương trình, chẳng hạn như máy khách DHCP, có quyền đặc biệt gửi các gói được định dạng tùy ý, điền địa chỉ nguồn tưởng tượng hoặc 0.0.0.0để nhận các gói đến bất kể chúng được dành cho máy cục bộ. Điều này được sử dụng trong cấu hình địa chỉ IP tự động, trong đó yêu cầu DHCP được gửi bằng địa chỉ nguồn 0.0.0.0và phản hồi từ máy chủ được gửi đến địa chỉ quảng bá 255.255.255.255.

Do đó, có một trường hợp sử dụng hợp lệ trong đó các gói IP được trao đổi ngay cả khi không có địa chỉ được liên kết với giao diện.

Ngoài IPv4, còn có IPv6, IPX, AppleTalk, v.v., tất cả đều có thể chia sẻ cùng một lớp vật lý. Ngay khi liên kết được thiết lập, bất kỳ giao thức cấp cao hơn nào cũng có thể sử dụng trình tự kích hoạt của chính nó để vào trạng thái hoạt động.


>> một giao diện không LÊN cũng không thể CHẠY được <<. Tôi nghĩ rằng điều này có thể không áp dụng được cho các máy solaris x86 nơi giao diện hiển thị đang chạy ngay cả khi trạng thái không 'LÊN'. Ví dụ: Plumb một giao diện ảo mới. root @ IDCDVAM890: ~ # ifconfig net0: 2 plumb 2. Kiểm tra trạng thái giao diện. CHẠY nhưng không có IP được chỉ định. 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, bạn không cần địa chỉ IP để có giao diện ở trạng thái LÊN hoặc CHẠY, trên thực tế giao diện cần phải LÊN và CHẠY để DHCP hoạt động. Có vẻ như Solaris thừa hưởng trạng thái CHẠY của các giao diện ảo từ cha mẹ, nhưng vẫn giữ trạng thái UP riêng biệt. Điều đó có phần bất thường, thật thú vị khi xem liệu tác nhân SNMP mà họ gửi có sửa lỗi này trong chế độ xem bên ngoài hay không.
Simon Richter

3

một giao diện có thể "lên" ngay cả khi không có địa chỉ. Trạng thái "lên" đề cập đến lớp liên kết dữ liệu (còn được gọi là lớp 2), nghĩa là "lên" có nghĩa là bạn có thể gửi và nhận các gói ethernet. IP là một cái gì đó được xây dựng trên đầu trang của nó.

Một ví dụ về cấu hình trong đó giao diện được bật lên nhưng không có IP (và không nên gán nó) là khi giao diện là một nô lệ cầu nối.


0

kỳ diệu, nếu bạn chỉ định -4tùy chọn hoặc -oneline, sau đó nó sẽ thực sự hiển thị "chạy" giao diện như bạn tưởng tượng.

Để dễ đọc hơn, tôi đã sử dụng -brieftùy chọn nhưng không quan trọng kết luận.

xem kết quả của uptùy chọn, nó vẫn hiển thị một DOWNthiết bị.

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

xem kết quả của -4tùy chọn, tất cả đều có địa chỉ, không có DOWNthiết bị.

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

xem kết quả của -onlinetùy chọn, tất cả đều có địa chỉ, không có DOWNthiết bị, nhưng chia địa chỉ thành IPv4 và 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.