一.Ip協議特征
(1)internet協議特征
- 運行于 OSI 網絡層 ?
- 面向無連接的協議 ?
- 獨立處理數據包 ?
- 分層編址 ?
- 盡力而為傳輸 ?
- 無數據恢復功能
二.IP PDU 報頭
(1)基本特征
- 版本:占4位,單位bit 。指 IP 協議的版本目前的IP協議版本號為4 ?
- 首部長度:占4位,可表示的最大數值是15個單位,一個單位為4字節 ,因此IP 的首部長度的最大值是60字節,首部字節范圍是20-60字節 ?
- 區分服務:占8位,用來獲得更好的服務,在舊標準中叫做服務類型,但 實際上一直未被使用過.后改名為區分服務.只有在使用區分服務 (DiffServ)時,這個字段才起作用.一般的情況下都不使用 ?
- 總長度:占16位,指首部和數據之和的長度,單位為字節,因此數據報的 最大長度為 65535 字節.總長度必須不超過最大傳送單元 MTU ?
- 標識:占16位,它是一個計數器,通常,每發送一個報文,改值會加1 , 也用于數據包分片,在同一個包的若干分片中,該值是相同的 ?
- 標志(flag):占3位,目前只有后兩位有意義 ? DF: Don‘t Fragment,中間的一位,只有當 DF=0 時才允許分片 ?
- MF: More Fragment,最高位,MF=1表示后面還有分片。MF=0 表示最后一個分片
- 片偏移:占12位,指較長的分組在分片后,該分片在原分組中 的相對位置.片偏移以8個字節為偏移單位 ?
- 生存時間:占8位,記為TTL (Time To Live) 數據報在網絡中 可通過的路由器數的最大值,TTL 字段是由發送端初始設置一 個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值為 64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255 ?
- 協議:占8位,指出此數據報攜帶的數據使用何種協議以便目的
主機的IP層將數據部分上交給哪個處理過程, 1表示為 ICMP 協議, 2表示為 IGMP 協議, 6表示為 TCP 協議, 17表示為 UDP 協議 ? - 首部檢驗和:占16位,只檢驗數據報的首部不檢驗數據部分.這 里不采用 CRC 檢驗碼而采用簡單的計算方法 ?
- 源地址和目的地址:都各占4字節,分別記錄源地址和目的地址
三.IP地址
- 它們可唯一標識 IP 網絡中的每臺設備 ?
- 每臺主機(計算機、網絡設備、外圍設備)必須具有唯 一的地址 ?
- IP地址由兩部分組成:
(一)網絡ID:
標識網絡
每個網段分配一個網絡ID
(二) 主機 ID:
標識單個主機
由組織分配給各設備
(三)IPv4地址格式:點分十進制記法
示例:Ipv4地址格式
該ip地址為32位地址,將每八位分為一段,劃分為四組八位二進制數
11000000.10101000.10001000.11000010
轉化為十進制數,方便讀取——192.168.136.162
(四)IP地址分類
主要分為五類:A 、B、C、D、E
(1)A類:采用ipv4方式,一共由32位組成,其中前八位是網絡id,后24位是主機id。
網絡范圍是:00000000——01111111對應十進制數是0——127。
ip地址的范圍是1-126(減去未知地址0.0.0.0和回環地址127.0.0.1)
主機數:2^24-2個——后24位全為0代表為某網絡id,后24位全為1的時候是某網絡廣播
默認子網掩碼:255.0.0.0
私網地址:10.0.0.0
公式1:計算網絡中主機最大數量=2^主機位數-2
(2)B類:前16位是網絡id,后16位是主機id
網絡數:2^14
主機數:2^16-2
ip地址范圍:128-191
默認子網掩碼:255.255.0.0
私網地址:172.16.0.0-172.31.0.0
公式2:網絡數=2^可變網絡id位
(3)c類:
ip地址開頭范圍:11000000——11011111對應十進制數192——223
網絡數:2^21-2
主機數:2^8-2
默認子網掩碼:255.255.255.0
私網地址:192.168.0.0-192.168.255.0
(4)d類:組播
1110 0000 - 1110 1111: 224-239
(5)E類:
240-255
(五)公共ip與私有ip
(1)公共IPimage.png
(2)私有IP地址
image.png
雙方的區分方式:公共IP不需要注冊,而私有ip需要注冊,且僅限于局域網中使用
(六)一些特殊地址的介紹
(1)0.0.0.0
0.0.0.0不是一個真正意義上的IP地址。它表示的含義是包含所有的未知地址 ?
(2)255.255.255.255
限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機 ?
(3)127.0.0.1~127.255.255.254
本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為 “127.0.0.1”的 數據包。 ?
(4)224.0.0.0到239.255.255.255
組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。
224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序 ?
(5)169.254.x.x 如果Windows主機使用了DHCP自動分配IP地址
(七)子網掩碼
(1)特征:32位二進制數組成,對應的網絡id為1,主機id為0
(2)網絡id:ip與網絡掩碼相與——通過CIDR表示法(無類域問路由,網絡id與id不是固定不變)
(3)劃分子網:將一個大網絡分割成多個小網絡,每個小網絡主機數id減少,網絡id增多,原來的大網絡id向主機id位借位
(4)劃分超網:把多個小網絡合成一個大網絡,每個網絡id變小,主機id變多,原來主機id位向網絡位借位
公式三:CIDR表示法=IP或網絡ip/網絡id位數
公式四:劃分子網數量=2^網絡id向主機借的位數
公式五:劃分子網后損失的ip數=(劃分子網數量-1)*2
例題:ip地址為 160.200.0.0/16——劃分十六個子網
問:
(1)劃分子網的netmask
解析:根據公式四可知,網絡id向主機位借了4位,因此可知子網掩碼為20個1,則netmask是:255.255.240.0
(2)每個子網主機數:
根據公式一可知:主機數=2^(32-20)-2=4094
(3)最小,最大子網網絡id:
因為向主機借了四位,所以網絡的最小id為0000——160.200.0.0,最大id為1111——160.200.240.0
(4)最大子網Ip范圍:
主機位最少為1,最大為254,所以范圍是160.200.0.1/20——160.200.0.254/20
四.跨網絡通信(路由)
跨網絡通信:路由 ?
實現過程:
路由分類:
主機路由
網絡路由
默認路由 ?
優先級:精度越高,優先級越高
(一)DHCP:動態主機配置協議
image.png
(二)基本網絡配置
- 將Linux主機接入到網絡,需要配置網絡相關設置。 ?
- 一般包括如下內容: 主機名 IP/netmask
路由:默認網關
接口命名方式:CentOS 6 以太網:eth[0,1,2,...] ppp:ppp[0,1,2,...] ?
DNS服務器
主DNS服務器 次DNS服務器 第三DNS服務器
(3)CentOS 6網卡名稱
image.png
網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rulesimage.png
查看網卡:
dmesg |grep –iimage.png
或是eth ethtool -i eth0 ?image.png
卸載網卡驅動:
modprobe -r e1000image.png
rmmod e1000 ?image.png
裝載網卡驅動: modprobe e1000
五.CentOS 6網卡名稱
接口命名方式:CentOS 6
以太網:eth[0,1,2,...] ppp:ppp[0,1,2,...] ?
image.png
網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
查看網卡: dmesg |grep –i eth ethtool -i eth0 ?image.png
卸載網卡驅動: modprobe -r e1000 rmmod e1000 ?
裝載網卡驅動: modprobe e1000
(一)網絡配置方式
ifconfig, route, netstat
ip: object {link, addr, route},
ss, tc system-config-network-tui,
setup 配置文件
動態分配: DHCP: Dynamic Host Configuration Protocol
(二).配置網絡接口
- ifconfig命令
ifconfig [interface]——ifconfig eth0,eth1,查看網卡信息
ifconfig -a :查看所有網卡
ifconfig IFACE [up|down]:啟用,禁用網卡
ifconfig eth0 down:禁用網卡,up 啟用網卡
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
例如:ifconfig eht1 172.18.138.156/16 ——對該網卡配置ip
注意:立即生效
啟用混雜模式:[-]promisc
(三).route命令
默認路由,網關:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1 ?
刪除:
route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] ?
route del -host 192.168.1.3 ?gw 172.16.0.1 dev eth1
目標:192.168.0.0 網關:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0或route del -net 192.168.0.0/24
(四)netstat命令
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表 -n: 數字格式 ?
image.pngimage.png
顯示接口統計數據: netstat {--interfaces|-I|-i} [iface] [--all|-a] [-extend|-e] [--program|-p] [--numeric|-n]
netstat -i
netstat –I=IFACE——注意該命令中間不能有空格:netstat -Ieth0或是netstat -I=eth0
ifconfig -s eth0
(五)ip命令
(1) ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 僅鏈接可用
host: 本機可用
[broadcast ADDRESS]:指明廣播地址
ip address flush ——清除Ip地址
例:ip addr add 172.18.123.100/16 dev eth0 label eth0:0
image.png
ip addr del 172.16.100.100/16 dev eth0 label eth0:0image.png
ip addr flush dev eth0 label eth0:0
ip addr flush dev eth1
image.png
通過ip link set up dev eth1開啟網卡
再執行ifconfig eht1 down 最后再開啟 ifconfig eth1 upimage.png
(2) ip route - routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK ip route add 192.168.0.0/24 via 172.16.0.1 ip route add 192.168.1.13 via 172.16.0.1
添加網關:ip route add default via GW dev IFACE ip route add default via 172.16.0.1
刪除路由:ip route delete ip route del TARGET
顯示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX] ip route flush dev eth0
例題:
ip route add 192.168.0.0/24 via 172.18.0.1
ip route add 192.168.10.12 via 172.18.0.1
ip route add default via 172.18.0.1或gw dev eth1
刪除路由:ip route del 或是flush
ip route del 172.18.0.0/24 dev eth1
ip route flush 172.18.0.0/24 dev eth1
(六)網絡配置文件
(1)IP、MASK、GW、DNS相關配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACEimage.png
DEVICE和HWADDR是網卡的標識,也就是說即使將eth1改成haha,通過ip a顯示也仍是eth1
bootp NM_CONTROLLED:NM是NetworkManager的簡寫, 此網卡是否接受NM控制;建議CentOS6為“no”——手動設置service NetworkManager stop
路由相關的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備
HWADDR:對應的設備的MAC地址
BOOTPROTO:激活此設備時使用的地址配置協議,常 用的dhcp, static, none, 也可以不寫,表示不要自動獲取,通過自己手動配置來獲取固定IP地址
image.png
ONBOOT:在系統引導時是否激活此設備 ?
TYPE:接口類型;常見有的Ethernet, Bridge ?
UUID:設備的惟一標識 ?
IPADDR:指明IP地址 ——當BOOTPROTO=none或是static時,手動來配置新ip地址
NETMASK:子網掩碼 ?
GATEWAY: 默認網關 ?
DNS1:第一個DNS服務器指向 ?
DNS2:第二個DNS服務器指向 ?
USERCTL:普通用戶是否可控制此設備 ?
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許 dhcp server分配的dns服務器指向信息直接覆蓋至 /etc/resolv.conf文件中
在/etc/sysconfig/network也可以修改先關信息
在配置文件和network中同時設置網關,通過ip a顯示的是配置文件的網關,這表明了配置文件的優先級高于network
配置路由:/etc/sysconfig/network-scripts/route-IFACE
注意:需service network restart生效
兩種風格:
(1) TARGET via GW 如:10.0.0.0/8 via 172.16.0.1
image.png
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GWimage.png
(七)主機名和本地解析器
配置當前主機的主機名:
hostname [HOSTNAME] /etc/sysconfig/network
HOSTNAME= ?
解析器執行正向和逆向查詢 ?
本地主機名數據庫和IP地址的映像
對小型獨立網絡有用
通常,在使用DNS前檢查
getent hosts 查看/etc/hosts 內容:
image.png
(八)網卡別名
將多個ip設置到一個網卡上
ifconfig eth0:0 192.168.1.100/24 up
eth0:1 、eth0:2、 eth0:3
(1)使用ifconfig設置別名
image.png
ifconfig eth0:0 downimage.png
(2)使用ip命令設置別名
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
image.png
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0image.png
注意:以上方法屬于臨時有效,開機就會自動消失,想要保存就要通過配置文件的設置來實現
(1)關閉NetworkManager服務
service NetworkManager stop
chkconfig NetworkManager off
(2)配置格式
ifcfg-ethX:xxx ? 必須使用靜態聯網
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0 ONPARENT=yes ?
注意:service network restart 生效image.png
網關也要設置成不同的網關
(九 )網絡接口配置-bonding
Bonding 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高 可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址 是不可能的。通過bonding,虛擬一塊網卡對外提供連接, "物理網卡的被修改為相同的MAC地址"。
(1)主要模式
- Mode 0 (balance-rr) 輪轉(Round-robin)策略:從頭到尾順序的在每一個slave 接口上面發送數據包。本模式提供負載均衡和容錯的能力 ?
- Mode 1 (active-backup) 活動-備份(主備)策略:只有一個slave被激活,當且僅當活動 的slave接口失敗時才會激活其他slave。為了避免交換機發生混 亂此時綁定的MAC地址只有一個外部端口上可見 ?
- Mode 3 (broadcast) 廣播策略:在所有的slave接口上傳送所有的報文,提供容錯能力 ?active-backup、balance-tlb 和 balance-alb 模式不需要 交換機的任何特殊配置。其他綁定模式需要配置交換機以便 整合鏈接。如:Cisco 交換機需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
(2)創建bonding設備的配置文件 ?
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0” ?
/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes USERCTL=no ?
查看bond0狀態:/proc/net/bonding/bond0
miimon 是用來進行鏈路監測的。如果miimon=100,那 么系統每100ms 監測一次鏈路連接狀態,如果有一條線 路不通就轉入另一條線路 ? 刪除bond0 ifconfig bond0 down rmmod bonding