Redhat Linux的網路設定,基本上是通過修改幾個設定檔來實現的,雖然也可以用ifconfig來設定IP,用route來配置預設閘道,用hostname來配置主機名稱,但是重啟後會丟失。
相關的設定檔
/ect/hosts
配置主機名稱和IP地址的對應
/etc/sysconfig/network
配置主機名稱和網關
/etc/sysconfig/network-scripts/ifcfg-eth0
eth0設定檔,eth1則檔案名稱為ifcfg-eth1,以此類推
一、網卡配置
假設我們要配置主機名稱為test,eth0的IP地址192.168.168.1/24,網關地址192.168.168.250
則/etc/sysconfig/network檔案內容如下:
NETWORKING=yes
HOSTNAME=test
GATEWAY=192.168.168.250
eth0對應的設定檔/etc/sysconfig/network-scripts/ifcfg-eth0內容如下:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.168.1
NETMASK=255.255.255.0
TYPE=Ethernet
ONBOOT=yes
二、單網卡綁定多個IP
有時,我們需要在一塊網卡上配置多個IP,例如,在上面的例子中,我們還需要為eth0配置IP 192.168.168.2和192.168.168.3。
那麼需要再在/etc/sysconfig/network-scripts下建立兩個設定檔:
ifcfg-eth0:0
內容如下:
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.168.2
NETMASK=255.255.255.0
ONBOOT=yes
ifcfg-eth0:1
內容如下:
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.168.3
NETMASK=255.255.255.0
ONBOOT=yes
三、多個網卡綁定成一塊虛擬網卡
為了提供網路的高可用性,我們可能需要將多塊網卡綁定成一塊虛擬網卡對外提供服務,這樣即使其中的一塊物理網卡出現故障,也不會導致串連中斷。比如我們可以將eth0和eth1綁定成虛擬網卡bond0
首先在/etc/sysconfig/network-scripts/下建立虛擬網卡bond0的設定檔ifcfg-bond0
,內容如下
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.168.255
IPADDR=192.168.168.1
NETMASK=255.255.255.0
NETWORK=192.168.168.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no
然後分別修改eth0和eth1的設定檔
ifcfg-eth0內容:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
ifcfg-eth1內容
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
因為linux的虛擬網卡是在核心模組中實現的,所以需要安裝的時候已經裝好該module。在/etc/modules.conf
檔案中添加如下內容(如果沒有該檔案,則建立一個):
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
其中miimon=100表示每100ms檢查一次鏈路串連狀態,如果不通則會切換物理網卡
mode=1表示主備模式,也就是只有一塊網卡是active的,只提供失效保護。如果mode=0則是負載平衡模式的,所有的網卡都是active,還有其他一些模式很少用到
primary=eth0表示主備模式下eth0為預設的active網卡
最後,在/etc/rc.local
中加入
modprobe bonding miimon=100 mode=1
重啟機器後可以看到虛擬網卡已經生效,可以通過插拔兩個物理網卡的網線來進行測試,不過linux中網卡接管的時間好象比較長.