網卡聚合及網卡配置


Linux雙網卡綁定的實現就是使用兩塊網卡虛擬成為一塊網卡,這個聚合起來的設備看起來是一個單獨的以太網接口設備,通俗點講就是兩塊網卡具有相同的 IP地址而並行鏈接聚合成一個邏輯鏈路工作。其實這項技術在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術,在 Linux的2.4.x的內核中也采用這這種技術,被稱為bonding。bonding技術的最早應用是在集群——beowulf上,為了提高集群節點間的數據傳輸而設計的。下面我們討論一下bonding 的原理,什么是bonding需要從網卡的混雜(promisc)模式說起。我們知道,在正常情況下,網卡只接收目的硬件地址(MAC Address)是自身Mac的以太網幀,對於別的數據幀都濾掉,以減輕驅動程序的負擔。但是網卡也支持另外一種被稱為混雜promisc的模式,可以接收網絡上所有的幀,比如說tcpdump,就是運行在這個模式下。bonding也運行在這個模式下,而且修改了驅動程序中的mac地址,將兩塊網卡的 Mac地址改成相同,可以接收特定mac的數據幀。然后把相應的數據幀傳送給bond驅動程序處理。 


方案一

具體配置示例如下:

1、[root@storage6 network-scripts]# cat ifcfg-bond0
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)
DEVICE=bond0
BOOTPROTO=static
IPADDR=172.16.100.35
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=172.16.100.1
BONDING_MASTER=yes
TYPE=Ethernet
USERCTL=no

[root@storage6 network-scripts]# cat ifcfg-eth0
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no

[root@storage6 network-scripts]# cat ifcfg-eth1
#IntelCorporation80003ES2LANGigabitEthernetController(Copper)
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no


2、編輯 /etc/modprobe.conf 文件,加入如下一行內容,以使系統在啟動時加載bonding模塊,對外虛擬網絡接口設備為 bond0

加入下列兩行  
alias bond0 bonding  
options bond0 miimon=100 mode=0 

說明:miimon是用來進行鏈路監測的。 比如:miimon=100,那么系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。

    mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作。 
    mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡工作,另一塊做備份.   
bonding只能提供鏈路監測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身並沒有故障,那么bonding會認為鏈路沒有問題而繼續使用


重啟網絡服務:service network restart


[root@storage6 network-scripts]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:A0:D1:E8:65:20
          inet addr:172.16.100.35  Bcast:172.16.100.255  Mask:255.255.255.0
          inet6 addr: fe80::2a0:d1ff:fee8:6520/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:55025978 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55560375 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:34128517375 (31.7 GiB)  TX bytes:57600166665 (53.6 GiB)

eth0      Link encap:Ethernet  HWaddr 00:A0:D1:E8:65:20
          inet6 addr: fe80::2a0:d1ff:fee8:6520/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:27524452 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27788406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17091910563 (15.9 GiB)  TX bytes:28812888955 (26.8 GiB)
          Memory:fcde0000-fce00000


eth1      Link encap:Ethernet  HWaddr 00:A0:D1:E8:65:20
          inet6 addr: fe80::2a0:d1ff:fee8:6520/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:27501527 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27771974 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17036606878 (15.8 GiB)  TX bytes:28787278664 (26.8 GiB)
          Memory:fcdc0000-fcde0000


方案二

配置雙網卡聚合(自適應負載均衡)
modprobe bonding miimon=100 mode=6
ifconfig bond0 192.168.4.15 netmask 255.255.255.0 up
ifenslave bond0 eth0 eth1
cat /proc/net/bonding/bond0
此時交換機無需配置,即可實現負載均衡。

 


網絡配置基礎:

第一種:使用命令修改(直接即時生效,重啟失效)
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
說明:
eth0是第一個網卡,其他依次為eth1,eth*
192.168.0.1是給網卡配置的第一個網卡配置的ip地址
netmask 255.255.255.0 配置的是子網掩碼
up是表示立即激活
ifconfig的更多參數說明查看相關幫助
  gateway:
  # route add default gw 192.168.30.1 eth0
  dns:
# vi etc/resolv.conf
nameserver 202.131.80.1
  nameserver 202.131.80.5
如果要重起生效,就把這些寫到起動腳本 rc.local中
第二種:修改配置文檔(需要重啟網絡配置,永遠生效)
一、修改IP地址
手動改/etc/sysconfig/network-scripts/ifcfg-eth0文件 #第二塊網卡:vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0 #物理設備名
IPADDR=192.168.1.10 #IP地址
NETMASK=255.255.255.0 #掩碼值
NETWORK=192.168.1.0 #網絡地址(可不要)
BROADCAST=192.168.1.255 #廣播地址(可不要)
GATEWAY=192.168.1.1 #網關地址
ONBOOT=yes # [yes|no](引導時是否激活設備)
USERCTL=no #[yes|no](非root用戶是否可以控制該設備)
BOOTPROTO=static #[none|static|bootp|dhcp](引導時不使用協議|靜態分配|BOOTP協議|DHCP協議)
注:單網卡綁定兩個IP
Linux的設備配置文件存放在/etc/sysconfig/network-scripts里面,
對於以太網的第一個設備,配置文件名一般為ifcfg-eth0
如果需要為第一個設備綁定多一個IP地址,
只需要在/etc/sysconfig/network-scripts目錄里面創建一個名為ifcfg-eth0:0的文件,
內容樣例為:
  DEVICE="eth0:0"
  IPADDR="211.100.10.119"
   NETMASK="255.255.255.0"
如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。LINUX最多可以支持255個IP別名。
  
其中的DEVICE為設備的名稱,IPADDR為此設備的IP地址,NETMASK為子網掩碼,ONBOOT表示在啟動時自動啟動。
二、修改網關
  vi /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=Aaron
  GATEWAY=192.168.30.1
  三、修改DNS 
  配置文件在/etc/resolv.conf下面。
  vi /etc/resolv.conf
  nameserver 202.109.14.5 #主DNS
  nameserver 219.141.136.10 #次DNS
  search localdomain
  四、重新啟動網絡配置
方法有多種:
1:root賬戶下 # service network restart
  2:# /etc/init.d/network restart
3:# ifdown eth0
# ifup eth0
4:# ifconfig eth0 down
# ifconfig eth0 up
五、啟動和關閉防火牆
即時生效:
1:#service iptables start
#service iptables stop
重啟系統生效:
2:#service iptables on
#service iptables off
       六、 修改主機名
        vi /etc/sysconfig/network,修改HOSTNAME一行為HOSTNAME=主機名,重啟后才能生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM