路由

地址分類
有類的 固定的網絡ID 是多少位就是多少位
A 前8位是網絡ID
0-127.x.x.x
其中0.x.x.x是未知地址,不能用
127.x.x.x是回環地址,不能用
所以有1-126個網段可用
公式:
網絡(網段)數量=2^可變網絡ID位數
一個網絡的主機數量=2^主機ID位數-2
所以一個A類網絡主機數有1600萬
netmask:255.0.0.0

B類
128-191
10xxxxxx.xxxxxxxx.y.z
16位網絡ID
16位主機ID
netmask:255.255.0.0
主機數:2^16-2=65534

C類
192-223
1110xxxxx.xxxxxxxx.xxxxxxxx.y
11000000.x.x.x
11011111.x.x.x
192-223.x.x.x
netmask:255.255.255.0
24位網絡ID
8位主機ID
網絡數:2^21=
主機數:2^8-2=254

D類
多播
224-239.x.x.x

如果一個路由器通過Hub連接兩個主機,但是兩個主機地址不一樣,物理上在一個網段,邏輯上不在一個網段,相互通訊就要通過路由器,因為主機上的路由表。

查看路由表
#route -n
#ip route

無類的 CIDR,無類域間路由
IPV4地址一共32位
哪些位是網絡ID , 哪些位是主機ID ,不確定,
通過 子碼掩碼(netmask) 來實現,netmask是10進制的
netmask:地址32位二進制數,有多少網絡ID位數,對應netmask就是多少個1,有多少主機ID位數,對應netmask就是多少個0
例如:172.20.0.123對應netmask是16個1加16個0
11111111.11111111.00000000.00000000
netmask:255.255.0.0

一下這些都可能成為子碼掩碼
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255

例如:172.20.0.123 網絡ID位數是22位,netmask?
255.255.11111100.0
255.255.252.0

練習:
1。 200.222.123.23/26
1)netmask?255.255.255.192
2)主機數是?2^(32-26)-2=2^6-2=62

**網絡ID=IP與子網掩碼=IP&&子網掩碼
對位相與

例如:
IP: 192.168.1.100
子網掩碼: 255.255.255.0
網絡ID:192.168.1.0

劃分子網:一個大網絡(主機多=主機ID數多,網絡ID位數少)劃分成多個小網絡(主機少=主機ID位數少,網絡ID位數少),網絡ID位向主機ID位借N位,就劃分成2^N個小網絡。

例如:
10.0.0.0/8劃分成兩個小網絡:
10.0.0.0/9
10.128.0.0/9
其中10.0.0.0/9的最小IPmin:10.0.0.1
最大IPmax:10.127.255.254
因為 10.127.255.255不可用
兩個子網邊界的IP不可用

其中10.128.0.0/9的最小IPmin:10.128.0.1
最大IPmax:10.255.255.254

公式:
1)網絡(網段)數量=2^可變網絡ID位數
2)一個網絡的主機數量=2^主機ID位數-2=2^(32-網絡ID位數)-2
3)網絡ID=IP與子網掩碼netmask=IP &&子網掩碼
4)劃分子網數=網絡ID位向主機ID位借N位,劃分成2^N個。

因為A類地址有1600萬個 ,連1600萬個主機,廣播域太大,一臺主機發信息所有主機都可以收到,
所以每個省都有各自的小網絡
要將一個大網絡切分成多個小網絡。
在一個大網絡中,主機多=主機ID位數多,網絡ID位數少
在小網絡中,主機少=主機ID位數少,網絡ID位數少

方法:
例如10.0.0.0/8 是一個大網絡最大IP10.255.255.254/8,最小IP10.0.0.1/8,共1600萬多個
網絡ID是10,不變8位二進制數構成,主機ID是可變的,24位二進制數構成
把這個大網絡變成2個子網絡,網絡ID向主機ID借1位,這1位可變,
所以子網絡的網絡ID 是由8位不變的二進制數+1位可變的二進制數構成,
子網絡數量=2^1=2
每個子網絡的主機ID 是由24-1=23位二進制數構成
每個子網絡的主機數量=2^(24-1)-2=2^23-2=

例題:
10.0.0.0/8 劃分成32 個子網給32個省公司使用
1)新的子網netmask?
255.248.0.0
32=2^N
N=5
新的子網網絡ID位數=8+5=13
netmask 由32位數組成,網絡ID是多少就有多少個1,剩下的全是0
所以用10進制表示netmask 255.248.0.0
2)新的子網:min netid ,max netid
10.00000 000.0.0 10.0.0.0/13 min netid
10.11111 000.0.0 10.248.0.0/13 max netid
3)新的子網存放最多的主機數是多少?
主機ID=32-13=19,主機數=2^19-2=524288
4)最大子網IP(max netid IP):min ip ,max ip
10.11111 000.0.1 min ip :10.248.0.1
10.11111 111.255.254 max ip : 10.255.255.254

#echo 2^21|bc

**劃分超網:把多個子網合并成大網絡,主機ID位向網絡ID借位,借到子網擁有相同的網絡ID為止,

私有IP地址

A 10.0.0.0到10.255.255.255

B 172.16.0.0到172.31.255.255

C 192.168.0.0 到192.168.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
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

私有地址和互聯網連接必須通過NAT轉換
127開頭的IP 都是回環地址,隨便ping127開頭的IP都能ping通
給回環網卡加個地址
#ip addr add 1.1.1.1/8 dev lo

#ip -a 查看 網卡列表
在加個地址
#ip addr add 2.2.2.2/16 dev lo
隨便ping2.2.開頭的IP都能ping通,因為只要前16位相同就可以
訪問127開頭的IP 只能本機使用

按A,B,C 類分一共有多少個網段
A:
0xxxxxxx.x.x.x
1-126 126個
B:
10xxxxxx.xxxxxxxx.x.x
2^14=16*1024=16384個
C:
110xxxxx.xxxxxxxx.xxxxxxxx.x
2^21=2097155個

所以網絡中大概有200多萬個網段

跨網段通訊:路由,多個網段通訊
工作原理:基于路由器里的路由表
路由表:記錄到達網絡中每個主機的路徑
#route -n 查看路由記錄
一般在centos7里有4條路由記錄

路由器只負責把信息傳遞出去,傳遞到下一個網段
只關心目標地址IP
在路由表中
路由分類:
1主機路由:到達網絡中主機路徑怎么走,在路由表中體現是單個IP
2網絡路由:到達網段怎么走,在路由表中體現的是網段的IP
3默認路由:0.0.0.0 ,未知網絡路由,在連接網絡的路由器里,把信息傳到帶有默認路由的路由器,信息會被自動傳入網絡廣域網。

按A,B,C 類分一共有多少個網段
A:
0xxxxxxx.x.x.x
1-126 126個
B:
10xxxxxx.xxxxxxxx.x.x
2^14=16*1024=16384個
C:
110xxxxx.xxxxxxxx.xxxxxxxx.x
2^21=2097155個

所以網絡中大概有200多萬個網段

**優先級:精確越高,優先級越高
如果路由表里有192.168.30.100路由記錄
當收到一個請求要到達192.168.30.100這個精確地址,走的是精確路由

當請求要到達的IP沒在路由表里,那就走默認路由,

路由表的組成:關鍵的部分
1目標Destination:數據包發送的目標路徑 IP
2子碼掩碼Genmask:IP對應的子碼掩碼
3接口Iface(interface):路由器的出口,
4網關Gateway
1)直連:不需要配置
2)非直連:下一個路由器連接本路由器的接口的網關IP

刪除網關,無法聯網
添加默認路由就可以聯網
添加網關是為了生成 默認路由 記錄
在window中添加默認路由
route add 0.0.0.0 mask 0.0.0.0 172.20.0.1(網關)
刪除了默認路由 系統會同時把網關刪除
即使有網關也無法聯網
在window中刪除默認路由
route delete 0.0.0.0 mask 0.0.0.0 172.20.0.1

A—1 R1 2 —3 R2 4—5 R3 6—B

A機器用Firefox http:// 訪問B
A知道B IP
1)A判斷B和A是否在同一網段
A拿自己的IP和自己的子碼掩碼相與(&&)得出結果x
再拿目標的IP和自己的子碼掩碼相與(&&)得出結果y
比較x是否等于y,一樣在同一網段,用ARP協議把B的mac地址取出來,把數據包發往B

2)不在同一網段,嘗試把數據包發往R1,在A上已經配置R1的網關IP1,但是不知道與R1相連的接口的mac,A要把包發給R1就得通過ARP廣播 把IP1 解析成對應的MAC1。
在A的ARP緩存表cache記錄了IP1與MAC1的對應關系。
然后就可以添加數據包的報文頭部,三層
幀frame:目標dest mac:mac1 ; 源src mac:macA
ip:dest ip:IPB ; src ip:IPA
tcp:目標dest端口port:80 ; src port:隨機的(因為A相對B是客戶端)

3)開始發送包到R1,R1就開始查看R1的路由表,查到B所在網絡的路由記錄,直連發往B,不直連發往下一個路由器R2
查到連接B所在網絡的接口2 ,下一個臨近R1的路由器接口的網關 IP3
然后重復
ARP IP3 —->mac3
幀frame:目標dest mac:mac3 ; 源src mac:mac2
ip:dest ip:IPB ; src ip:IPA
tcp:目標dest端口port:80 ; src port:隨機的(因為A相對B是客戶端) syn

4) R2 查路由表

net B 接口4 IP5
ARP IP5 —->mac5
幀frame:目標dest mac:mac5 ; 源src mac:mac4
ip:dest ip:IPB ; src ip:IPA
tcp:目標dest端口port:80 ; src port:隨機的(因為A相對B是客戶端) syn

5) R3 查看路由表
net B 6
ARP IPB —->macB
幀frame:目標dest mac:macB ; 源src mac:mac6
ip:dest ip:IPB ; src ip:IPA
tcp:目標dest端口port:80 ; src port:隨機的(因為A相對B是客戶端) syn

路由只關心發送

更改網卡名

配置IP兩種方法:

1。自動獲取IP
自動到網絡中找DHCP服務器
DHCP動態主機配置協議
DHCP服務器上維護了很多的IP地址,設置為自動獲取時,會從DHCP服務器上申請一個IP地址,申請到就可以通訊了,這個過程就是DHCP通訊過程。
1)客戶端:DHCP客戶端廣播,發現報文DISCOVER
2)服務器:DHCP服務器廣播,提供消息OFFER,提供一個空閑的IP,并把IP打一個標簽
3)客戶端:DHCP客戶端對請求消息做出響應REQUEST,
4)服務器:DHCP服務器已經確認消息ACK,確認獲取的IP、網關、子碼掩碼、DNS、租期,結束交換過程

window主機名具有網絡通訊功能
Linux主機名不具有網絡通訊功能

#cd /etc/udev/rules.d
#ls
60-fprint-autosuspend.rules 70-persistent-cd.rules 97-bluetooth-serial.rules
60-openct.rules 70-persistent-net.rules 98-kexec.rules
60-pcmcia.rules 90-alsa.rules 99-fuse.rules
60-raw.rules 90-hal.rules

其中70-persistent-net.rules是一個規則文件 rules規則
定義網卡命名的規則文件

如果本虛擬機是從其他虛擬機復制過來的,
如果想把網卡名改成一個與其他網卡名相同的
更改規則文件
#vim 70-persistent-net.rules

把想要用的重復名的行刪除,在把本機的網卡名改成想要的,就可以了。退出
改完的名不會馬上生效,重啟可以生效,但不現實
或者是把網卡的驅動卸載,重裝就可以。
步驟
1)
#dmesg 看所有硬件信息

#dmesg | grep -i eth 看網卡的信息

e1000:網卡的驅動名

#ethool -i eth2 直接看網卡2 的驅動
知道名字就可以卸載對應的驅動模塊
#modprobe -r e1000 卸載網卡的驅動模塊,
在看看能否看到網卡
#ifconfig
看不到
重新加載模塊
#modprobe e1000 加載網卡的驅動模塊

這樣前面的更改就可以生效

**如果
復制一個虛擬機,啟動會和原來的虛擬機的mac沖突
網絡無法啟動,用VMware的,點開虛擬機設置,點擊網卡,點擊高級選項,下面會有生成,點擊就會生成新的mac。用上面的方法重新卸載,重新加載,就可以生效?;蛘咧貑ⅰ?br />下午 06:15 18/05/03
14.4 00:40:24

靜態指定
命令
舊的命令: ifconfig , route ,netstat
新命令: ip: object {link ,addr,route},ss,tc

圖形命令:system-config-network-tui,
setup,

動態分配:
DHCP:Dynamic Host Configuration Protocol

配置網絡接口
ifconfig命令
ifconfig [ interface ] , interface:ethX
ifconfig -a
ifconfig IFACE [up|dowm]啟用禁用網卡

ifconfig interface [aftype] options |addrss..
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
注意:立即生效
啟用混雜模式:[-]promisc

#ifconfig 默認顯示活動的網卡信息

手動加網卡,先關機,在加網卡。在VMware上在虛擬機設置里加。

#ifconfig eth1 down 禁用eth1網卡
#ifconfig -a 看所有網卡

在#ifconfig 查看網卡時也可以看到RX接收數據包數量, TX發送數據包數量。

當把網線拔了,用ifconfig看并不明顯,只能看到數據包的數量不變,但是用ip link 可以看的清楚
#ip link 看物理上的網卡狀態 ,可以看到網卡是否工作,工作顯示up ,不工作顯示down。

#ifdown eth0 用命令禁用網卡eth0,僅僅可以禁用有配置文件的網卡。但是在物理上是沒有禁用

#ifup eth0 啟用網卡

網卡的配置文件 在
/etc/sysconfig/network-scripts/

可以用ifconfig改網卡地址,臨時的

#ifconfig eth1 1.1.1.1/24 或
#ifconfig eth1 1.1.1.1 netmask255.255.255.0
就可以把eth1的IP改為1.1.1.1 ,僅僅是臨時的。
然后用ifconfig禁用啟用就可以還原 原來的IP
#ifconfig eth1 down 禁用網卡
#ifconfig 顯示網卡,但是eth1沒有獲取IP
#ifconfig eth1 up 啟用網卡,IP又還原了

**添加路由
route命令
用route添加的路由記錄重啟 機器就會被刪除
添加IP地址自動添加路由記錄

查看路由表:route -n
添加路由: route add

#route add [-net|-host] target [netmask Nm][gw Gw][[dev] lf]
-net 網絡路由
-host 主機路由
gw 后面跟網關
dev后面加接口
例如
#route add -host 6.6.6.6 gw 3.3.3.100 dev eth1
其中dev eth1 可加可不加

#route add -net 8.8.8.8/32 gw 3.3.3.100
等價于
#route add -net 8.8.8.8 netmask 255.255.255.255 gw 3.3.3.100

#route add -net 10.0.0.0/8 gw 192.168.30.100
代表要到達10.0.0.0網段需要通過網關192.168.30.100

加的路由的網關必須和主機在同一網段

添加默認路由表
#route add default gw 192.168.30.100
也可以寫成
#route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.30.100

刪除默認路由記錄
#route del default gw 192.168.30.100

刪除主機路由記錄
#route del -host 6.6.6.6
刪除網絡路由記錄
#route del -net 10.0.0.0 netmask 255.0.0.0

在一臺主機上的兩個虛擬機,各自添加IP,后發現無法互通,只要各自添加各自的默認路由就可以了
#route add default dev ens33或eth0

#tcpdump -i eth1 icmp 抓包icmp協議的包

無論加網關還是加IP都是加 路由記錄

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97657

(0)
lhl123456lhl123456
上一篇 2018-05-06
下一篇 2018-05-06

相關推薦

  • rsyslog、nsswitch、pam

    rsyslog: 日志:歷史事件日志 歷史事件: 時間,事件 事件級別(日志級別):事件的關鍵性程度; 事件:系統引導啟動、應用程序啟動、應用程序尤其是服務類應用程序運行過程中的一些事件; 系統日志服務: syslog: syslogd: system klogd:kernel 事件格式較為簡單時,可統一由syslog進行記錄: 事件產生的日期時間 主機 進…

    Linux筆記 2018-06-07
  • 用戶組_配置文件

    /etc/passwd /*name:password:UID:GID:GECOS:directory:shell*/ /etc/shadow login name encrypted password date of last password change minimum password age maximum password age passwor…

    Linux筆記 2018-04-14
  • 進程任務計劃管理

    筆記

    2018-05-06
  • mysql 高可用

    實驗:集群高可用 一個管理——一個主——兩個從 管理 主機 從機1 從機2 1.必須先統一時間,做集群必須時間一致,所有主機做如下操作 所有主機統一ntp服務器時間,寫入文件里 前期需要手工同步下 啟用ntp服務 2.所有主機關掉iptables 和selinux 3.先做主從復制 主機配置文件 這四項必須寫 重啟服務 查看主機二進制文件的位置 主機創建賬號…

    2018-06-19
  • TCP/IP協議三次握手與四次握手流程解析

    一、TCP報文格式TCP/IP協議的詳細信息參看《TCP/IP協議詳解》三卷本。下面是TCP報文格式圖:   圖1 TCP報文格式上圖中有幾個字段需要重點介紹下:(1)序號:Seq序號,占32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。(2)確認序號:Ack序號,占32位,只有ACK標志位為1時,確認序號字段才有效,…

    2018-05-06
  • HTTP協議介紹

    HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是互聯網上應用最為廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標準。

    2018-06-19
欧美性久久久久