概述:本文主要介紹網卡別名(一張網卡多個IP)、bonging(多張網卡綁定一個IP)、以及路由實驗
Linux網絡配置基礎
基本網絡配置
將Linux主機接入到網絡,需要配置網絡相關設置。
一般包括如下內容:
主機名:hostname
示例:
臨時有效
[root@centos6 ~]# hostname MyHostName [root@centos6 ~]# hostname MyHostName [root@centos6 ~]# echo $HOSTNAME centos6.localdomain
注銷后命令提示符顯示為修改內容,并且變量$HOSTNAME顯示為修改內容
[root@centos6 ~]# exit logout [root@MyHostName ~]# hostname MyHostName [root@MyHostName ~]# echo $HOSTNAME MyHostName
注意:以上操作只會對當前shell進程有效,重啟或關機則失效
[root@centos6 ~]# vim /etc/sysconfig/network
并運行hostname命令,使主機名立即生效或者重新啟動系統
IP/netmask/GATEWAY/DNS
IP地址
子網掩碼
默認網關:GATEWAY
DNS服務器:
主DNS服務器:DNS1
次DNS服務器:DNS2
第三DNS服務器:DNS3
網絡配置方式
動態分配:
DHCP: Dynamic Host Configuration Protocol
靜態指定:
配置使用的工具
字符工具:
CentOS6
system-config-network
[root@MyHostName ~]# system-config-network
setup
[root@MyHostName ~]# setup
CentOS7
nmtui
[root@localhost ~]# nmtui
圖形化界面工具
CentOS7
nm-connection-editor
或者
命令
ifcfg:ifconfig,route,netstat
ip:object {link,addr,route},ss,tc
nmcli命令CentOS7(特有)
配置網絡接口:
接口命名方式(默認):
CentOS6
以太網網卡:eth[0,1,2,…]
廣域網設備(ppp):ppp[0,1,2…]
DELL服務器有自己的網卡命名方式
CentOS7
eno16777736
配置文件
/etc/udev/rules.d/ 下的文件為設備規則文件,定義了Linux設備的命名方式
其中網卡的命名方式由70-persistent-net.rules定義
并且編輯/etc/sysconfig/network-scripts/ifcfg-eth0
修改如圖
注意:ifcfg-eth0的文件名后側的eth#是什么不重要,但是為了規范化盡量保持名稱一致。
/etc/sysconfig/network-scripts/ifcfg-eth# 每行含義
DEVICE=:此配置文件應用到的設備
BOOTPROTO=:激活此設備時使用的地址配置協議,常用的dhcp動態獲取IP地址, static固定IP地址, none固定IP地址(當網卡多IP時必須用此模式), bootp;此行省略則默認為固定IP地址模式
TYPE=:接口類型;常見有的Ethernet, Bridge;忽略此行默認為Ethernet
UUID=:設備的惟一標識
ONBOOT=:在系統引導時是否自動激活此設備
NM_CONTROLLED=:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“ no”
IPADDR=:指明IP地址
NETMASK=:子網掩碼
GATEWAY=: 默認網關
PREFIX=:網絡地址位數(例如:值為16)
DNS1=:第一個DNS服務器指向
DNS2=:第二個DNS服務器指向
DNS3=:第三個DNS服務器指向
USERCTL=:普通用戶是否可控制此設備
DEFROUTE=:…
IPv4_FAILURE_FATAL=:…
IPv6INIT=:…
IPV6_AUTOCONF=:…
IPV6_DEFROUTE=:…
IPV6_PEERDNS=:…
IPV6_PEERROUTES=:…
IPV6_FAILURE_FATAL=:…
NAME=:…
HWADDR=:對應的設備的真實MAC地址
MACADDR=:對應的設備的顯示MAC地址
PEERDNS=:如果BOOTPROTO的值為“ dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
PEERROUTES=:…
LAST_CONNECT=:…
用于網絡別名的參數
ONPARENT=yes:用于網卡別名;當物理網卡啟動網卡別名亦啟動
用于單IP多網卡的bond接口配置文件
SLAVE=yes:是否是輔助網卡
MASTER=bond0:指定主網卡
BONDING_OPTS= “miimon=100 mode=0”:指定bond檢測主網卡狀態的時間間隔以及模式類型(模式mode=0 | 1 | 2)
當中存在如下幾種情況網卡即能正常識別使用
DEVICE=:此配置文件應用到的設備
ONBOOT=:在系統引導時是否自動激活此設備
BOOTPROTO=:激活此設備時使用的地址配置協議,常用的dhcp動態獲取IP地址, static固定IP地址, none固定IP地址(當網卡多IP時必須用此模式), bootp;此行省略則默認為固定IP地址模式
或
DEVICE=:此配置文件應用到的設備
ONBOOT=:在系統引導時是否自動激活此設備
IPADDR=:指明IP地址
PREFIX=:網絡地址位數(例如:值為16) 或者 NETMASK=:子網掩碼
GATEWAY=: 默認網關
DNS1=:第一個DNS服務器指向
DNS2=:第二個DNS服務器指向
DNS3=:第三個DNS服務器指向
DNS記錄配置文件
/etc/resolv.conf
修改完成后
linux系統的NetworkManager服務(NM)會自動重新識別啟動網卡
NetworkManager服務狀態
[root@centos6 ~]# service NetworkManager status NetworkManager (pid 1986) is running...
注意:但是此服務并不穩定,有時會由失效現象,所以建議手動重啟網絡服務
停止NetworkManager服務
先臨時關閉(重啟系統又會重啟此服務)
[root@centos6 ~]# service NetworkManager stop Stopping NetworkManager daemon:[ OK ]
永久關閉(重啟后不再重啟此服務)
[root@centos6 ~]# chkconfig NetworkManager off
重啟NetworkManager服務
[root@centos6 ~]# service NetworkManager restart Stopping NetworkManager daemon:[ OK ] Setting network parameters... [ OK ] Starting NetworkManager daemon:[ OK ]
下次開機自動重啟NetworkManager服務
[root@centos6 ~]# chkconfig NetworkManager on
手動重啟網絡服務
[root@centos6 ~]# service network restart
ifconfig命令
ifconfig是一個用來查看、配置、啟用或禁用Linux內核網絡接口的工具,這個工具極為常用的??梢杂眠@個工具來臨時性的配置網卡的IP地址、掩碼、廣播地址、網關等。也可以把 它寫入一個文件中(比如/etc/rc.d/rc.local),這樣系統引導后,會讀取這個文件,為網卡設置IP地址
注意:用ifconfig命令配置的網卡信息,在網卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
使用格式:
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …
參數:
-a 顯示全部接口信息
[root@centos6 ~]# ifconfig -a
顯示激活狀態的網絡設備信息
第一行:連接類型:Ethernet(以太網)HWaddr(硬件mac地址)。
第二行:網卡的IP地址、子網、掩碼。
第三行:UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500字節。
第四、五行:接收、發送數據包情況統計。 第七行:接收、發送數據字節數統計信息。
-s 顯示摘要信息(類似于 netstat -i)
up 啟動指定網絡設備/網卡
[root@centos6 ~]# ifconfig eth1 up [root@centos6 ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C:29:A5:07:7E inet addr:10.1.249.92 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fea5:77e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:266779 errors:0 dropped:0 overruns:0 frame:0 TX packets:11962 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:24047580 (22.9 MiB) TX bytes:2752964 (2.6 MiB)
down 關閉指定網絡設備/網卡
[root@centos6 ~]# ifconfig eth1 down [root@centos6 ~]# ifconfig loLink encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:32 errors:0 dropped:0 overruns:0 frame:0 TX packets:32 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2250 (2.1 KiB) TX bytes:2250 (2.1 KiB)
[-]arp:啟用或禁用網絡接口的arp協議;
[-]promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包;
[-]allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包;
mtu<字節數N>:設置網卡的MTU最大傳輸單元 (bytes);
dstaddr:設定一個遠端地址,建立點對點通信;
netmask<子網掩碼> 設置網絡設備的子網掩碼;
add:給指定網卡配置IPv6地址;
del:刪除指定網卡的IPv6地址;
tunel<地址>:建立IPv4與IPv6之間隧道通信地址;
-broadcast<地址> 為指定網卡設置廣播協議;即將要送往指定地址的數據包當成廣播數據包來處理;
-pointtopoint<地址> 為網卡設置點對點通訊協議;即與指定地址的網絡設備建立直接連線,此模式具有保密功能;
multicast 為網卡設置組播標志;
txqueuelen<長度> 為網卡設置傳輸列隊的長度;
注意:ifconfig的設置是立生效的
相關讀取設備信息文件
/proc/net/dev
/proc/net/if_inet6
ip命令
ip命令用于顯示/控制路由設備、策略路由和隧道
使用格式:
ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics }
OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -n[etns] name }
OPTIONS選項:
-s,-stats,-statistics 輸出更為詳盡的信息。如果這個選項出現兩次或者多次,輸出的信息將更為詳盡。
-f,-family 這個選項后面接協議種類,包括:inet、inet6或者link,強調使用的協議種類。如果沒有足夠的信息告訴ip使用的協議種類,ip就會使用默認值inet或者any。link比較特殊,它表示不涉及任何網絡協議。
-4 是-family inet的簡寫。
-6 是-family inet6的簡寫。
-B 是-family bridge的簡寫。
-D 是-family decnet的簡寫。
-I 是-family ipx的簡寫。
-0 是-family link的簡寫。
-o,-oneline 對每行記錄都使用單行輸出,回行用字符代替。如果你需要使用wc、grep等工具處理ip的輸出,會用到這個選項。
-r,-resolve 查詢域名解析系統,用獲得的主機名代替主機IP地址。
OBJECT是你要管理或者獲取信息的對象。
目前ip認識的對象包括:
address:一個設備的協議(IP或者IPV6)地址
addrlabel:標簽配置協議地址選擇。
link:網絡設備
maddress:多播地址
mroute:多播路由緩沖區條目
mrule:在多播路由策略規則數據庫。
neighbour:管理ARP或者NDISC緩沖區條目
netns:管理網絡名稱空間。
ntable:管理鄰居緩存的操作。
route:路由表條目
rule:路由策略數據庫中的規則
tunnel:IP上的通道
route命令
route命令用來顯示并設置Linux內核中的網絡路由表,route命令設置的路由主要是靜態路由。通過已用ifconfig(8)程序配置好的接口來指定的主機或網絡設置靜態路由。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位于兩個網絡的網關來實現。 在Linux系統中設置路由通常是為了解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那么就需要將這臺機器的ip地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之后,該路由就失效了;可以在/etc/rc.local中添加route命令來保證該路由設置永久有效。
使用格式:
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route [-V] [–version] [-h] [–help]
選項(OPTIONS):
-A family:用指定的地址類型(族)(如inet',
inet6')。
-F:顯示內核的FIB路由表。其格式可以用-e 和 -ee選項改變。
-C:顯示內核的路由緩存。
-v:選用詳細操作信息模式
-n:不執行DNS反向查找,直接以數字形式IP地址代替解釋主機名形式來顯示地址。此項對試圖檢測對域名服務器進行路由發生故障的原因非常有用。
-e:用netstat(8)的格式來顯示路由表。-ee將產生包括路由表所有參數在內的大量信息。
add:添加指定的路由記錄。
示例:#增加一條到達192.56.76.0的路由。
[root@localhost ~]#route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
del:刪除指定的路由記錄。
[root@localhost ~]#route del -net 224.0.0.0 netmask 240.0.0.0 dev eth0
target:指定目標網絡或主機??梢杂命c分十進制形式的IP地址或主機/網絡名。
-net:路由目標為網絡(即到一個網絡的路由表)。
-host:路由目標為主機(即到一個主機的路由表)。
示例:所有去往192.168.0.2主機的數據包將發往網關地址192.168.0.1
[root@localhost ~]#route add -host 192.168.0.2 gw 192.168.0.1
netmask NM:為添加的路由指定網絡掩碼。
gw GW:為發往目標網絡/主機的任何分組指定網關(即為設置默認網關)。注意:指定的網關首先必須是可達的。也就是說必須為該網關預先指定一條靜態路由。如果你為本地接口之一指定這個網關地址的話,那么此網關地址將用于決定此接口上的分組將如何進行路由。這是BSD風格所兼容的。
示例:添加或刪除默認網關
[root@localhost ~]#route add default gw 192.168.120.240 [root@localhost ~]#route del default gw 192.168.120.240
metric M:把路由表中的路由值字段(由路由進程使用)設為M。
mss M:把基于此路由之上的連接的TCP最大報文段(區塊)長度設為M字節。這通常只用于優化路由設置。默認值為536。
window W:把基于此路由之上的連接的TCP窗口長度設為W字節。這通常只用于AX.25網絡和不能處理背對背形式的幀的設備。
irtt I:把基于此路由之上的TCP連接的初始往返時間設為I毫秒(1-12000)。這通常也只用于AX.25網絡。如果省略此選項,則使用RFC1122的缺省值300ms。
reject:設置一條阻塞路由以使一條路由查找失敗。這用于在使用缺省路由前先屏蔽掉一些網絡。但這并不起到防火墻的作用。
示例:增加或刪除一條屏蔽的路由,目的地址為10.x.x.x將被拒絕或解禁。
[root@localhost ~]#route add -net 10.0.0.0 netmask 255.0.0.0 reject [root@localhost ~]#route del -net 10.0.0.0 netmask 255.0.0.0 reject
mod, dyn, reinstate:設置一條動態的或更改過的路由。這些標志通常只由路由進程來設置。這只用于診斷目的,
dev If:強制使路由與指定的設備關聯,因為否則內核會自己來試圖檢測相應的設備(通常檢查已存在的路由和加入路由的設備的規格)。在多數正常的網絡上無需使用。
如果dev If是命令行上最后一個指定的選項,那么可以省略關鍵字dev,因為它是缺省值。否則路由修改對象(metric – netmask- gw – dev)無關緊要。網絡設置靜態路由。
dev:路由記錄所表示的網絡接口。
顯示本機系統內核靜態路由表
[root@centos6 ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 * 255.255.0.0 U 0 0 0 bond0 link-local * 255.255.0.0 U 1004 0 0 bond0 default 10.1.0.1 0.0.0.0 UG 0 0 0 bond0 [root@centos6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 bond0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 bond0
輸出結構各項含義:
輸出列
Destination:目的地
目的地網絡或目的地主機。
Gateway:網關
網關地址或如果沒有設置則為“*”。
Genmask:子網掩碼
目標網絡的子網掩碼;255.255.255.255的主機目的地和“0.0.0.0”默認路由。
Flags:標志
U(路線)
H(目標是一個主機)
G(使用網關)
R(動態路由恢復路由)
D(動態安裝守護程序或重定向)
(修改路由守護進程或重定向)
(由addrconf安裝)
C(緩存條目)
!(拒絕)
Metric:目標的度量距離(通常為跳數)。它不使用最新的內核,但可能需要通過路由守護進程。
Ref:引用這條路線。(不是在Linux內核中使用。)
使用計數的查找路線。根據使用- f和- c
(- f)或者是路由緩存未擊中(- c)。
Iface:接口來為這條路線將發送數據包。
MSS:超過這條路線海量存儲系統(MSS)中TCP連接的默認最大一段大小。
Window:此路由記錄上TCP連接窗口的默認窗口大小。
irtt 初始RTT(往返時間)。內核使用這種猜測最好的TCP協議參數沒有等待(可能緩慢)的應答。
HH (cached only):ARP緩存條目和路線的數量指的是硬件頭緩存的緩存路線。這將是如果不是硬件地址所需的接口(例如,lo)緩存路線。
Arp (cached only):Arp緩存(唯一的)是否緩存路線的硬件地址是最新的。
相關文件
route命令讀取信息文件
/proc/net/ipv6_route
/proc/net/route
/proc/net/rt_cache
設置route靜態路由表文件
/etc/rc.local或/etc/rc.d/rc.local
注意:
路由分類:
主機路由:精確到每臺機器IP和Mask
例如:目標: 192.168.1.3 網關: 172.16.0.1
# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
網絡路由:記錄網絡路徑(子網網段)
例如:
目標:192.168.0.0 網關: 172.16.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默認路由:0.0.0.0/0 (一般為邊界路由器如互聯網;而且只能是一個出路的路由器才可以)
二:在linux下設置永久路由的方法:
1.在/etc/rc.local里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-routes : (沒有static-routes的話就手動建立一個這樣的文件)
any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
如果在rc.local中添加路由會造成NFS無法自動掛載問題,所以使用static-routes的方法是最好的。
無論重啟系統或重啟網絡:service network restart均可以生效。
這里并沒有錯誤的地方,只不過之前沒有接觸對這些參數沒什么想法,這次正好研究了下,大概了解了下沒個參數的意思。
首先從最簡單的是route add方法:
route add這個是添加路由的命令,這個沒什么好說的,然后是后面的-host和net參數,根據緊跟參數后面的信息可以發現host指的是添加一個主機到路由中,net是添加一個網段到路由中。在后面的參數是dev和gw,字面理解加上后面緊跟的值判斷,dev表示這個host或者這段net走的是那個網口,gw是gateway,自然是通過哪個網關了。對這里為何指定網口或者指定網關都行呢,我的認識是這樣的,網口上配置有網關的信息,指定的網口其實最終還是去讀取這個網口對應的網關信息,等效于指定gw參數。不過指定網口一般是由于有多個網絡環境的情況,如果網口沒有指定網關,會去讀取默認的網關,所以這里一般要求把網口的網關信息配置上去,在linux下很多時候網關信息并不是配置在網口的配置文件,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 文件里面,而是在/etc/sysconfig/network這里面,所以在用dev參數的時候需要小心這點,盡可能通過指定gw的方式。
為什么會介紹到route add方法,因為后面會有用到?,F在回到主題,關于static-routes的設置。網上一般的都是寫著:
any net 192.168.3.0/24 gw 192.168.3.254
設置的都是整個網段的,但如果是單個主機怎么設置呢?同時從廠家那邊給了一個腳本是:
eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x
看上去也很對的樣子,但是執行發現netstat -an里面看不到添加的信息,完全不行。
然后我們在看下static-routes這個文件的作用,
static-routes文件又是什么呢,根據網上的說法,static-routes其實在被network這個腳本調用的,這個文件的放置在/etc/sysconfig目錄下,在network腳本中的位置是打開這個腳本:
/etc/rc.d/init.d/network
里面有寫到:
# Add non interface-specific static-routes. if [ -f /etc/sysconfig/static-routes ]; then grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do /sbin/route add -$args done fi
network在執行的時候到static-routes里面尋找any開頭的行,然后執行
/sbin/route add -$args 相當于手動執行了route add腳本,那后面事情就簡單了,回到了手動執行的方式,根據前面的說明,正確的腳本就是:
any host 10.0.0.10 gw 192.168.1.1
network執行的時候把any去掉,獲取后面的參數:host 10.0.0.10 gw 192.168.1.1
然后執行route add -host 10.0.0.10 gw 192.168.1.1
注意這里host前面的-是network自帶的,不需要配置到static-routes文件中。
解決NFS問題的描述:
按照linux啟動的順序,rc.local里面的內容是在linux所有服務都啟動完畢,最后才被執行的,其中的內容是在netfs之后才被執行的。
即在netfs啟動時,服務器上的靜態路由是沒有被添加的,所以netfs掛載不能成功。
配置動態路由
通過守護進程獲取動態路由
安裝quagga包,支持多種格式的RIP、 OSPF和BGP
命令vtysh配置
經典功能應用效果
網卡別名
對虛擬主機有用(方便移動管理)
將多個IP地址綁定到一個NIC(網卡)上
網卡命名方式為
網卡名:N(數值)
例如
eth0:1
eth0:2
eth0:3
而對應設備接口配置文件格式
ifcfg-ethX:xxx
1、首先要關閉NetworkManager
[root@centos6 ~]# chkconfig NetworkManager off [root@centos6 ~]# service NetworkManager stop Stopping NetworkManager daemon:[ OK ]
2、網卡綁定幾個IP就對應幾個網卡配置(IP)文件
所以可以復制現有配置文件,并按網卡別名格式命名復制的文件
[root@centos6 network-scripts]# cp ifcfg-eth1 ifcfg-eth1:1 [root@centos6 network-scripts]# cp ifcfg-eth1 ifcfg-eth1:2
3、編輯新復制的配置文件
[root@centos6 network-scripts]# vim ifcfg-eth1:1
[root@centos6 network-scripts]# vim ifcfg-eth1:2
注意:我們前文提到過接口配置文件中各選項的含義
在網卡別名文件中我們可以添加下列內容:
#用于網卡別名;當物理網卡啟動網卡別名亦啟動
ONPARENT=yes
4、重啟網絡服務
原文件不需要額外配置
[root@centos6 network-scripts]# service network restart Shutting down interface eth1: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface:[ OK ] Bringing up interface eth1: Determining if ip address 10.1.249.92 is already in use for device eth1... Determining if ip address 10.1.249.100 is already in use for device eth1... Determining if ip address 10.1.249.200 is already in use for device eth1... [ OK ]
這樣我的eth1這一塊網卡就擁有三個固定IP地址了!
而且我們可以將原先的主文件ifcfg-eth1中的固定IP修改成動態獲取IP地址(dhcp模式),這樣此網卡既可以自動獲取IP地址又能擁有固定IP地址,想訪問此機器就有多個IP地址了。
注意:之所以dhcp模式不改在別名網卡文件是因為,網卡別名必須使用靜態聯網(固定IP),所以dhcp模式只能是在主網卡文件中;而且網卡別名的使用是基于物理網卡的,所以物理網卡能夠正常使用,網卡別名才能有效。
參考/usr/share/doc/initscripts-*/sysconfig.txt
多網卡綁定一個IP(提供性能提升、訪問冗余)
CentOS6:用bonding(綁定)實現
CentOS7:用網絡組實現
Bonding
就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。
Bonding的工作模式
Mode 0 (balance-rr)
輪轉( Round-robin)策略:從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯的能力
但是容錯能力并不是很好,甚至沒有
Mode 1 (active-backup)
活動-備份(主備)策略:在綁定中,只有一個slave被激活。
當且僅當活動的slave接口失敗時才會激活其他slave。為了避免交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見
Mode 3 (broadcast)
廣播策略:在所有的slave接口上傳送所有的報文。本模式提供容錯能力。
構建Mdoe 1模式的環境
注意:如果接上文的網卡別名的話,再做此操作需要現將網卡別名接口配置文件都刪除,并重啟網絡服務才可以。
1、首先要關閉NetworkManager
[root@centos6 ~]# chkconfig NetworkManager off [root@centos6 ~]# service NetworkManager stop Stopping NetworkManager daemon:[ OK ]
2、利用虛擬機再添加額外的網卡
3、創建bonding設備的配置文件ifcfg-bond0文件在/etc/sysconfig/network-scripts/目錄下
vim /etc/sysconfig/network-scripts/ifcfg-bond0
注意:BONDING_OPTS= “miimon=100 mode=1”
miimon=100:表示每100ms輔助網卡就要檢測主網卡是否正常
如果不正常,mode1的輔助網卡就會接替主網卡工作
mode=1:表示此bond模式為mode 1
4、配置物理網卡接口配置文件
注意:添加網卡后要留意網卡的設備名稱,即進行第2部操作時留意名稱,并在配置和創建物理網卡配置文件時,命名正確
SLAVE=yes:是否是輔助網卡
MASTER=bond0:指定主網卡
5、重啟網絡服務
[root@centos6 network-scripts]# service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface:[ OK ] Bringing up interface bond0: Determining if ip address 10.1.249.250 is already in use for device bond0... [ OK ]
6、查看網卡狀態
查看/proc/net/bonding/bond0文件
[root@centos6 ~]# cat /proc/net/bonding/bond0
7、測試
完成了切換的瞬間有個丟包然后切換完成,又能ping通了
3、路由實驗
1、首先要關閉NetworkManager
[root@centos6 ~]# chkconfig NetworkManager off [root@centos6 ~]# service NetworkManager stop Stopping NetworkManager daemon:[ OK ]
2、配置兩個虛擬機R1和R2的網卡
R1
[root@centos6 network-scripts]# vim ifcfg-eth0
[root@centos6 network-scripts]# vim ifcfg-eth1
R2
[root@centos6 network-scripts]# vim ifcfg-eth0
[root@centos6 network-scripts]# vim ifcfg-eth1
3、重啟網絡服務
4、添加路由
R1
[root@centos6 ~]#route add -net 172.16.0.0/16 gw 10.0.0.2 dev eth1
R2
[root@centos6 network-scripts]# route add -net 192.168.0.0/24 gw 10.0.0.1 dev eth1
5、linux臨時開啟路由器功能
將/proc/sys/net/ipv4/ip_forward文件中的值改為1
[root@centos6 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward
6、臨時關閉防火墻
[root@centos6 ~]#iptables -F
7、在本地計算機物理網卡配置192.168.0.100
再開一個虛擬機模擬172.16.0.200
并配置它們的網關
一、作業:
1、某公司申請到一個C 類IP 地址,但要連接6 個的子公司,最大的一個子 公司有26
臺計算機,每個子公司在一個網段中,則子網掩碼應設為?
按照C類網絡定義為
前三段為網絡號,最后一段為主機號
網絡號:110 0 0000-110 1 1111
:192-223
網絡數量:2^21
每個網絡中的主機數量:2^8-2=254
默認子網掩碼:255.255.255.0 或者 /24
若連接6個子公司則相當于劃分6個子網
則網絡位要向主機位借3位(2^3=8>=6)
主機位剩余5位則主機數為2^5-2=30>26最大子公司計算機數量因而滿足需求
所以網絡位多了三位,主機位少了三位
則子網掩碼應為255.255.255.224
2、一家集團公司有12家子公司,每家子公司又有4個部門。上級給出一個172.16.0.0/16的網段,讓給每家子公司以及子公司的部門分配網段。
172.16.0.0/16為B類網段
網絡位為前2位,后2位為主機位
由于有12家子公司同時每個子公司又有4個部門
則先將172.16.0.0/16 分成12個子網
網絡位需要向子網借4位(2^4=16>=12)
網絡位變為20位(/20)
子公司子網掩碼變為255.255.240.0
則這12個子網的
網段分別為
172.16.0.1-172.16.15.254
172.16.16.1-172.16.31.254
172.16.32.1-172.16.47.254
172.16.48.1-172.16.63.254
172.16.64.1-172.16.79.254
172.16.80.1-172.16.95.254
172.16.96.1-172.16.111.254
172.16.112.1-172.16.127.254
172.16.128.1-172.16.143.254
172.16.144.1-172.16.159.254
172.16.160.1-172.16.175.254
172.16.176.1-172.16.191.254
…
每個子公司四個部門相當于每個子公司又各自分4個子網
網絡位再向主機位借2位(2^2=4)
則網絡位為22位
部門子網掩碼:255.255.252.0
第一子公司4個部門
172.16.0.1-172.16.3.254
172.16.4.1-172.16.7.254
172.16.8.1-172.16.11.254
172.16.12.1-172.16.15.254
第二子公司4個部門
172.16.16.1-172.16.19.254
172.16.20.1-172.16.23.254
172.16.24.1-172.16.27.254
172.16.28.1-172.16.31.254
…
第十二子公司4個部門
172.16.176.1-172.16.179.254
172.16.180.1-172.16.183.254
172.16.184.1-172.16.187.254
172.16.188.1-172.16.191.254
3、某集團公司給下屬子公司甲分配了一段IP地址192.168.5.0/24,現在甲公司有兩層辦公樓(1樓和2樓),統一從1樓的路由器上公網。1樓有100臺電腦聯網,2樓有53臺電腦聯網。如果你是該公司的網管,你該怎么去規劃這個IP?
192.168.5.0/24為C類網段的地址
最大主機數量2^8-2=254臺機器
若單一路由器則可以劃分兩個子網
網絡位借主機位 1位
最大主機數量2^7-2=126
子網網段如下圖
192.168.5.2/25-192.168.5.127/25
192.168.5.129/25-192.168.5.254/25
若分成3個子網則
網絡位需要向主機位借2位(2^2=4>3)
則分成4個子網每個子網主機個數:2^6-2=62
則1樓100臺機器需要分成兩個子網,2樓一個子網,剩余一個子網
理論上來說分成2個子網網段即可,但是在實際生產環境下,還是推薦三個網段,通過劃分vlan等手段可以使個網段正常訪問,而且各網段仍然有剩余地址可以為之后使用提供,而多出來的網段則可以留作預留,比如給后來新增設的部門,而如果只分兩個網段,則沒有這種預留備份的效果,靈活性大大折扣了
所以綜上所述推薦分4個網段的方案
原創文章,作者:NameLess,如若轉載,請注明出處:http://www.www58058.com/44164
內容全面,圖文并茂。贊一個