1. 程式人生 > >Linux-eth0 eth0:1 ifcfg-lo ifcfg-lo:0 和eth0.1關係、ifconfig以及虛擬IP實現介紹

Linux-eth0 eth0:1 ifcfg-lo ifcfg-lo:0 和eth0.1關係、ifconfig以及虛擬IP實現介紹

eth0 eth0:1 和eth0.1三者的關係對應於物理網絡卡、子網絡卡、虛擬VLAN網絡卡的關係:
物理網絡卡:物理網絡卡這裡指的是伺服器上實際的網路介面裝置,這裡我伺服器上雙網絡卡,在系統中看到的2個物理網絡卡分別對應是eth0和eth1這兩個網路介面。
 
子網絡卡:子網絡卡在這裡並不是實際上的網路介面裝置,但是可以作為網路介面在系統中出現,如eth0:1、eth1:2這種網路介面。它們必須要依賴於物理網絡卡,雖然可以與物理網絡卡的網路介面同時在系統中存在並使用不同的IP地址,而且也擁有它們自己的網路介面配置檔案。但是當所依賴的物理網絡卡不啟用時(Down狀態)這些子網絡卡也將一同不能工作。
 
虛擬VLAN網絡卡

:這些虛擬VLAN網絡卡也不是實際上的網路介面裝置,也可以作為網路介面在系統中出現,但是與子網絡卡不同的是,他們沒有自己的配置檔案。他們只是通過將物理網加入不同的VLAN而生成的VLAN虛擬網絡卡。如果將一個物理網絡卡通過vconfig命令新增到多個VLAN當中去的話,就會有多個VLAN虛擬網絡卡出現,他們的資訊以及相關的VLAN資訊都是儲存在/proc/net/vlan/config這個臨時檔案中的,而沒有獨自的配置檔案。它們的網路介面名是eth0.1、eth1.2這種名字。

注意:當需要啟用VLAN虛擬網絡卡工作的時候,關聯的物理網絡卡網路介面上必須沒有IP地址的配置資訊,並且,這些主物理網絡卡的子網絡卡也必須不能被啟用和必須不能有IP地址配置資訊。這個在網上看到的結論根據我的實際測試結果來看是不準確的,物理網絡卡本身可以繫結IP,並且給本徵vlan提供通訊閘道器的功能,但必須是在802.1q下。

 ifcfg-l0 是本地迴環介面,相當於 127.0.0.1 ifcfg-l0:0是在迴環介面上再新增一個網路介面,一般用於配置虛擬IP

/sbin/ifconfig 檢視、配置、啟用或禁用網路介面(網絡卡)的工具 
ifconfig 是一個用來檢視、配置、啟用或禁用網路介面的工具,這個工具極為常用的。比如我們可以用這個工具來配置網絡卡的IP地址、MAC地址、掩碼、廣播地址等。值得一說的是用ifconfig 為網絡卡指定IP地址,這只是用來除錯網路用的,並不會更改系統關於網絡卡的配置檔案。如果您想把網路介面的IP地址固定下來,目前有三個方法:一是通過各個發行和版本專用的工具來修改IP地址;二是直接修改網路介面的配置檔案;三是修改特定的檔案,加入ifconfig 指令來指定網絡卡的IP地址,比如在redhat或Fedora中,把ifconfig 的語名寫入/etc/rc.d/rc.local檔案中; 

/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0


ifconfig配置網路介面語法: 
ifconfig 網路埠 IP地址 hw MAC地址 netmask 掩碼地址 broadcast 廣播地址 [up/down] 

ifconfig常用用法: 

  • ifconfig : 檢視主機啟用狀態的網路介面情況; 輸出結果中:lo 是表示主機的回壞地址,eth0 表示第一塊網絡卡, 其中 HWaddr 表示網絡卡的實體地址(MAC地址); inet addr 用來表示網絡卡的IP地址,Bcast表示廣播地址,Mask表示掩碼地址
  • ifconfig -a : 檢視主機所有(包括沒有被啟用的)網路介面的情況
  • ifconfig eth0 : 檢視特定網路介面的狀態
  • ifconfig eth0 down = ifup eth0 : 如果eth0是啟用的,就把它終止掉。此命令等同於 ifdown eth0;
  • ifconfig eth0 up = ifdown eth0 : 啟用eth0 ; 此命令等同於 ifup eth0 
  • ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 : 配置 eth0的IP地址、廣播地址和網路掩碼; 
  • ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up : 配置IP地址、網路掩碼、廣播地址的同時,啟用網絡卡eth0
  • ifconfig eth1 hw ether 00:11:00:00:11:22 : 設定網絡卡的實體地址(MAC地址)。其中 hw 後面所接的是網路介面型別, ether表示乙太網, 同時也支援 ax25 、ARCnet、netrom等,詳情請檢視 man ifconfig ; 

 

虛擬IP技術在高可用領域像資料庫SQLSERVER、web伺服器等場景下使用很多,很疑惑它是怎麼實現的,偶然,發現了一種方式可以實現虛擬ip。它的原理在於同一個物理網絡卡,是可以擁有多個ip地址的,至於虛擬網絡卡,也可用通過該方式擁有多個ip。  即對外提供資料庫伺服器的主機除了有一個真實IP外還有一個虛IP,使用這兩個IP中的 任意一個都可以連線到這臺主機,所有專案中資料庫連結一項配置的都是這個虛IP,當伺服器發生故障無法對外提供服務時,動態將這個虛IP切換到備用主機。

其實現原理主要是靠TCP/IP的ARP協議。因為ip地址只是一個邏輯地址,在乙太網中MAC地址才是真正用來進行資料傳輸的實體地址,每臺主機中都有一個ARP快取記憶體,儲存同一個網路內的IP地址與MAC地址的對應關係,乙太網中的主機發送資料時會先從這個快取中查詢目標IP對應的MAC地址,會向這個MAC地址傳送資料。作業系統會自動維護這個快取。這就是整個實現 的關鍵。

在eth0處引用別名,設定完子網掩碼即可
ifconfig eth0:0 166.111.69.100 netmask 255.255.255.0 up

此時檢視網絡卡資訊

複製程式碼 複製程式碼
eth0 Link encap:Ethernet HWaddr 08:00:27:64:59:11 
          inet addr:166.111.69.17 Bcast:166.111.69.255 Mask:255.255.255.0
          inet6 addr: 2402:f000:1:4412:a00:27ff:fe64:5911/64 Scope:Global
          inet6 addr: fe80::a00:27ff:fe64:5911/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:597673 errors:0 dropped:0 overruns:0 frame:0
          TX packets:215472 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:67285933 (67.2 MB) TX bytes:22782158 (22.7 MB)

eth0:0 Link encap:Ethernet HWaddr 08:00:27:64:59:11 
          inet addr:166.111.69.100 Bcast:166.111.69.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

lo Link encap:Local Loopback 
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:843 errors:0 dropped:0 overruns:0 frame:0
          TX packets:843 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:67174 (67.1 KB) TX bytes:67174 (67.1 KB)
複製程式碼 複製程式碼

然後找另一臺機器ping這個vip(eth0:0)就可以看到顯示結果了。
寫在/etc/rc.local裡也可以,寫在這裡就不怕斷電後機器無法正常使用了。

更詳細參考:Linux-配置虛擬IP例項


用ifconfig 來配置虛擬網路介面: 
有時我們為了滿足不同的需要還需要配置虛擬網路介面,比如我們用不同的IP地址來架執行多個HTTPD伺服器,就要用到虛擬地址;這樣就省卻了同一個IP地址,如果開設兩個的HTTPD伺服器時,要指定埠號。 

虛擬網路介面指的是為一個網路介面指定多個IP地址,虛擬介面是這樣的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。當然您為eth1 指定多個IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此類推; 
ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up 
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up 
注意:指定時,要為每個虛擬網絡卡指定不同的實體地址;
轉:https://www.cnblogs.com/jxhd1/p/6528583.html