網絡基礎與配置管理


網絡基礎

網絡概述

計算機網絡簡介

  計算機網絡是指地理位置不同的具有獨立功能的多台計算機及其外部設備。通過通信線路連接起來,在網絡操作系統,網絡管理軟件及網絡通信協議的管理協調下,實現資源共享和信息傳遞的計算機系統。

網絡分類

按作用范圍分類:

局域網

  局部范圍內的網絡,覆蓋范圍較小,特點是:連接范圍窄,用戶數量少,配置容易,鏈接速率高

城域網

  同一城市,不同地理位置范圍的計算機互聯,連接距離在10-100公里,采用IEEE802.6標准

廣域網

  不同城市或地區之間的互聯,范圍在幾百到幾千公里,

OSI模型

OSI模型的七層結構

應用層

  應用程序/原始數據

  應用層(Application Layer)提供為應用軟件而設的接口,以設置與另一應用軟件之間的通信。例如: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

表示層

  格式 / 壓縮 / 加密 數據

  表示層(Presentation Layer)把數據轉換為能與接收者的系統格式兼容並適合傳輸的格式

會話層

  身份信息 / 全雙工/半雙工

  會話層(Session Layer)負責在數據傳輸中設置和維護電腦網絡中兩台電腦之間的通信連接。

傳輸層

  數據分段/重組/端口號 保證數據安全性,傳輸效率

  傳輸層(Transport Layer)把傳輸表頭(TH)加至數據以形成數據包。傳輸表頭包含了所使用的協議 等發送信息。例如:傳輸控制協議(TCP)等。

網絡層

  IP地址 尋址/路由 總目標/全球尋址

  網絡層(Network Layer)決定數據的路徑選擇和轉寄,將網絡表頭(NH)加至數據包,以形成報文。 網絡表頭包含了網絡數據。例如:互聯網協議(IP)等。

數據鏈路層

  mac地址/局域網

  數據鏈路層(Data Link Layer)負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至數據包時,會形 成信息框(Data Frame)。數據鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數據鏈 表尾(DLT)是一串指示數據包末端的字符串。例如以太網、無線局域網(Wi-Fi)和通用分組無線服務 (GPRS)等。分為兩個子層:邏輯鏈路控制(logical link control,LLC)子層和介質訪問控制 (Media access control,MAC)子層

物理層

  傳輸介質

  物理層(Physical Layer)在局部局域網上傳送數據幀(Data Frame),它負責管理電腦通信設備和網 絡媒體之間的互通。包括了針腳、電壓、線纜規范、集線器、中繼器、網卡、主機接口卡等

協議數據單元PDU

PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位

  物理層的 PDU是數據位 bit

  數據鏈路層的 PDU是數據幀 frame

  網絡層的PDU是數據包 packet

  傳輸層的 PDU是數據段 segment

  其他更高層次的PDU是消息 message

TCP/IP協議

TCP/IP介紹

  Transmission Control Protocol/Internet Protocol 傳輸控制協議/因特網互聯協議

  TCP/IP是一個Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等許多協議

TCP/IP分層

TCP/IP官方定義為四層結構

  網絡接口層:公網到達局域網后需要轉化為對應的MAC地址。交換機解析判斷數據要發給MAC地址對應的哪台電腦。使用的是arp協議。

  網際互聯層:網際協議(IP)、互聯網組管理協議(IGMP)、互聯網控制報文協議(ICMP)(ping的協議)

  傳輸層:傳輸控制協議(TCP)(可靠的)、用戶數據包協議(UDP)(不可靠的)

  應用層:應用層負責處理應用程序的邏輯。

OSI和TCP/IP:

image

TCP/IP五層參考模型

image

五層模型中將網絡接口層又細化為物理層和數據鏈路層

  數據鏈路層(Data Link Layer)負責網絡尋址、錯誤偵測和改錯

  物理層(Physical Layer)在局部局域網上傳送數據幀(Data Frame),它負責管理電腦通信設備和網 絡媒體之間的互通

  1. TCP/IP和OSI模型

    相同點

      兩者都是以協議棧的概念為基礎

      協議棧中的協議彼此相互獨立

      下層對上層提供服務

    不同點

      OSI是先有模型;TCP/IP是先有協議,后有模型

      OSI是國際標准,適用於各種協議棧;TCP/IP實際標准,只適用於TCP/IP網絡

      層次數量不同

  2. 網絡連接的建立和斷開

    a) 網絡連接建立時的三次握手

image

  第一次握手:建立連接時,客戶端發送syn包(syn=x)到服務器,並進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。

  第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=x+1),同時自己也發送一個SYN包(syn=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

  第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=y+1),此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手。

b) 網絡連接斷開時的四次揮手

image

  1)客戶端進程發出連接釋放報文,並且停止發送數據。釋放數據報文首部,FIN=1,其序列號為seq=u(等於前面已經傳送過來的數據的最后一個字節的序號加1),此時,客戶端進入FIN-WAIT-1(終止等待1)狀態。

  2)服務器收到連接釋放報文,發出確認報文,ACK=1,ack=u+1,並且帶上自己的序列號seq=v,此時,服務端就進入了CLOSE-WAIT(關閉等待)狀態。TCP服務器通知高層的應用進程,客戶端向服務器的方向就釋放了,這時候處於半關閉狀態,即客戶端已經沒有數據要發送了,但是服務器若發送數據,客戶端依然要接受。這個狀態還要持續一段時間,也就是整個CLOSE-WAIT狀態持續的時間。

  3)客戶端收到服務器的確認請求后,此時,客戶端就進入FIN-WAIT-2(終止等待2)狀態,等待服務器發送連接釋放報文(在這之前還需要接受服務器發送的最后的數據)。

  4)服務器將最后的數據發送完畢后,就向客戶端發送連接釋放報文,FIN=1,ack=u+1,由於在半關閉狀態,服務器很可能又發送了一些數據,假定此時的序列號為seq=w,此時,服務器就進入了LAST-ACK(最后確認)狀態,等待客戶端的確認。

  5)客戶端收到服務器的連接釋放報文后,必須發出確認,ACK=1,ack=w+1,而自己的序列號是seq=u+1,此時,客戶端就進入了TIME-WAIT(時間等待)狀態。注意此時TCP連接還沒有釋放,必須經過2∗∗MSL(最長報文段壽命)的時間后,當客戶端撤銷相應的TCB后,才進入CLOSED狀態。

  6)服務器只要收到了客戶端發出的確認,立即進入CLOSED狀態。同樣,撤銷TCB后,就結束了這次的TCP連接。可以看到,服務器結束TCP連接的時間要比客戶端早一些。

transport 層

a) TCP
  傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議

i. TCP特性

  工作在傳輸層

  面向連接協議

  全雙工協議

  半關閉

  錯誤檢查

  將數據打包成段,排序

  確認機制

  數據恢復,重傳

  流量控制,滑動窗口

  擁塞控制,慢啟動和擁塞避免算法

b) UDP
  Internet 協議集支持一個無連接的傳輸協議,該協議稱為用戶數據包協議(UDP,User Datagram Protocol)。UDP 為應用程序提供了一種無需建立連接就可以發送封裝的 IP 數據包的方法。
i. UDP特性

  工作在傳輸層

  提供不可靠的網絡訪問

  非面向連接協議

  有限的錯誤檢查

  傳輸性能高

  無數據恢復特性

TCP和UDP比較

  TCP的優點: 可靠,穩定 TCP的可靠體現在TCP在傳遞數據之前,會有三次握手來建立連接,而且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完后,斷開連接用來節約系統資源。

  TCP的缺點: 慢,效率低,占用系統資源高,易被攻擊

  UDP的優點: 快,比TCP稍安全 UDP沒有TCP的握手、確認、窗口、重傳、擁塞控制等機制,UDP是一個無狀態的傳輸協議,所以它在傳遞數據時非常快。

  UDP的缺點: 不可靠,不穩定 因為UDP沒有TCP那些可靠的機制,在數據傳遞時,如果網絡質量不好,就會很容易丟包。

區別:

  1.基於連接與無連接;

  2.對系統資源的要求(TCP較多,UDP少);

  3.UDP程序結構較簡單;

  4.流模式與數據報模式 ;

  5.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。

IP地址

a) IP地址的組成

IP地址組成

  它們可唯一標識 IP 網絡中的每台設備 ,每台主機(計算機、網絡設備、外圍設備)必須具有唯一的地

IP地址由兩部分組成

  網絡 ID:標識網絡,每個網段分配一個網絡ID,處於高位

  主機 ID:標識單個主機,由組織分配給各設備,處於低位

b) IP地址分類

IP地址分類

A類:

  0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z

   網絡ID位是最高8位,主機ID是24位低位

  網絡數:126=2^7(可變是的網絡ID位數)-2
  每個網絡中的主機數:2^24-2=16777214

   默認子網掩碼:255.0.0.0

   私網地址:10.0.0.0

B類:

  10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
  網絡ID位是最高16位,主機ID是16位低位
  網絡數:2^14=16384
  每個網絡中的主機數:2^16-2=65534
  默認子網掩碼:255.255.0.0
  私網地址:172.16.0.0-172.31.0.0

C類:

   110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z

  網絡ID位是最高24位,主機ID是8位低位

   網絡數:2^21=2097152

   每個網絡中的主機數:2^8-2=254

   默認子網掩碼:255.255.255.0

   私網地址:192.168.0.0-192.168.255.0

  D類:組(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z

  E類:保留未使用,240-255

公共和私有IP地址

  私有IP地址:不直接用於互聯網,通常在局域網中使用

  A類:10.0.0.0-10.255.255.255

  B類:172.16.0.0-172.31.255.255.255

  C類:192.168.0.0-192.468.255.255

公共IP地址:互聯網上設備擁有的唯一地址

  A類:1.0.0.0-9.255.255.255 11.0.0.0-126.255.255.255

  B類:128.0.0.0-172.15.255.255.255 172.32.0.0-191.255.255.255

  C類:192.0.0.0-192.167.255.255 192.169.0.0-223.255.255.255

特殊地址

  0.0.0.0

  0.0.0.0不是一個真正意義上的IP地址。它表示所有不清楚的主機和目的網絡

  255.255.255.255

  限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機

  127.0.0.1~127.255.255.254

  本機回環地址,主要用於測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的 數據包

  224.0.0.0到239.255.255.255

  組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用於一些特定的程序以及多媒體程序

  169.254.x.x 如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址

子網掩碼

  CIDR:無類域間路由,目前的網絡已不再按A,B,C類划分網段,可以任意指定網段的范圍

  CIDR 無類域間路由表示法:IP/網絡ID位數,如:172.16.0.100/16

  netmask子網掩碼:32位或128位(IPv6)的數字,和IP成對使用,用來確認IP地址中的網絡ID和主機

  ID,對應網絡ID的位為1,對應主機ID的位為0,范例:255.255.255.0 ,表現為連續的高位為1,連續的低位為0

相關公式:

  一個網絡的最多的主機數=2^主機ID位數-2

  網絡(段)數=2^網絡ID中可變的位數

  網絡ID=IP與netmask

  判斷對方主機是否在同一個網段:

  用自已的子網掩碼分別和自已的IP及對方的IP相與,比較結果,相同則同一網絡,不同則不同網段

網絡配置管理

基本網絡配置

將Linux主機接入到網絡,需要配置網絡相關設置

一般包括如下內容:

  主機名

  IP/netmask

  路由:默認網關

  DNS服務器

  主DNS服務器

  次DNS服務器

  第三個DNS服務器

網絡配置命令

網絡配置方式

  靜態指定:

  ifconfig, route, netstat

  ip: object {link, addr, route}, ss, tc

  system-config-network-tui,setup

  nmcli工具

  配置文件

  動態分配:DHCP: Dynamic Host Configuration Protocol

多網卡 bonding

a) 介紹

  將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。直接給兩塊網卡設置同一IP 地址是不可以的。通過 bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址

b) 工作模式

  bond聚合鏈路模式共7種模式:0-6 Mode

  mod=0 ,即:(balance-rr) Round-robin policy(輪詢)聚合口數據報文按包輪詢從物理接口轉發。

  負載均衡—所有鏈路處於負載均衡狀態,輪詢方式往每條鏈路發送報文這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。

  性能問題—一個連接或者會話的數據包如果從不同的接口發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現數據包無序到達的問題,而無序到達的數據包需要重新要求被發送,這樣網絡的吞吐量就會下降。Bond0在大壓力的網絡傳輸下,性能增長的並不是很理想。需要交換機進行端口綁定

  mod=1,即: (active-backup) Active-backup policy(主-備份策略)只有Active狀態的物理接口才轉發數據報文。

  容錯能力—只有一個slave是激活的(active)。也就是說同一時刻只有一個網卡處於工作狀態,其他的slave都處於備份狀態,只有在當前激活的slave故障后才有可能會變為激活的(active)。

  無負載均衡—此算法的優點是可以提供高網絡連接的可用性,但是它的資源利用率較低,只有一個接口處於工作狀態,在有 N 個網絡接口的情況下,資源利用率為1/N。

  mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口數據報文按源目MAC、源目IP、源目端口進行異或HASH運算得到一個值,根據該值查找接口轉發數據報文

  負載均衡—基於指定的傳輸HASH策略傳輸數據包。

  容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。

  性能問題—該模式將限定流量,以保證到達特定對端的流量總是從同一個接口上發出。既然目的地是通過MAC地址來決定的,因此該模式在“本地”網絡配置下可以工作得很好。如果所有流量是通過單個路由器,由於只有一個網關,源和目標mac都固定了,那么這個算法算出的線路就一直是同一條,那么這種模式就沒有多少意義了。需要交換機配置為port channel

  mod=3,即:broadcast(廣播策略)這種模式的特點是一個報文會復制兩份往bond下的兩個接口分別發送出去,當有對端交換機失效,感覺不到任何downtime,但此法過於浪費資源;不過這種模式有很好的容錯機制。此模式適用於金融行業,因為他們需要高可靠性的網絡,不允許出現任何問題。

  mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動態鏈接聚合)

  在動態聚合模式下,聚合組內的成員端口上均啟用LACP(鏈路匯聚控制協議)協議,其端口狀態通過該協議自動進行維護。

  負載均衡—基於指定的傳輸HASH策略傳輸數據包。默認算法與blance-xor一樣。

  容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。對比blance-xor,這種模式定期發送LACPDU報文維護鏈路聚合狀態,保證鏈路質量。需要交換機支持LACP協議

  mod=5,即:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡)

  在每個物理接口上根據當前的負載(根據速度計算)分配外出流量。如果正在接收數據的物理接口口出故障了,另一個物理接口接管該故障物理口的MAC地址。需要ethtool支持獲取每個slave的速率

  mod=6,即:(balance-alb) Adaptive load balancing(適配器適應性負載均該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡,而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬件地址改寫為bond中某個物理接口的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。

  mod=6與mod=0的區別:mod=6,先把eth0流量占滿,再占eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬。而mod=6,會發現第一個口流量很高,第2個口只占了小部分流量

說明:

  常用的模式為 0,1,3,6

  mode 1、5、6 不需要交換機設置

  mode 0、2、3、4需要交換機設置

  active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。其他綁定模式需要配置交換機以便整合鏈接。如:Cisco 交換機需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel

c) 實現網卡綁定

1.通過修改配置文件實現
[root@centos8 network-scripts]# cat ifcfg-bond-slave-eth1
TYPE=Ethernet
NAME=bond-slave-eth1
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@centos8 network-scripts]# cat ifcfg-bond-slave-eth2
TYPE=Ethernet
NAME=bond-slave-eth2
DEVICE=eth2
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@centos8 network-scripts]# cat ifcfg-bond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=24
NAME=bond0
DEVICE=bond0
ONBOOT=yes


2.通過命令實現
[root@centos8 network-scripts]# nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24
Connection 'bond0' (f2b0871f-d06c-4284-8523-de7d243b20e0) successfully added.
[root@centos8 network-scripts]# nmcli connection add type bond-slave con-name bond-slave-eth1 ifname eth1 master bond0
Connection 'bond-slave-eth1' (0f3341e7-4004-4e9d-b1b1-02d9f2a10647) successfully added.
[root@centos8 network-scripts]# nmcli connection add type bond-slave con-name bond-slave-eth2 ifname eth2 master bond0
Connection 'bond-slave-eth2' (1402008f-6922-41c1-8579-c99380143af7) successfully added.
[root@centos8 network-scripts]# nmcli connection up bond-slave-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@centos8 network-scripts]# nmcli connection up bond-slave-eth2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@centos8 network-scripts]# nmcli connection up bond0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
[root@centos8 network-scripts]# nmcli connection show 
NAME             UUID                                  TYPE      DEVICE 
eth0             0449763a-c2dd-4723-b905-551f4820fd9f  ethernet  eth0   
bond0            f2b0871f-d06c-4284-8523-de7d243b20e0  bond      bond0  
bond-slave-eth1  0f3341e7-4004-4e9d-b1b1-02d9f2a10647  ethernet  eth1   
bond-slave-eth2  1402008f-6922-41c1-8579-c99380143af7  ethernet  eth2 

網絡組 Network Teaming

網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
網絡組不同於舊版中bonding技術,提供更好的性能和擴展性
網絡組由內核驅動和teamd守護進程實現
  多種方式 runner
  broadcast
  roundrobin
  activebackup
  loadbalance
  lacp (implements the 802.3ad Link Aggregation Control Protocol)
網絡組特點
  啟動網絡組接口不會自動啟動網絡組中的port接口
  啟動網絡組接口中的port接口總會自動啟動網絡組接口
  禁用網絡組接口會自動禁用網絡組中的port接口
  沒有port接口的網絡組接口可以啟動靜態IP連接
  啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入

網絡組的實現

2.通過修改配置文件實現
vim /etc/sysconfig/network-scripts/ifcfg-team0 
DEVICE=team0 
DEVICETYPE=Team 
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}" 
BOOTPROTO=none 
IPADDR0=192.168.1.100
PREFIX0=24 
NAME=team0 
ONBOOT=yes 

vim /etc/sysconfig/network-scripts/ifcfg-team0-eth1 
DEVICE=eth1 
DEVICETYPE=TeamPort 
TEAM_MASTER=team0 
NAME=team0-eth1 
ONBOOT=yes 

vim /etc/sysconfig/network-scripts/ifcfg-team0-eth2
DEVICE=eth2 
DEVICETYPE=TeamPort 
TEAM_MASTER=team0 
NAME=team0-eth2 
ONBOOT=yes 

2.通過命令實現
[root@centos8 network-scripts]# nmcli con add type team con-name myteam0 ifname team0 config  '{"runner": {"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual 
Connection 'myteam0' (0453a021-da6d-4508-b232-656ab908d759) successfully added.
[root@centos8 network-scripts]# nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0 
Connection 'team0-eth1' (17fd3af6-c02a-4261-bcd2-5a6b32d2d434) successfully added.
[root@centos8 network-scripts]# nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0 
Connection 'team0-eth2' (19e7c7ae-d028-470a-8204-35e4adc43912) successfully added.
[root@centos8 network-scripts]# nmcli con up team0-eth1 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
[root@centos8 network-scripts]# nmcli con up team0-eth2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)
[root@centos8 network-scripts]# nmcli con up myteam0 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/17)
[root@centos8 network-scripts]# nmcli connection show 
NAME        UUID                                  TYPE      DEVICE 
eth0        0449763a-c2dd-4723-b905-551f4820fd9f  ethernet  eth0   
myteam0     0453a021-da6d-4508-b232-656ab908d759  team      team0  
team0-eth1  17fd3af6-c02a-4261-bcd2-5a6b32d2d434  ethernet  eth1   
team0-eth2  19e7c7ae-d028-470a-8204-35e4adc43912  ethernet  eth2 

網橋

a) 介紹

  橋接:把一台機器上的若干個網絡接口“連接”起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。網橋就是這樣一個設備,它有若干個網口,並且這些網口是橋接起來的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。

b) 實現網橋

通過命令工具實現網橋
[root@centos8 network-scripts]# nmcli con add con-name br0 type bridge ifname br0
[root@centos8 network-scripts]# nmcli con  modify br0 ipv4.addresses 10.0.0.100/24 ipv4.method manual
[root@centos8 network-scripts]# nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
[root@centos8 network-scripts]# nmcli con add type bridge-slave con-name br0-port2 ifname eth2 master br0
[root@centos8 network-scripts]# nmcli con up br0-port1
[root@centos8 network-scripts]# nmcli con up br0-port2
[root@centos8 network-scripts]# nmcli con up br0
[root@centos8 network-scripts]# nmcli connection show 
NAME       UUID                                  TYPE      DEVICE 
eth0       0449763a-c2dd-4723-b905-551f4820fd9f  ethernet  eth0   
br0        7522f22d-5f3b-4261-ae45-99ee01feeeb5  bridge    br0    
br0-port1  d4a79f14-165e-41fb-ade8-1620d15a1a04  ethernet  eth1   
br0-port2  e62e143f-3ed1-41ca-847e-ef046fdd4289  ethernet  eth2

Ubuntu網絡配置

  網卡配置文件采用YAML格式,必須以 /etc/netplan/XXX.yaml 文件命名方式存放,可以每個網卡對應一個單獨的配置文件,也可以將所有網卡都放在一個配置文件里

  注:yaml語言格式要求嚴格

查看配置文件
root@ubuntu18:~# cat /etc/netplan/01-netcfg.yaml 
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses: [10.0.0.118/24]
      gateway4: 10.0.0.2
      nameservers:
              addresses: [8.8.8.8,10.0.0.2]

通過配置文件實現網卡綁定

root@ubuntu1804:~# vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
   eth0:
 dhcp4: no
     dhcp6: no
   eth1:
     dhcp4: no
     dhcp6: no
 bonds:
   bond0:
     interfaces:
        - eth1
        - eth2
     addresses: [192.168.0.100/24]
     gateway4: 192.168.0.2
     nameservers:
       addresses: [8.8.8.8]
     parameters:
       mode: active-backup
       mii-monitor-interval: 100

實現橋接

root@ubuntu18:~# cat /etc/netplan/br0.yaml 
network:
 version: 2
 renderer: networkd
 ethernets:
   ens37:
     dhcp4: no
   ens38:
     dhcp4: no     
 bridges:
   br0:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.0.100/24]
     gateway4: 192.168.0.2
     nameservers:
       addresses: [8.8.8.8]
     interfaces:
      - ens37
      - ens38
root@ubuntu18:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:be brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.118/24 brd 10.0.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec9:82be/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:c8 brd ff:ff:ff:ff:ff:ff
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:d2 brd ff:ff:ff:ff:ff:ff
5: ens39: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:c9:82:dc brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e6:01:04:b7:19:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::e401:4ff:feb7:192e/64 scope link 
       valid_lft forever preferred_lft forever

多網卡橋接

root@ubuntu1804:~#vim   /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
 version: 2
 renderer: networkd
 ethernets:
   ens37:
     dhcp4: no
   ens38:
     dhcp4: no 
 bridges:
   br0:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.0.100/24]
     gateway4: 192.168.0.2
     nameservers:
       addresses: [8.8.8.8]
     interfaces:
       - ens37
   br1:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.0.101/16]
     interfaces:
       - ens38
       
       
root@ubuntu18:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:be brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.118/24 brd 10.0.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec9:82be/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:c8 brd ff:ff:ff:ff:ff:ff
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br1 state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:d2 brd ff:ff:ff:ff:ff:ff
5: ens39: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:c9:82:dc brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e6:01:04:b7:19:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::e401:4ff:feb7:192e/64 scope link 
       valid_lft forever preferred_lft forever
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:38:85:cd:81:93 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.101/16 brd 192.168.255.255 scope global br1
       valid_lft forever preferred_lft forever
    inet6 fe80::5038:85ff:fecd:8193/64 scope link 
       valid_lft forever preferred_lft forever

多組綁定+多組橋接

network:
 version: 2
 renderer: networkd
 ethernets:
   ens37:
     dhcp4: no
     dhcp6: no
   ens38:
     dhcp4: no
     dhcp6: no
   ens39:
     dhcp4: no
     dhcp6: no
 bonds:
   bond0:
     interfaces:
        - ens37
        - ens38
     parameters:
       mode: active-backup
       mii-monitor-interval: 100
   bond1:
     interfaces:
        - ens39
     parameters:
       mode: active-backup
       mii-monitor-interval: 100
 bridges:
   br0:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.0.100/24]
     gateway4: 192.168.0.2
     nameservers:
       addresses: [8.8.8.8]
     interfaces:
        - bond0
   br1:
     dhcp4: no
     dhcp6: no
     interfaces:
        - bond1
     addresses: [192.168.0.101/24]

root@ubuntu18:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:c9:82:be brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.118/24 brd 10.0.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec9:82be/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 22:ae:d9:6b:1a:e2 brd ff:ff:ff:ff:ff:ff
4: ens38: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 22:ae:d9:6b:1a:e2 brd ff:ff:ff:ff:ff:ff
5: ens39: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond1 state UP group default qlen 1000
    link/ether 0a:fb:72:fe:b4:71 brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e6:01:04:b7:19:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::e401:4ff:feb7:192e/64 scope link 
       valid_lft forever preferred_lft forever
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:38:85:cd:81:93 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.101/24 brd 192.168.0.255 scope global br1
       valid_lft forever preferred_lft forever
    inet6 fe80::5038:85ff:fecd:8193/64 scope link 
       valid_lft forever preferred_lft forever
8: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br1 state UP group default qlen 1000
    link/ether 0a:fb:72:fe:b4:71 brd ff:ff:ff:ff:ff:ff
9: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether 22:ae:d9:6b:1a:e2 brd ff:ff:ff:ff:ff:ff


免責聲明!

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



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