今日內容:
1,特殊ip地址
2,子網划分(借網絡位給主機位用)、
3,vlan(一種基於端口的,一個基於標簽的)
4,實際部位
4.1 修改網卡名
4.2 網卡的丟包問題以及如何解決
4.3 網卡的詳細信息
4.4 路由配置
一,特殊的ip地址
.0 代表本網段的網絡地址。
.1 代表本網段網關的網絡地。
.255 代表本網段的廣播地址。
255.255.255.255 代表全網廣播地址。
lo 代表本地回環地址。
lo:就是把一個數據包從應用層,層層包裝,到物理層打散成二進制位,到網卡,沒有從網卡往外送,直接又一次次解到應用層,沒有走到交換機,發包解包都是網絡網卡完成的
lo:這個地址不光開發要用,運維人員也要用,作用就是,它直接杜絕了網絡對你的影響,無論開發cs架構還是bs架構,它都是基於網絡通信的軟件,一端是客戶端,一端是服務端,一端發包一端收包,一定會涉及到網絡的問題,那么如果一個軟件出現了問題,可能是軟件的問題,也可能是網絡環境出現的問題,所以第一步應該先定位軟件問題,看看是網絡環境問題,還是軟件的問題,這時候就使用ol地址,先在本地回環,如果沒問題,就證明軟件本身沒有問題,那么發包的ip是ol地址,如127.0.0.1 收包也是ol地址,127.0.0.1那么如何不沖突?首先想要寄快遞(發包),需要知道對方在哪,就需要知道對方的ip地址,mak地址(可以忽略,因為arp協議可以幫助拿到),還有端口號,這三個,其實只需要ip和端口號,就可以標識全世界獨一無二的一個軟件,有了這個地址,就可以把數據送給對方,現在本地回環,ip地址都是ol,127.0.0.1,如何做到不沖突,就是設定他們不同的端口號,這樣就可以互相通信地址還不沖突,做到都是獨一無二的。
lo地址,除了開發要使用,運維也要使用,比如部署一個很龐大的集群架構,先在自己的機器上部署,假如涉及大量的軟件,就要一邊搭一邊修改配置文件,軟件之間要互相找到,這時候如果基於tcp協議的時候,服務端要先啟動,服務端應該綁定一個ip和端口,如使用ol,127.0.0.1加個端口號,先在本機把各個軟件組件部署完之后,先保證軟件可以運行,證明自己的配置文件沒有問題。有可能部署軟件涉及7個組件,再把組件在一台機器上部署完,它能跑起來,證明自己的配置文件沒有問題。接下來有可能這7個組件,要配置到7個機器上,把7個組件分到7個機器上運行,無非就是把ip地址改改就行,這個時候再出問題,就是網絡出現的問題。就可以准確排錯,不然出現問題,有可能是配置文件有問題,也有可能是網絡有問題,很難知道到底是怎么出錯。所以部署集群,先在本機部署一下。
在公司部署軟件的時候
1,是通過rpm安裝,相當於一個安裝程序,定制好了安裝配置,版本通常比較老
2,yum安裝,需要解決一個依賴性問題,要對應一個yum倉庫。yum源需要自定義,現在都是用阿里雲,華為雲,但是在公司不應該用這些,運維圖穩,不圖軟件最新,不是致命漏洞,不要升級。在公司里,假如需要部署一個軟件,先在一台機器自己部署一下,首先拿到一個鏡像,然后用鏡像安裝操作系統,在剛安裝完操作系統就應該打開yum緩存,然后配好阿里雲,華為雲,然后更新內核,然后部署龐大的集群架構,用yum安裝,直到本地存了一份最完整的rpm包,依賴性都解決了,把這些rpm包放到一個目錄里面,做成一個yum源,找一個機器,可以是管理機,把yum源放上去,配了一個自己的yum源,好處就是其他機器再下載軟件包,就不需要去網上下載了。以后在線上部署,使用的rpm包都用自己本地的。每台機器使用的軟件包都是一模一樣,就不會出現亂七八糟的各種問題。阿里源和華為源也是如此。
總結:由本地回環講到架構思想,先在本機部署,把該准備好的軟件包,配置文件准備好,調試好,然后到集群部署時,不要再手動部署,全都用本地的准備好的配置文件復制粘貼。不要上來就集群架構部署,先在本機全部部署完,再慢慢向其他延伸。但是如果是比較簡單的組件,就客戶端,服務端,就不需要這么復雜。
3,源碼安裝,自己定制化,要安裝最新,用源碼安裝。
私有地址:
1,10.0.0.0~10.255.255.255 表示一個A類地址
2,172.16.0.0~172.31.255.255 表示B類地址 公司選擇B類的原因:一個網絡包含的主機位多,以后公司做大了,就不用改。考慮到擴展性。
3,192.168.0.0~192168.255.255 表示c類地址 辦公室特別多。
拓展:如果不想連接外網,可以不按照這個規定。
0.0.0.0 服務端需要ip端口,客戶端也需要ip端口,但是服務端應該固定ip端口,首先服務端想被別人訪問,別人需要知道它在哪,所以需要公網地址,外界需要知道的也是公網ip地址,公網ip和私網ip應該有映射關系(網絡工程師的工作)。假如公網地址是:101.206.30.24/24:80 ,私網ip是:172.16.10.11/24:80 ,用戶使用域名訪問,在dns里域名對應公網ip地址,然后公網ip又對應和它有映射關系的私網ip,用戶就可以訪問到。
重點:自己在啟動服務端端口的時候,不能是公網ip,因為自己的機器是看不到公網ip地址的,也不能是172.16.10.11因為,綁定之后,就只有172.16.10.0這個網段的用戶可以訪問到,所以服務端應該綁定0.0.0.0/24:80,代表只要是客戶端,能和服務端聯通的,都可以訪問。
課后:買一個阿里雲服務器,會對應一個公網ip,私網ip,服務端但凡要啟動一個端口號,都是綁定0.0.0.0對應一個端口號。阿里雲會自動關聯一個公網ip,外界只有訪問公網ip,就會映射到0.0.0.0
二,子網划分(增加子網掩碼)
子網掩碼,通過和ip按位與運算,來標識出來ip的網絡位和主機位,網段。
而子網划分,就是把子網掩碼的位數改動一下。原來默認c類的24位,可以借主機位給網絡位,子網掩碼改變,會影響網絡地址。
例如:192.168.11.1/24和192.168.11.6/24,通過arp協議,算出來是一個局域網,用mak通信,如果不在一個局域網,源mak是自己mak,目標mak是網關mak地址,把包在局域網內送給網關,通過網卡往外發,由網關通過路由協議把包發出去。
所以ip地址在不在一個局域網內,直接決定數據包往哪發。
192.168.11.1/25 把子網掩碼由24改成25,這時候還是192.168.11.0
192.168.11.128/25 時 網絡地址就變成了,192.168.11.128
本來24的子網掩碼,是同一個網段里,現在253個網絡地址,划分成了倆個網絡地址,
總結:24位子網掩碼,192.168.11.(0-127)的網絡地址是192.168.11.0
25位子網掩碼,192.168.11.(128-255)的網絡地址是192.168.11.128
一般起始位置的網絡地址,都是本網段的網絡地址。
24位的 .0是本網段的網絡地址,.1是本網關的網絡地址,127是本網段的廣播地址,25也一樣。
課下試驗:用倆個虛擬機,橋接模式,使用這倆個網絡地址,就發現ping不通。路由條目上也沒有,就ping不通。ping就是發包收包。
為什么要子網划分?
優點:1,縮小廣播域,提升傳輸效率。
2,減少ip地址的浪費。
拓展:在公司中,默認就好,一般不會子網划分,因為可能會增加集群,而子網划分是壓縮了主機個數。
三,vlan(虛擬,局域網)
通常來說沒有划分過子網,幾台機器連接到一個交換機,這個交換機就是一個局域網。
現在如果想划分不同的局域網,不同的局域網還要可以跨網段通信,就需要通過路由器轉發。例如教師里的機器都連接到交換機上,隔壁教師的機器都連在自己教室的交換機上,如果想讓着倆個交換機可以通信的話,就需要讓這倆個交換機連接在一台路由器上。
這么做的很多不合理的地方。
1,因為倆倆局域網就都需要一個路由器,經過的設備就會很多,網絡延遲就大,傳輸速度就低。
2,ip地址浪費,划分方式也沒有把廣播域縮小。
解決方法:
1,使用三層交換機,以前交換機都是倆層設備,現在有些直接集成了路由器的功能,成為三層交換機。
2,首先進行子網划分,把ip精簡到最合理的范圍,即使進行了子網划分,倆台機器在三層上來講,是不同的廣播域,但是由於連接在一個交互機上,交換機廣播工作時,就導致倆個廣播域的都能接收到,導致了它們二層沒有分隔,而三層分隔開,應該只是在自己的網段內廣播才對,那怎么統一到一起,現在的交換機不能統一到一起。需要比較強大的交換機,以后去公司里面都是這種類型的交換機。雖然是一個交換機,但是這個交換機可以划分出來多個廣播域,一個廣播域就稱之為一個局域網,只不過不是lan,而是vlan,這是交換機做的事,也就是二層划分好的廣播域,1到10是一個局域網,11到20是一個局域網,假如1發一個數據包,發給交換機,交換機只在1到10廣播,交換機廣播的量就會大幅減少。
為何划分vlan
vlan是在交換機內划分出多個廣播域,一個廣播域稱之為一個虛擬的局域網。
vlan是二次 的隔離,ip的子網是三層的隔離
注意:二層的隔離應該和三層隔離的隔離保持一致。
vlan的划分的倆種方式:
1,是基於端口的
2,是基於標簽(tag)的:tag vlan ,它會把數據鏈路層的進行一些處理。
基於端口的vlan圖:
123端口是連電腦的,而4號端口是用來連接另一台交換機廣播的,所以給1發廣播包,會在自己交換機里划分好的1234廣播,沒個端口號都有標記,標記自己是哪個vlan,它只會在和1一樣vlan里廣播,到了4,會把包發到和4連接的第二台交換機的端口,然后進行第二次廣播,只會在同樣的vlan里廣播。
基於端口的弊端是,如果不跨交互機無所謂,可以各自在各自的vlan里廣播,如果跨交換機,那么每一個vlan就需要預留一個端口,就會很亂,多了端口也需要預留很多。
基於tag標簽的vlan
1,數據格式:
因為802.1Q這個協議的規定,它把以太網的協議的數據幀進行了改動,源mak和目標mak,在這12個字節后加了4個字節的vlan標記,其中4個字節的vlan標記中,有12個比特位專門存vlanID,等於111111111111,等於2的12次方-1,等於一共4095,0到4095是4096個,但是有效值范圍是1-4094。即802.1Q協議規定一台交換機最多划分4096個vlan(雲計算時代根本不夠用。后來出現vxlan)
注:802.1Q協議不是計算機內工作的,是交換機學會的協議,是在交換機里工作的。
2,交互機的端口分為兩類
access口:連接計算機,就是計算機連接交換機的口,收的時候加上vlan標記,發的時候去掉vlan標記。
trunk口:交換機彼此互連的端口,可以同時划分多個vlan,trunk收到的包,有vlan標記,是accrss口加的,它發的包不會去掉vlan標記,因為它是發給另一個交換機的,另一個交互機是靠vlan標記來知道廣播給哪些端口的。(不能用accrss口來代替。)
根據tag vlan圖,假如電腦pc A-1要往外發數據包,個人計算機連接到交換機的access口,交換機accrss口會遵循802.1Q協議,首先物理層匯總,然后到數據鏈路層,把數據幀12字節后面加上4個字節的vlan標記,其中vlan標記里12個比特位寫的是vlan id,假如就寫個一,封好之后,轉成物理層開始廣播,只在屬於vlan一里進行廣播,和基於端口的目前一樣,假如pc A-2收到這個包,首先到2號accrss口,它現在是收包,然后發給pc A-2計算機,accrss口在發包的時候,會把包拆開,看到802.1Q標記,然后看到其中12個比特位的vlan ID,是一,如果不是一,就不要,是一就發給pc A-2,但是發的時候會把這4個字節的vlan標簽去除掉,再發給pc A-2,所以從始至終,計算機感覺不到vlan標記的存在。
總結:accrss口,在收到計算機收到數據包時,會加上4個比特位的vlan標記,在發送包給計算機時,會去掉4個比特位的vlan標記。
注意:一個accrss口只能划分給一個vlan,而一個trunk口可以同時划分給多個vlan。
拓展:怎么把兩個交換機做成一個交換機,需要各留一個trunk口,還需要各留一個備份線。
A類,划分網絡位少,主機位多,但凡划分一個網絡位,一個網絡里主機數非常多
B類,適中,公司一般用B類,以后拓展,主機位夠用。
C類,划分的網絡位多,主機位少,網絡多,但是每個網絡位的主機位只有0到255,因為0用來當網絡地址,255用來當本網段的廣播地址,1用來當網關地址,所以只有253個主機位能用。
注:網絡位就是能划分多少局域網,主機位是一個局域網有多少個機器可以連接使用。
四,網絡相關操作與配置
網卡名字
查看主板上連接的網卡。(lspci | grep -i eth)
查看是否連接網線,link ok,代表連接 (mii-tool eth0),排除網線是否有問題。
ifconfig,查看所有激活的網卡信息。
ifconfig eth1 down 就是指定關閉網卡
ifconfig -a 查看所有的網卡信息,無論是否開啟。
ifconfig eth0 查看指定網卡信息
ifconfig eth1 172.16.10.22/24 配置ip信息
ifconfig eth0:0 172.16.13.21/24 配置子端口,可以讓一個網卡綁定多個ip地址(但是多個ip走的物理地址都還是一個網卡,正常一個網卡走一個網段的數據包。了解)
ifconfig eth0:0 down 或者ifconfig eth0:0 del,這是刪除
ifconfig eth1 up 開啟指定網卡
注意:ifconfig eth1 down/up,不會重置配置文件,而ifdown eth1和ifup eth1會重置配置文件。
ifconfig eth1 mtu 2000 修改網卡的mtu值,千兆網卡通常1500就夠了,如果是光纖模塊,也就是萬兆網卡,可以調大。
網卡詳細的配置信息分別代表什么意思:
第一行:eth0(網卡名),up(網卡開啟狀態),broadcast(網卡支持廣播)running(正在運行)multicast(支持多播),mtu(一次傳多少字節數據)
第二行:ipv4地址,本網段地址,全網廣播地址
第三行:ipv6地址
第四行:網卡mak地址,網卡傳輸隊列多長,最多1000個包
第五行:開機之后累計收了多少包,總共多少字節,合成多少字節
第六行:開機收包多少錯誤的包,crc校驗不通過的包,溢出的包(緩沖區需要調大),真沖突
第七行:開機之后累計發包多少個
第八行,發包時候和上面收包一樣。
ls;asdasda;pwd 把多個命令連接在一起,不管中間是否出錯,都會執行
ls && sadasd && pwd 如果中間出錯,第一個出錯執行之后,后面不再執行
while true ;do echo 123;echo 456;done (do和done中間的地方就是放循環執行的命令的地方)拓展:clear 清屏命令
ifconfig命令改的都是臨時修改,想永久修改網卡配置文件,需要去修改配置文件。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
第一行,類型,是不是以太網協議。
第四行,none,就是如果寫了按寫的來,沒寫的話就是dhcp自動獲取
nm_controlled=no 通常改為no 這個進程在的時候網卡配置容易出問題。
也可以通過命令關閉這個進程。
倒數第6行,onboot=yes 啟動網絡服務的時候網卡是否被激活
然后是ip地址
子網掩碼
網關地址
運營商dns地址,可以配多個,不過需要在配置文件里加上peerdns=yes,然后dns2=8.8.8.8當輔助dns
ipv6地址
拓展(cat /etc/resolv.conf 查看運營商地址,可以修改,也可以在網卡配置文件里修改。)
修改完配置文件,systemctl restart network,重啟網絡配置服務
五,路由
每鍵一個虛擬機,相當於機器,每建一個虛擬網絡,會生成一個虛擬網卡,都相當於一台交換機。