ifconfig vs ip: מה ההבדל והשוואת הגדרות הרשת

ההפצות המבוססות על Linux מציעות סט של פקודות שמספקות דרך להגדיר רשת בצורה קלה ועוצמתית דרך שורת פקודה. סט זה של פקודות זמין מחבילת net-tools שקיימת מזמן רב בכמעט כל ההפצות, וכוללת פקודות כמו: ifconfig, route, nameif, iwconfig, iptunnel, netstat, arp.

Ifconfig Vs IP Command

פקודות אלו די כדי להגדיר את הרשת בצורה שכל מתחיל או משתמש מנוסה ב-Linux רוצה, אך עקב התקדמות בליבת Linux בשנים האחרונות ובשל אי-אפשרות לתחזקת סט הפקודות המארוזות הללו, הן מתקרעות וקיימת אלטרנטיבה עוצמתית יותר שיכולה להחליף את כל אלו.

האלטרנטיבה הזו קיימת גם כבר מזמן רב והיא הרבה יותר עוצמתית מכל אחת מהפקודות הללו. הקטעים הנותרים ידגישו את האלטרנטיבה הזו ויבצעו השוואה איתה לאחת מהפקודות מחבילת net-tools כלומר ifconfig.

ip – החלפה ל-ifconfig

ifconfig קיימת מזמן רב ועדיין משמשת להגדרת, הצגה ושליטה בממשקי רשת על ידי הרבים, אך קיימת כעת אלטרנטיבה חדשה בהפצות Linux שהיא הרבה יותר עוצמתית ממנה. האלטרנטיבה הזו היא פקודת ip מחבילת iproute2util.

אמנם פקודה זו עשויה להראות מעט מורכבת במבט ראשון, אך היא רחבה יותר בפונקציונליות מאשר ifconfig. היא מאורגנת פונקציונלית על שתי שכבות של צרות רשת, כלומר שכבת 2 (שכבת קישור), שכבת 3 (שכבת IP) ועושה את העבודה של כל הפקודות האמורות לעיל מחבילת כלי הרשת.

בעוד ifconfig בדרך כלל מציג או משנה את הממשקים של מערכת, פקודה זו מסוגלת לבצע את המשימות הבאות:

  1. הצגת או שינוי מאפייני ממשק.
  2. הוספת, הסרת רשומות מטמון ARP יחד עם יצירת רשומת ARP סטטית חדשה עבור מארח.
  3. הצגת כתובות MAC הקשורות לכל הממשקים.
  4. הצגה ושינוי שולחנות הניתוב של הקרנל.

אחד הדברים המרכזיים שמבדיל אותו מהקונטרפרט העתיק שלו ifconfig הוא שהאחרון משתמש ב־ioctl לתצורת רשת, שהיא דרך פחות מוערכת לאינטראקציה עם הקרנל, בעוד שהראשון מנצל את מנגנון קצה הרשת של netlink עבור אותו דבר, שהוא יורש גמיש יותר של ioctl לבין־תקשורת בין הקרנל ומרחב המשתמש באמצעות rtnetlink (שמוסיף יכולות לניהול סביבת רשת).

כעת נוכל להתחיל להדגיש את התכונות של ifconfig ואיך הן מוחלפות ביעילות על ידי הפקודה ip.

השוואת פקודות ip ו־ifconfig

הקטע הבא מדגיש חלק מהפקודות של ifconfig ואת ההחלפה שלהן באמצעות פקודות ip:

1. הצגת כל ממשקי הרשת ב-Linux

כאן, תכונה שמבדילה בין ip ו- ifconfig היא שבעוד ifconfig מציג רק ממשקים שמאופשרים, ip מציג את כל הממשקים בין אם הם מאופשרים או לא.

פקודת ifconfig
$ ifconfig
ifconfig: Check IP Address
פקודת ip
$ ip a
ip: Check IP Address

2. הוספת או מחיקת כתובת IP ב-Linux

הפקודה למטה מקצה את כתובת ה-IP 192.168.80.174 לממשק eth0.

ifconfig – הוספת/מחיקת כתובת IP
# ifconfig eth0 add 192.168.80.174

תחביר להוספת/הסרת ממשק באמצעות פקודת ifconfig:

# ifconfig eth0 add 192.168.80.174
# ifconfig eth0 del 192.168.80.174
ip – הוספת/מחיקת כתובת IP
# ip a add 192.168.80.174 dev eth0

תחביר להוספת/הסרת ממשק באמצעות פקודת ip:

# ip a add 192.168.80.174 dev eth0
# ip a del 192.168.80.174 dev eth0

4. הוספת כתובת MAC לממשק הרשת

הפקודה למטה מגדירה את כתובת החומרה עבור הממשק eth0 לערך שצוין בפקודה. ניתן לאמת זאת על ידי בדיקת הערך של HWaddr בפלט של פקודת ifconfig.

ifconfig – הוספת כתובת MAC

כאן, התחביר להוספת כתובת MAC באמצעות פקודת ifconfig:

# ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – הוספת כתובת MAC

כאן, התחביר להוספת כתובת MAC באמצעות פקודת ip:

# ip link set dev eth0 address 00:0c:29:33:4e:aa

4. הגדרת הגדרות אחרות של ממשק הרשת

בנוסף להגדרת כתובת IP או כתובת חומרה, הגדרות אחרות שניתן להחיל על ממשק כוללות:

  1. MTU (יחידת העברה מרבית)
  2. דגל מולטיקאסט
  3. אורך תור העברה
  4. מצב זנות
  5. הפעל או מנוע כל מצב מרובע
ifconfig – תצורות רשת אחרות
ip – תצורות רשת אחרות

a. Set MTU value to 2000.

 

# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000

b. Enable or Disable multicast flag.

 

# ifconfig eth0 multicast
# ip link set dev eth0 multicast on

c. Setting the transmit queue length.

 

# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200

d. Enabling or disabling promiscuous mode.

 

# ifconfig eth0 promisc
# ip link set dev eth0 promisc on

e. Enable or disable all multicast mode.

 

# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on

6. הפעלה או חסימה של ממשק רשת ספציפי

הפקודות להלן מאפשרות או מונעות ממשק רשת ספציפי.

ifconfig – חסימה/הפעלה של ממשק רשת

הפקודה להלן משביתת את הממשק eth0 וזה מאושש על ידי פלט של ifconfig אשר מציג מבפנים רק את אותם ממשקים אשר פועלים.

# ifconfig eth0 down

כדי להפעיל מחדש את הממשק, פשוט החלף את down על ידי up.

# ifconfig eth0 up
ip – חסימה/הפעלה של ממשק רשת

הפקודה ip להלן היא אלטרנטיבה ל-ifconfig לשביתת ממשק ספציפי. כדי לאשר זאת, באמצעות פלט של הפקודה 'ip a' אשר מציג כל הממשקים מבפנים, בין אם פועלים או לא, אך מדגישים את מצבם יחד עם התיאור.

# ip link set eth0 down

כדי להפעיל מחדש את הממשק, פשוט החלף את down עם up.

# ip link set eth0 up

6. הפעל או מנוע את השימוש בשיטת ARP

הפקודות להלן מאפשרות או מונעות שימוש בשיטת ARP על ממשק רשת ספציפי.

ifconfig – הפעל/חסום את שיטת ARP

הפקודה מאפשרת שימוש בשיטת ARP עם הממשק eth0. כדי לחסום את האפשרות זו, פשוט החלף את arp עם -arp.

# ifconfig eth0 arp
ip – הפעל/חסום את שיטת ARP

הפקודה הזו היא האלטרנטיבה של ip להפעיל ARP עבור הממשק eth0. כדי לבטל, פשוט החלפו את on בoff.

# ip link set dev eth0 arp on

מסקנה

לכן, ציינו תכונות של פקודת ifconfig ואיך ניתן לעשות זאת באמצעות פקודת ip. כיום, פיתוחי Linux מספקים למשתמש את שתי הפקודות כדי שיוכל להשתמש על פי הנוחות שלו. אז, איזו פקודה נוחה עבורך שהיית מעדיף להשתמש בה? הזכירו זאת בתגובות שלכם.

אם אתם רוצים ללמוד עוד על שתי הפקודות הללו, אז עליכם לעבור על המאמרים הקודמים שלנו שמראה דוגמאות מעשיות של ifconfig ופקודת ip באופן מפורט יותר.

אל תחמיצו: 15 דוגמאות של "ifconfig" להגדרת ממשק רשת ב-Linux

אל תחמיצו: 10 דוגמאות של "ip" להגדרת ממשק רשת ב-Linux

Source:
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/