一、現今互聯網模型
1、OSI七層模型
什么是OSI七層模型?
開放系統互連參考模型 (Open System Interconnect 簡稱OSI)是國際標準化組織(ISO)和國際電報電話咨詢委員會(CCITT)聯合制定的開放系統互連參考模型,為開放式互連信息系統提供了一種功能結構的框架。
OSI七層模型的分類
-
應用層
- 工作在此層的協議:
- 其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務
- 工作在此層的協議: http,https,ftp,ldap,telnet,SNMP等應用協議
- 工作在此層的協議:
-
表示層
- 對上層數據或信息進行變換以保證一個主機應用層信息可以被另一個主機的應用程序所能理解 ,表示層的數據轉換包括:數據的加密、壓縮、格式轉換等
-
會話層
- 管理主機之間的會議進程,即負責建立、管理、終止進程之間的會議,會話層還利用在數據中插入校驗點來實現數據的同步
-
傳輸層
- 傳輸層是第一個端到端,即主機到主機的層次,傳輸層負責上層數據分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到商的差錯控制和流量控制問題,在這一層,數據的單位為數據段(segment),即工作方式為:
進程之間標記,通信如何完成,標記端口
,即標記了源端口和目的端口
- 傳輸層是第一個端到端,即主機到主機的層次,傳輸層負責上層數據分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到商的差錯控制和流量控制問題,在這一層,數據的單位為數據段(segment),即工作方式為:
-
網絡層
- 網絡層負責對子網的數據包進行路由選擇,網絡層還可以實現擁塞控制,網際互連等功能,在這一層,數據的單位稱為
數據包
,標記源和主機IP地址,工作在這層的傳輸單位稱為"IP數據報文",其中標記了源IP地址和目的IP地址
- 工作在此層的協議:IP(網絡互聯協議),RIP(路由信息協議),OSPF(開放式最短路徑優先)。
- 網絡層負責對子網的數據包進行路由選擇,網絡層還可以實現擁塞控制,網際互連等功能,在這一層,數據的單位稱為
-
數據鏈路層
- 提供可靠的傳輸,該層的作用包括:物理地址尋址、數據的成幀,流量控制 、數據檢查、重發等,在這一層數據的傳輸單位稱為
"幀(frame)"
,其中標記了源MAC和目的MAC
,其重要特性為最大傳輸單元了(MTU)為1500字節。 - 工作在此層的協議:SDLC(同步數據鏈路控制 )、HDLC(高級數據鏈路控制)、PPP(點對點協議)、STP(生成樹協議)
- 提供可靠的傳輸,該層的作用包括:物理地址尋址、數據的成幀,流量控制 、數據檢查、重發等,在這一層數據的傳輸單位稱為
-
物理層
- 規定了各種機械特性、電氣特性、功能特性以及過程特性。該層為上層提供了一個傳輸數據的物理媒體,在這一層數據的單位為"比特(bit)"
OSI七層實際應用再分層
1. 通信子網
- 物理層
- 數據鏈路層
- 網絡層
- 傳輸層
實現如何將一個數據包發往另一臺主機的
2. 資源子網
- 會話層
- 表示層
- 應用層
實現數據的組織方式
2. TCP/IP四層模型
分類及協議
-
應用層
- 負責實現一切與應用相關的功能
- 工作在此層的協議:FTP(文件傳輸協議)、HTTP(超文件傳輸協議)、DNS(域名服務協議)、SMTP(簡單郵件傳輸協議)、NFS(網絡文件系統協議)
-
傳輸層
- 負責提供可靠的傳輸服務
- 工作在此層的協議:TCP(傳輸控制協議)、UDP(用戶數據協議)
-
網絡層
- 負責網絡間的尋址數據傳輸
- 工作在此層的協議:IP(網際協議)、ICMP(網際控制協議)、ARP(地址解析協議)、RARP(反向地址轉換協議)
-
數據鏈路層
- 提供可選的數據傳輸
==============
MAC地址
-
MAC地址含義
MAC(Media Access Control或者Medium Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網絡設備的位置
-
MAC的表現格式
采用十六進制數表示,共六個字節(48位)。其中,前三個字節是由IEEE的注冊管理機構RA負責給不同廠家分配的代碼(高位24位),也稱為“編制上唯一的標識符”(Organizationally Unique Identifier),后三個字節(低位24位)由各廠家自行指派給生產的適配器接口,稱為擴展標識符(唯一性)。一個地址塊可以生成224個不同的地址。MAC地址實際上就是適配器地址或適配器標識符EUI-48
-
MAC的表示方法
- 00:2c:00:02:01:5F
-
MAC的工作位置
- 數據鏈路層,標記源設備及目標設備地址
IP地址
-
IP地址的來源
IP是英文Internet Protocol的縮寫,意思是“網絡之間互連的協議”,也就是為計算機網絡相互連接進行通信而設計的協議。在因特網中,它是能使連接到網上的所有計算機網絡實現相互通信的一套規則,規定了計算機在因特網上進行通信時應當遵守的規則。任何廠家生產的計算機系統,只要遵守IP協議就可以與因特網互連互通。正是因為有了IP協議,因特網才得以迅速發展成為世界上最大的、開放的計算機通信網絡。因此,IP協議也可以叫做“因特網協議”IP地址都由國際組織NIC(Network Information Center)負責統一分配,目前全世界共有三個這樣的網絡信息中心。
* InterNIC:負責美國及其他地區
* ENIC:負責歐洲地區
* APNIC:負責亞太地區
-
IP地址的表示方法
IP地址是一個32位的二進制數
,通常被分割為4個“8位二進制數
”(也就是4個字節)。IP地址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進IP地址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)
-
IP地址的工作位置
- 網絡層,標記源IP及目標IP地址
-
IP地址的分類
-
A類
- 第一段為網絡號,后有三段為主機號
- 網絡號表示方法:第一位零不變,后7位可以隨意變化(0 000 0000 - 0 111 1111),即A類地址范圍為1-127
- 網絡中的主機數量
- 2^24-2個,其中全0表示網絡位,全1表示廣播地址
- 默認子網掩碼
- 255.0.0.0
- 其中的私有地址:
- 127.0.0.1(本地回環地址)
- 10.0.0.0/8
- 第一段為網絡號,后有三段為主機號
-
B類
- 前二段為網絡號,后二段為主機號
- 網絡號表示方法:前兩位為
10
,后6位可以隨意變化 (10 00 0000 - 10 11 1111),即范圍為128-191
- 網絡號表示方法:前兩位為
- 網絡中的主機數量
- 2^16-2個,其中全0表示網絡位,全1表示廣播地址
- 默認子網掩碼
- 255.255.0.0
- 其中的私有地址
- 172.16.0.0 -- 172.31.0.0
- 169.254.0.0地址保留給未指定IP的網卡使用
- 前二段為網絡號,后二段為主機號
-
C類
- 前三段為網絡號,最后一段為主機號
- 網絡號表示方法:前三位為
110
,后5位可以隨意變化 (110 0 0000 - 110 1 1111),即范圍為192-223
- 網絡號表示方法:前三位為
- 網絡中的主機數量
- 2^8-2個,其中全0表示網絡位,全1表示廣播地址
- 默認子網掩碼
- 255.255.255.0
- 其中的私有地址
- 192.168.0.0/24
- 前三段為網絡號,最后一段為主機號
-
D類 組播地址
- 前4位為
1110
后四位可以隨意變化(1110 0000 - 1110 1111),即范圍為224-239
- 前4位為
-
E類
- 240 - 255
-
主機進程與進程之間的通信
進程通信的標識方法
- 進程的通信采用
16bits
表示端口號,端口范圍為1-65535
,其中端口分配如下:- 周知端口:
- 1-1023 : 固定分配給指定類服務,而且只有管理員有權啟用
- 注冊端口
- 1024-49151: 分配給用戶進程或應用程序
- 動態端口
- 49152-65535 : 一般不固定分配某種服務,而是動態分配
- 周知端口:
進程地址表示方法:
- IP : PORT
- 表現成一個完整的套接字,即socket,套接字是由內核提供的
網絡接口的命令方式
命名的規范
- 傳統命名:
- 以太網:ethX,[0,….] ,例如:eth0,eth1
- PPP網絡:PPPX,[0,…] ,例如PP0,PPP1
- 可預測命名方案:
- 如果fireware或Bios為主板上集成的設備提供的索引信息可用,且根據此索引命名,例如:eno1,eno2....
- 如果fireware或Bios為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引命名,例如,ens1,ens2.....
- 如果硬件接口的物理位置信息可用,則根據此信息命名,如enp2s0,....
- 如果用戶顯式定義,也可根據MAC地址命名,例如enx122161ab2e10
- 上述均不可用,則仍使用傳統方式命名
命名的格式組成
* en: ethernet
* wl:wlan
* ww: wwan(無線廣域網)
名稱類型
* o<index>:集成設備的設備索引號
* s<slot>:擴展槽的索引號
* x<MAC>:基于MAC地址的命名
* p<BUS>s<slot> :基于總線及槽的結構進行命令
===========
Linux網絡配置相關
一、IP及路由配置和查看
Linux網絡查看專業名詞:
- Multicast : 組播
- Broadcase : 廣播
- Hwaddr ether : 以太網地址
- txquuelen:傳輸隊列長度
- RX:接收
- TX:傳輸
- dropped:丟包
- overruns:溢出
- Collisions:沖突
ifconfig命令
ifconfig - configure a network interface
#######synopsis:
- ifconfig [interface]
- ifconfig interface [aftype] options | address ...
- [options]
-a
: 查看所有網卡信息,包括未激活網卡信息-
[-]promisc
: 開啟或關混雜模式ifconfig eth1 promisc #啟用混雜模式 ifconfig eth1 -promisc #關閉混雜模式 ifconfig eth1 down #停用eth1網卡 ifconfig eth1 up #啟用網卡 ifconfig eth1 172.16.249.112/16 #配置eth1網卡ip ifconfig eth1 172.16.249.112 netmask 255.255.0.0
- [options]
#######ifconfig修改的信息被立即送往內核,所以立即生效,但重啟操作系統或服務后,配置將丟失
route命令
route - show / manipulate the IP routing table
synopsis:
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]
-
[options]
-
-n
: 以數字格式顯示,不反解主機名
-
-
查看路由信息
route -n : 以數字顯示路由信息 [root@zhenping ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
-
添加路由信息
route add -net 116.228.0.0/16 gw 192.168.0.100 dev eth1 #添加一個網絡的路由信息 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 : 添加默認網關 route add default gw 192.168.10.1 : 添加默認網關 oute add -host 10.0.0.1/32 gw 192.168.10.1 # 添加主機路由
-
刪除路由信息
route del -net 116.228.0.0/16 #刪除網絡路由,如果掩碼不同,有多個條目,需要指定gw的內容 route del default : 刪除默認路由
=========
ifup
and ifdown
命令
ifup eht1 # 啟用eth1接口
ifdown eth1 # 禁用eth1接口
IP命令
ip
-show / manipulate routing, devices, policy routing and tunnels
synopsis:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute | monitor }
OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] }
-
[OBJECT]
-
ip link set
-
dev NAME(default):dev可以不用寫
ip link set eht1 up #啟用eth1網卡 ip link set eth1 down #禁用eth1網卡
-
arp on | arp off : 關閉ARP功能
ip link set eth1 arp on ip link set eth1 arp off #禁用和啟用eth1的arp功能
-
multicast on | multicase off : 關閉組播功能
ip link set eth1 multicast off ip link set eth1 multicast on #禁用和啟用eth1的組播功能
-
name NAME : 修改名字
ip link set eth1 name eth10 # 把網卡eth1改名到eth10
-
txqlen NUM : 修改傳輸長度
ip link set eth10 txqlen 1000 #修改eth10的隊列長度為1000,默認為1000
-
mtu NUM : 修改MTU值
ip link set eth1 mtu 1000 #修改MTU最大傳輸單元為1000,默認為1500
-
netns PID : 將網卡添加到指定的名稱空間中
ip link set eth1 netns mynet # 將網卡eth1添加到netns mynet網絡中
-
-
ip link show
ip link show eth1 ip link list eth1 #都是查看網卡的信息,可以不跟設備,不跟設備是查看所有網卡
-
ip link help
ip link help # 查看link參數幫助
-
ip netns (manager network namesapce),其centos 6不支持
ip netns add mynet :添加一個mynet的名稱空間 ip link set eth1 netns mynet : 將eht1添加到Mynet的名稱空間中 ip netns exec mynet ip link show :在名稱空間中執行ip link show命令 ip netns del mynet:刪除指定的Mynet ns。 ip netns list:列出所有的netns
-
ip addr add : 添加新地址
-
ip addr add 192.168.10.100/24 dev eth1
#在eth1上加IP,可以反重添加多個 -
label NAME
-
ip addr add 10.1.1.10/8 dev eth1 label eth1:0
:對eth1添加IP,并指定一個eth1:0別名,這樣ifconfig才能看到
-
-
brocast ADDRESS : 廣播地址,會根據IP和NETMASK自動計算得到
-
[scope SCOPE_VALUE]:作用域
- global:全局可用
- link : 接口可用
- host:僅本機可用
-
-
ip addr del :刪除地址
-
ip addr del 192.168.0.201/24 dev eth1
:刪除eth1上的地址 -
ip addr del 192.168.0.202/24 dev eth1:1
: 刪除eth1:1的地址
-
-
ip addr [list|show]: 查看接口IP信息
-
ip addr list eth1
: 只查看eth1設備的地址信息 -
ip addr list
: 查看所有設備的地址信息
-
-
ip addr flush : 清空所有IP地址
-
ip addr flush dev eth1
:清空eth1上的所有IP地址
-
-
ip route :路由管理
-
add : ip route add TYPE PREFIX via <GW> [dev] [src SRC_IP],添加路由
ip route add 116.228.0.0/16 via 192.168.0.1 #添加116.228.0.0/16的路由 ip route add 116.228.0.0/16 via 192.168.0.1 dev eth0 # 為eth0添加路由信息
change : 修改路由
replace :替換路由
-
delete : 刪除路由 ,格式:ip route del TYPE PRIFIX
ip route del 116.228.0.0/16 : 刪除116.228.0.0/16的路由信息 ip route del 10/8
-
show:顯示路由
ip route show src 172.16.100.6
-
flush:清空路由
ip route flush 10/8
-
get:獲取單條路由
ip route get 192.168.0.0/24
-
-
二、查看網絡狀態相關工具
TCP常見狀態表示名詞:
- LISTEN :正在監聽的
- ESTABLISHED : 建立的連接
- FIN_WAIT_1 : 請求斷開
- FIN_WAIT_2 :確認斷開
- SYN_SENT : 請求連接
- SYN_RECV : 接收連接請求
- CLOSE : 關閉連接
netstat命令
netstat
- netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
-
synopsis: netstat [—tcp|-t] [—udp| -u] [--raw|-w][--listening|-l][--all|-a][—numeric | -n] [--program|-p]
-
[options]
-r
: 顯示路由表信息-
-n
: 以數字格式顯示route -rn # 以數字格式顯示路由表信息,不做名稱解析
-t
: 顯示TCP連接著的鏈接-u
: 顯示UDP正在連接鏈接-w
: 祼套接字的連接-l
: 處理監聽狀態的連接-a
: 所有的狀態-n
: 數字格式顯示IP和PORT-e
: 擴展格式,多顯示了:進程啟動用戶以及進程的Inode號碼-
-p
: 顯示相關的進程及PIDnetstat -tan #顯示所有TCP相關的連接,并且不做名稱解析 netstat -uan #顯示所有UDP相關的連接,并且不做名稱解析 netstat -tnl #顯示所有TCP正在監聽的連接 netstat -unl #顯示所有UDP正在監聽的連接 netstat -tunlap # 顯示所有TCP及UDP所有的連接,并顯示進程所對應的程序 netstat -tunlp #顯示所有TCP及UDP正在監聽的連接,并顯示進程所對應的程序
-i
: 顯示所有接口的統計數據-I<IFACE>
: 顯示指定接口的統計數據
netstat -Ieth0 #顯示eth0的統計數據,參數與接口名稱不能有空格
ss命令:
ss - another utility to investigate socket
synopsis : ss [options] [ FILTER ]
- [options]
-
-t
:tcp協議相關的連接 -
-u
:UDP協議相關的連接 -
-w
: raw socket相關的連接 -
-l
: 監聽狀態的連接 -
-a
:所有狀態的連接 -
-n
: 數字格式 -
-p
:相關的程序及其它PID -
-e
:擴展格式信息 -
-m
:內存用量 -
-o
: 計時器信息
*[FILTER] - FILTER := [ state TCP-STATE ] [ EXPRESSION ]
-
示例:
- ss -tan ‘( dport = :22 or sport = :22 )’ #顯示源端口為22目標端口為22的TCP連接
- ss -tan state ESTABLISHED : #顯示TCP正在連接的鏈接
- ss -tan state ESTABLISHED ‘( dport = :22 or sport = :22 )' #顯示狀態為正在傳輸的連接,且源端口目標端口都為22的
-
-
======
修改配置文件實現更改計算機名、IP及路由
計算機名的配置文件
- /etc/sysconfig/network(Centos6)
- /etc/hostname (Centos7):直接寫計算機名稱,沒有格式
配置格式:HOSTNAME=MYPC
- /etc/hosts
- 配置格式
- IP 主機名 別名
- 配置格式
注意:hosts文件是計算機自己訪問自己的時候,才會使用到,默認的127.0.01這行不能修改,以免影響個別服務的正常運行。當使用dig``nslookup
等命令時,將不會訪問hosts文件。
hostname命令
- hostname HOSTNAME
注意:使用命令修改下次重啟系統將丟失
專屬命令修改計算機名,同時將保存至配置文件中
- Centos6/5
- system-config-network
- setup
- Centos7
- nmtui
- hostnamectl
- hostnamectl set-hostname NAME (設置計算機名)
- hostnamectl status (查看計算機名)
============
DNS的配置文件
- /etc/resolv.conf
格式:
- nameserver XXXXX (最多可配置三個)
==========
網卡的配置文件(RHEL系)
配置文件路徑:/etc/sysconfig/network-scripts/ifcfg-IFACE
ifcf-IFACE配置文件字段含義
- NAME : 網卡配置名稱,需要跟配置文件名保持一致(Centos7)
- DEVICE : 此配置文件對應的設備名稱
- ONBOOT : 系統引導時是否激活此接口
- yes : 表示隨系統啟動激活設備
- no : 表示不隨系統啟動激活設備
- NETBOOT : 是否支持網絡引導
- yes
- no
- UUID : 設備的唯一標識符
- IPV6INIT : 是否初始化IPV6
- BOOTPROTO : IP地址的配置方式
- none : 靜態
- dhcp : 動態
- static : 靜態
- bootp
- TYPE : 網卡類型
- Ethernet : 以太接口
- Bridge : 風橋
- DNS1 : 主DNS地址
- DNS2 : 輔DNS地址
- DOMAIN : DNS搜索域
- DEFROUTE
- GATEWAY : 默認網關
- IPADDR : IP地址
- NETMASK : 網絡掩碼地址
- PREFIX : 網絡掩碼短格式(Centos7)
- USERCTL : 是否允許普通用戶控制此設備
- PEERDNS : 當為DHCP模式,是否允許使用DHCP Server的DNS配置信息覆蓋本地手動DNS地址指向,默認允許
- NM_CONTROLLDE : 是否使用network manager服務控制接口
- HWADDR : 設備的MAC地址
注意:DHCP模式優先級高于static和none模式
配置一張網卡多IP的配置方法
方法一:
- 建立網卡名為eth0:1的文件
- 配置網絡信息參數
- DEVICE名稱需與配置文件名稱一致
- 不支持DHCP,IP必須為手動指定
方法二
ip addr add 192.168.0.100 dev eth0 label eth0:1
注意:此配置方法不會永久有效
========
s配置文件配置路由表方法
配置文件路徑:/etc/sysconfig/network-scripts/route-IFACE
-
文件配置格式一:
-
每行一個路由條目
- 配置格式:TARGET via GW
-
每三行一個路由條目
- ADDRESS#=TRAGET
- NETMASK#=MASK
- GATEWAY#=NEXTHOP
-
========
nmcli命令
nmcli
- Centos7 平臺的命令行網絡配置工具
- nmcli [options] Object {command | help}
- device - 硬件配置模式
- status
- show
- connect
- disconnect
- delete
- connect - 啟用、停止管理網絡連接
- show
- down
- modify - 額外添加、刪除一個IP地址
- device - 硬件配置模式