คำสั่ง 'ip addr' แสดง 'UP' แม้จะไม่มีที่อยู่ที่เกี่ยวข้องกับอินเทอร์เฟซนั้น


16

ฉันต้องการที่จะเข้าใจว่าอินเตอร์เฟซเครือข่ายหมายถึงอะไร เพราะip addrหรือifconfigคำสั่งแสดงอินเตอร์เฟสเป็น up แม้ว่าจะไม่มี 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
casey

คำตอบ:


17

LOWER_UPเป็นรัฐของอีเธอร์เน็ตเชื่อมโยง (หรือโปรโตคอลชั้นเชื่อมโยงอื่น ๆ ) มันหมายถึงDriver signals L1 upซึ่งโดยทั่วไปหมายถึงการติดตั้งสายเคเบิลและสามารถมองเห็นอุปกรณ์อื่นที่ปลายอีกด้านของสายเคเบิล

UPหมายความว่าจะได้รับการเปิดใช้งาน สิ่งนี้สามารถควบคุมได้โดยคุณ (หรือสคริปต์) โดยใช้คำสั่งip link set <device> upของifconfig <device> up

มีโปรโตคอลอื่น ๆ เช่นIPXที่ใช้ Ethernet แต่จะไม่มีที่อยู่ IP เนื่องจากไม่ได้เป็นส่วนหนึ่งของ Internet Protocol stack ดังนั้นจึงเป็นที่ยอมรับได้อย่างสมบูรณ์สำหรับลิงก์ที่จะมีUPแต่ไม่มีที่อยู่ IP


จริง ๆ แล้ว DHCP นั้นสร้างขึ้นจากการออกอากาศ UDP ซึ่งต้องใช้เลเยอร์ IP (อันที่จริงแล้วมันสามารถกำหนดเส้นทางได้) อีกตัวอย่างหนึ่งของการใช้ IP แทนข้อมูลในอดีตคือ NetBIOS (ก่อนที่จะถูกส่งไปยัง NetBIOS ผ่าน IPX / SPX และจากนั้นเป็น NetBIOS ผ่าน TCP / IP)
pqnet

[root @ IDCDVAM887 ~] # ip addr แสดง eno33557248 3: eno33557248: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo_fast สถานะ UP qlen 1000 ลิงก์ / อีเธอร์ 00: 50: 56: 9: 68: 86: 86: ff : ff: ff: ff: ff inet 10.54.2.7/32 ขอบเขตส่วนกลาง eno33557248: 1 valid_lft ตลอดกาล Preferred_lft ตลอดกาลในรูปแบบข้างต้นมีอินเทอร์เฟซเสมือน 'eno33557248: 1' กับ IP บางส่วน ทำไมมันไม่แสดงเป็นแยกต่างหาก? มันเพียงพอที่จะแสดงเฉพาะอินเทอร์เฟซดั้งเดิมเป็น UP หรือไม่
Srikanth Ganesan

@pqnet - ฉันพยายามอธิบายว่าส่วน "no IP ไม่มีการสื่อสาร" ของคำถาม OP ไม่เป็นความจริง บางทีมันอาจไม่ใช่ตัวอย่างที่ดีที่สุด! ฉันจะลบมันเพราะจะทำให้เกิดความสับสนเท่านั้น
garethTheRed

ตอนนี้ฉันเข้าใจแล้วขอบคุณทั้งคู่ .. !!!
Srikanth Ganesan

คำสั่ง ip addr ใน RHEL7 สำหรับอินเทอร์เฟซที่กำหนดค่าหลายอินเตอร์เฟสเสมือนหรือนามแฝงทำให้เกิดความสับสนเป็นจำนวนมากว่าจะค้นหาได้หรือไม่
Srikanth Ganesan

7

UPสถานะเป็นการบริหารรัฐของอินเตอร์เฟซคือไม่ว่าจะเป็นอินเตอร์เฟซที่ได้รับการเปิดใช้งาน คุณสามารถเปิดใช้งานอินเทอร์เฟซใดก็ได้โดยใช้เช่น

ip l s eth0 up

หากเสียบสายเคเบิลและสร้างลิงก์แล้วอินเตอร์เฟสจะได้รับสถานะการทำงานRUNNINGด้วย

การ์ดจำนวนมากจะยับยั้งการสร้างผู้ให้บริการขาออกหากสถานะการบริหารไม่ได้UPและอินเทอร์เฟซที่ไม่UPสามารถเป็นได้RUNNINGดังนั้นถ้าฉันตั้งค่า

ip l s eth0 down

ฉันคาดหวังว่าอินเทอร์เฟซในท้องถิ่นของฉันจะสูญเสียทั้งสองอย่างUPและRUNNINGอินเทอร์เฟซที่เกี่ยวข้องบนฝั่งระยะไกลจะไม่เป็นเช่นนั้นอีกต่อไปRUNNING(แต่ยังคงUPดังนั้นถ้าฉันเปิดใช้งานด้านข้างของฉันอีกครั้ง

นั่นเป็นเพียงการเชื่อมต่ออีเธอร์เน็ต ที่ด้านบนของลิงค์โปรโตคอลต่าง ๆ สามารถถูกผูกไว้หนึ่งในนั้นคือ IPv4 ตามค่าเริ่มต้น IPv4 จะเชื่อมโยงกับอินเตอร์เฟสทั้งหมดที่รองรับตระกูลโปรโตคอล

เมื่อโพรโทคอลถูกผูกมัดฉันสามารถส่งและรับแพ็คเก็ตที่มีที่อยู่ใด ๆ ที่กำหนดให้กับอินเทอร์เฟซ หากไม่มีการกำหนดที่อยู่นี่หมายความว่าไม่มีที่อยู่ที่ถูกต้องซึ่งสามารถใช้สำหรับแพ็กเก็ตขาออก (ดังนั้นการส่งแพ็คเก็ตที่ล้มเหลว) หรือที่อยู่แบบยูนิคาสต์ใด ๆ สามารถรับได้เฉพาะ broadcast packets เท่านั้น

สิ่งนี้ไม่เกี่ยวกับเลเยอร์ลิงก์เพียงเล็กน้อยเพราะมันจะสร้างลิงค์เท่านั้น

บางโปรแกรมเช่นไคลเอนต์ DHCP มีสิทธิ์พิเศษในการส่งแพ็คเก็ตที่จัดรูปแบบโดยพลการกรอกที่อยู่แหล่งแฟนตาซีหรือ0.0.0.0และเพื่อรับแพ็คเก็ตที่เข้ามาโดยไม่คำนึงว่าจะถูกกำหนดไว้สำหรับเครื่องท้องถิ่นหรือไม่ สิ่งนี้ใช้ระหว่างการกำหนดค่าที่อยู่ IP อัตโนมัติโดยที่การร้องขอ DHCP จะถูกส่งโดยใช้แหล่งที่อยู่ของ0.0.0.0และการตอบกลับจากเซิร์ฟเวอร์จะถูกส่งไปยังที่อยู่ออกอากาศ255.255.255.255และตอบกลับจากเซิร์ฟเวอร์ถูกส่งไปยังที่อยู่ที่ออกอากาศ

ดังนั้นจึงมีกรณีการใช้งานที่ถูกต้องที่มีการแลกเปลี่ยนแพ็คเก็ต IP แม้จะไม่มีที่อยู่ที่ถูกผูกไว้กับอินเตอร์เฟซ

นอกจาก IPv4 แล้วยังมี IPv6, IPX, AppleTalk ฯลฯ ซึ่งสามารถแชร์เลเยอร์ทางกายภาพเดียวกันได้ ทันทีที่มีการสร้างลิงก์โปรโตคอลระดับสูงเหล่านี้สามารถใช้ลำดับการเปิดใช้งานของตนเองเพื่อเข้าสู่สถานะการทำงาน


>> อินเทอร์เฟซที่ไม่ขึ้นไม่สามารถเรียกใช้ << ได้ ฉันคิดว่าสิ่งนี้อาจไม่สามารถใช้ได้กับเครื่อง Solaris x86 ที่อินเตอร์เฟสแสดงการทำงานแม้ว่าสถานะจะไม่ 'UP' ยกตัวอย่างเช่น 1. ลองใช้อินเตอร์เฟสเสมือนใหม่ root @ IDCDVAM890: ~ # ifconfig net0: 2 plumb 2. ตรวจสอบสถานะของอินเตอร์เฟส กำลังวิ่ง แต่ไม่มีการกำหนด IP root @ IDCDVAM890: ~ # ifconfig net0: 2 net0: 2: ค่าสถานะ = 1,000842 <BROADCAST, RUNNING , MULTICAST, IPv4> mtu 1500 ดัชนี 2 inet 0.0.0.0 netmask 0
Srikanth Ganesan

@SrikanthGanesan คุณไม่จำเป็นต้องมีที่อยู่ IP เพื่อให้อินเตอร์เฟสอยู่ในสถานะ UP หรือ RUNNING อันที่จริงอินเทอร์เฟซนั้นจำเป็นต้องใช้ UP และ RUNNING เพื่อให้ DHCP ทำงาน ดูเหมือนว่า Solaris สืบทอดสถานะ RUNNING ของอินเตอร์เฟสเสมือนจากพาเรนต์ แต่ยังคงสถานะ UP แยกต่างหาก มันค่อนข้างผิดปกติมันอาจจะน่าสนใจที่จะดูว่าเอเจนต์ SNMP ที่พวกเขาจัดส่งแก้ไขในมุมมองภายนอกหรือไม่
Simon Richter

3

อินเทอร์เฟซสามารถเป็น "up" แม้ไม่มีที่อยู่ใด ๆ สถานะ "up" หมายถึง data link layer (หรือเรียกอีกอย่างว่าเลเยอร์ 2) นั่นคือ "up" หมายความว่าคุณสามารถส่งและรับแพ็กเก็ตอีเธอร์เน็ต ทรัพย์สินทางปัญญาเป็นสิ่งที่สร้างขึ้นบนมัน

ตัวอย่างของการกำหนดค่าที่อินเทอร์เฟซขึ้น แต่ไม่มี 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.