OSI七層模型,TCP/IP,靜態和rip路由
應用層:
將抽象語言(文字、圖像、聲音)->編碼
表示層:
編碼->二進制
會話層:
應用程序提供會話地址(應用程序會話地址),如qq號;不是所有應用程序都需要這個地址
*上三層是應用程序對信息進行加工處理直到可以被傳輸
傳輸層:
傳輸層用於流量分段(基於MTU);
提供端口號;
傳輸層使用TCP/UDP完成傳輸層的工作,其中UDP僅完成以上兩個任務;
TCP會提供額外服務(保證可靠性),這樣會增加帶寬消耗
MTU:最大傳輸單元,以太網默認1500;
端口號:0-655335,1-1023為註明端口,1024-65535為高端口(動態端口);假如一個用戶同時登錄qq、查看網頁、聽在線音樂,則該用戶同時登錄了三臺服務器,此時三臺服務器與用戶通信時源目
UDP:用戶數據報文協議
非面向連接,不可靠,僅完成傳輸層基本工作-分段、端口;
對帶寬占用較低,常用於實時流量傳輸;
支持單播、組播、廣播
TCP:傳輸控制協議
面向連接、可靠,除完成上述基本工作外,還保障數據的可靠傳輸;
面向連接:三次握手-建立端到端的虛鏈路(先打招呼明確對方的存在)
可靠傳輸:確認、重傳、排序、流控(滑動窗口機制);
滑動窗口機制:每次發送包的數量由滑動窗口號決定,窗口號為500沒有丟包,則繼續增大窗口號,當窗口號為1000時產生丟包,則降低窗口號,不斷嘗試當前能夠傳輸的極限,保持對帶寬較高的利用率;
對帶寬占用較高,cpu利用率較高,不建議實時流量;
僅支持單播
網絡層:
IPV4/IPV6
主要用於邏輯尋址(IP尋址)
IPV4報頭:
一般ipv4包頭部長度20字節,最長可達到60字節;
Ver:協議版本號 IHL:包頭大小(20字節)
Service type:服務類型,常用於QOS,QOS可以通過修改該字段實現優先轉發
Packet length:包長度,一個數據包的總長度
TTL:最大生存時間 header checksum:頭部校驗和
Source address:源ip
Destination address:目標ip
數據鏈路層:
核心作用是控制物理層工作;
數據鏈路層協議:以太網、PPP、HDLC、幀中繼…
數據經過上三層加工變為計算機能識別的二進制,然後來到傳輸層為數據分段、分配端口號,加上傳輸層頭部後來到網絡層,網絡層為數據添加ip報頭,然後來到數據鏈路層,添加相關二層協議的報頭,再在整個數據的最後加上校驗和,這樣的數據包經過信號轉換等處理後會交給物理層傳輸;
數據包來到交換機,此時交換機先查看數據包源mac然後在mac地址表中記錄mac地址與端口對應關系,再查看目標mac,如果mac地址表中有目標mac的對應關系則將數據包從相應端口發出,如果mac地址表中沒有記錄,則將該數據包從其他端口洪泛該數據包,數據包從交換機給到路由器
洪泛:數據包不認識該mac(未知單播),從所有其他端口轉發
廣播:終端發出的數據包目標mac為全f,數據包來到交換機,從所有端口轉發
路由器收到數據包後檢查二層mac,如果是路由器該端口mac則向上檢查三層報頭,否則丟棄,三層查看路由表查找下一跳地址,再使用arp解析下一跳mac或直接在arp緩存中查找,然後數據包的三層頭部不變,二層的源mac被修改成路由器發出數據包的端口的mac地址,目標mac變為接受數據的電腦的mac,再發給電腦
源ip目標ip不變,源mac、目標mac每路由一次就會修改一次
Arp:地址解析協議
Aarp:正向arp,已知對端ip,通過廣播arp查詢對端mac
Rarp:反向arp,已知對端mac,二層單播獲取對端ip
Farp:無故arp,對將要使用的ip地址,進行正向arp查詢,確定網絡中沒有ip地址重復
所有arp行為僅能在同一廣播域內進行
二、TCP/IP和OSI模型的區別
1. 層數不同:TCP/IP(5或4層),OSI(7層);
2. 網絡層:TCP/IP僅支持ip協議,OSI支持所有網絡層協議;
OSI支持多種網絡層協議(包括ip協議),TCP/IP在網絡層僅支持ip協議
3. 跨層封裝
跨層協議:ospf、icmp、arp、eigrp
大多數跨層封裝協議的流量僅在該廣播域內傳播(遠距離傳輸不可以跨層封裝,icmp除外),去掉不必要的頭部可以提高轉發效率;
一般僅設備間溝通的流量會跨層,應用程序間溝通流量一般不跨層;
當4層被取消,無法進行分段和標記時,3層將完成該工作;若3/4層均被取消,2層會完成分段和進程標記的功能;
五層跨到三層:
Identification、flag、frag offset、options、padding對流量進行分片;
當ip協議分片時,ip會將分片的數據內容填充到padding中,ip頭部為20-60字節,證明padding最多可以填充40字節內容;
3層的協議號會逐一對應跨層封裝的上一層的協議(0/6/17除外)
1 icmp、88 eigrp、89 ospf
五層跨到二層:
以太網2代封裝技術,僅存在類型號可標記進程,但無分片功能;
需要跨層封裝到二層時,會使用以太網第一代幀(802.2和802.3標準,使用LLC和MAC兩個子層構成);
LLC(邏輯鏈路控制層):負責分片、標記
MAC(介質訪問控制層):負責硬件控制
stp
傳輸層使用端口號,網絡層使用協議號,數據鏈路層使用類型號標記上層信息
三、ipv4地址
子網劃分-VLSM可變長子網掩碼,通過延長掩碼長度,將主機位借位到網絡位,可以將一個網絡劃分為多個網絡,便於管理、減少地址浪費;
子網匯總-取相同位,去不同位;
分類:
1. 超網:匯總後的掩碼長度小於主類的掩碼長度
192.168.1.0/24
192.168.2.0/24
192.168.0.0/22 C類地址24位
2. CIDR:大於等於
172.16.1.0/24
172.16.2.0/24
172.16.0.0/22 B類地址16位
四、靜態路由
1 出接口
適用於點到點網絡
點到點:網段內只能存在兩個節點,強制增加節點將無法正常通信
在MA網絡中使用出接口寫法,路由器為獲取正確下一跳mac地址,將使用代理ARP和icmp重定向:
若路由器收到不屬於該廣播域內地址的arp請求時,將查詢本地路由表,若可達,則代理回復本地mac地址,幫助轉發流量(代理arp)
路由器收到arp請求後查看路由表,發現轉發流量的端口和接收流量的端口為同一端口,說明本地不是最佳路徑,將告知上一跳最佳路徑(重定向)
2 下一跳
適用於MA網絡,網絡中節點數量不限制
所有路由最終都要匹配到一個出接口,所有下一跳寫法都至少會被遞歸一次;出接口寫法不需要遞歸查表,速度快
路由器查表規則:
1. 最長匹配
2. 遞歸查找
3 匯總
1.1.1.0/24
1.1.2.0/24
1.1.0.0/22 匯總後的網絡
4 黑洞
1.1.0.0/22中包含:
1.1.0.0/24
1.1.1.0/24
1.1.2.0/24
1.1.3.0/24
此時0.0和3.0屬於路由黑洞
當原來的1.0/2.0網段斷網,此時1.0和2.0也會成為路由黑洞
5 缺省
6 空接口
黑洞與缺省相遇必然出環,此時可用空接口避免
方法:在黑洞源路由器上配置到達匯總地址的空接口路由,此時空接口路由為1.1.0.0/22網段,這樣如果1.0或2.0斷電則到達1.0和2.0的數據會被直接丟棄,不會出環
7 浮動靜態路由
修改默認管理距離,起到路徑備份的作用
五、動態路由
基於AS:IGP/EGP
IGP:
1. 更新時是否攜帶子網掩碼
攜帶-無類別 不攜帶-有類別
特點:DV距離矢量-鄰居間直接共享路由表,鄰居告知路由(riip、eigrp)
LS鏈路狀態-鄰居間共享拓撲,本地通過拓撲信息自己計算(ospf、isis)
基於拓撲選路不容易出環
2. Rip
版本:v1、v2、ng(ng在ipv6下使用)
鄰居間共享路由表,使用周期(30s一次)和觸發更新,跳數作為度量;
基於UDP520端口工作,支持等開銷負載均衡(默認4條,最大6條,IOS版本12.4以上支持16條);
管理距離120;
結構突變需要觸發更新,更新慢可能導致路由器間信息不對稱;
周期更新原因:
1 沒有ack確認,需要周期發送保證鄰居收到信息
2 保活,rip沒有其他包來確認鄰居狀態
防環:
1 水平分割:從此口進不從此口出,僅用於直線拓撲防環,最大的作用是減少MA網絡的重復更新
2 最大跳數:<16跳
3 毒性逆轉水平分割:即觸發更新,毒性即發送16跳路由信息,逆轉會為了確認將從一臺路由器收到的16跳路由信息發回給該路由器即為打破水平分割規則(從此口進不從此口出)
4 抑制計時器
V1、v2的區別
V1有類別,v2無類別;
v1無法支持子網劃分和子網匯總,支持連續子網;
v2支持子網劃分和CIDR,只支持VLSM,不支持超網;
受限廣播地址:255.255.255.255
255.255.255.255:不知道目標ip,發送廣播目標ip為255.255.255.255,路由器無法幫助轉發受限廣播地址;不知道目標mac時發廣播目標mac地址為全F
192.168.1.255:直接廣播地址,2.0網段的主機轉發192.168.1.255,首先將單播到路由器,路由器再從對應接口發出廣播到1.0網段,在2.0網段時目標mac是2.0網段的網關,路由器默認關閉對這種流量轉發的支持
V1使用廣播(255.255.255.255)更新,v2使用組播(224.0.0.9)更新
在未部署組播的網絡組播和廣播沒有區別,224.0.0.9僅可以幫助路由器在三層明白該數據為rip路由信息
V2支持認證
配置
V1:
r1(config)#router rip 啟動rip
r1(config-router)#ver 1 選擇版本1,不選則默認為升級版本1
宣告:激活端口,發送路由信息
r1(config-router)#network 12.0.0.0 版本1僅發主類路由
r1(config-router)#network 1.0.0.0
所有需要被rip學習到的路由均需宣告,但宣告後路由信息所在的端口也會被激活,rip會周期向這些網段發送路由信息,但可能存在部分連接終端的網段不希望接受這些路由信息,此時可將對應的端口調成被動接口
v2
r1(config)#router rip
r1(config-router)#ver 2
r1(config-router)#no auto-summary 不敲的話路由信息仍將攜帶主類掩碼
r1(config-router)#network 12.0.0.0
r1(config-router)#network 1.0.0.0
擴展配置:
1 v2的認證-用於身份核實,確保更新安全
r1(config)#key chain xx 先定義秘鑰
r1(config-keychain)#key 1
r1(config-keychain-key)#key-string cisco123
r1(config-keychain-key)#exit
r1(config-keychain)#exit
r1(config)#int s1/0 再在連接鄰居的接口上調用
r1(config-if)#ip rip authentication key-chain xx
r1(config-if)#ip rip authentication mode md5
r1#debug ip rip events 動態查看rip發生的事件
2 v2的手工匯總:更新源路由器所有更新發出的接口上配置
r2(config)#int s1/0
r2(config-if)#ip summary-address rip 2.2.2.0 255.255.254.0
r2(config-if)#int s1/1
r2(config-if)#ip summary-address rip 2.2.2.0 255.255.254.0
3 被動接口:只接受不發送路由協議信息,只能用於連接用戶pc的接口,不得用於連接鄰居的接口,否則鄰居間無法收發路由信息
r2(config)#router rip
r2(config-router)#passive-interface loop 0
r2(config-router)#passive-interface loop 1
4 加快收斂
計時器:30s更新,180s失效,180s抑制,240s刷新;
按比例修改計時器可以加快收斂速度,但不要修改過小;
30s以內更新則路由沒有問題,180s以內都認為路由可達,超過180s則認為路由不可達,到240s仍未更新計時器則路由將被徹底刪除;
抑制計時器通常不工作,用於防環,當接受的路由條目度量無征兆的變大,可能出環,在抑制時間內跳數變大的路由條目不得加表
r2#show ip protocols
r2(config-router)#timers basic 15 90 90 120 一般全網設備要一致
5 缺省路由:邊界路由器上配置命令後,將向內網所有設備發送缺省路由條目,之後本地需要管理員手工配置靜態缺省指向ISP
r1(config)#router rip
r1(config-router)#default-information originate
6 幹涉選路:偏移列表,在控制層面流量進或出的接口上,人為的加大度量,來幹涉選路
控制層面:路由條目傳遞的方向
數據層面:用戶流量傳遞的方向
偏移列表只能使度量變大;
r1(config)#access-list 1 permit 1.1.1.0 使用acl抓路由(不加host也不加反掩碼則默認為0.0.0.0,相當於加了host)
r1(config)#router rip
r1(config-router)#offset-list 1 out 1 s1/0 調用編號1的acl出向增加1跳(跳數可疊加)
7 v1和v2兼容
V1 | 升級v1 | V2 |
發送版本1,不攜帶掩碼 | 發送版本1,不攜帶掩碼 | 發送版本2,攜帶掩碼 |
接收版本1 | 接收版本1和2 | 接收版本2 |
配置ver1 | 不配版本,默認為升級v1 | 配置ver2 |
*接口收發的版本可被修改
手動修改收發的版本:
r1(config-if)#ip rip send ver 2
r1(config-if)#ip rip receive ver 2
1 v2設備被修改為發送版本1時,路由將和普通v1路由一致(使用主類掩碼)
2 v1設備被修改為發送v2時,可使用組播224.0.0.9為目標,但仍無法攜帶掩碼
8 v1的連續子網問題
V1版本下1和2路由器的發出的環回端口路由信息一樣,導致無法向對方發出自己的環回路由信息
解決辦法:構造連續子網
在兩臺路由器連接的鏈路兩端接口配置連續子網地址,路由器要傳給鄰居的網段和路由器與鄰居直連的網段若為連續性子網,則向鄰居傳遞1.1.1.0(無掩碼),鄰居收到後會知道傳過來的網段與中間鏈路為連續性子網,此時會給傳過來的路由加上和中間鏈路相同的掩碼
註:若由於客觀原因導致無法修改中間鏈路的接口地址,此時可以為中間鏈路配置第二地址實現連續性子網
r2(config)#int s1/0
r2(config-if)#ip address 1.1.3.1 255.255.255.0 secondary
ipv4下一個接口最多配2個地址
連續子網:1 母網相同; 2 掩碼相同
OSI七層模型,TCP/IP,靜態和rip路由