linux系統網絡配置基礎

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:指定目標網絡或主機。可以用點分十進制形式的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方法,因爲後面會有用到。現在回到主題,關於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

wKioL1fOykzB9SZ4AAA3tfHLvlA033.png

若分成3個子網則

網絡位需要向主機位借2位(2^2=4>3)

則分成4個子網每個子網主機個數:2^6-2=62

則1樓100臺機器需要分成兩個子網,2樓一個子網,剩餘一個子網

wKiom1fOyl2gUcONAAA9JMbzgkg611.png

理論上來說分成2個子網網段即可,但是在實際生產環境下,還是推薦三個網段,通過劃分vlan等手段可以使個網段正常訪問,而且各網段仍然有剩餘地址可以爲之後使用提供,而多出來的網段則可以留作預留,比如給後來新增設的部門,而如果只分兩個網段,則沒有這種預留備份的效果,靈活性大大折扣了

所以綜上所述推薦分4個網段的方案

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章