1、OSI模型七層結構
應用層 為應用程序進程提供網絡服務 提供用戶身份驗證 表示層 確保接收系統可以讀出該數據 格式化數據 構建數據 協商用于應用層的數據傳輸語法 提供加密 會話層 建立、管理和終止在應用程序之間的會話 傳輸層 確保數據傳輸的可靠性 建立、維護和終止虛擬電路 通過錯誤檢測以及恢復 信息流控制來保證可靠性 網絡層 路由數據包 選擇傳遞數據的最佳途徑 支持邏輯尋址和路徑選擇 數據鏈路層 定義如何格式化數據以便進行傳輸以及如何控制對網絡的訪問 支持錯誤檢測 物理層 為啟動、維護、以及關閉物理鏈路定義了電器規范、機械規范、過程規范和功能規范
2、網絡物理設備
集線器(Hub):多端口中繼器 1、不記憶信息包由那個MAC地址轉發,哪個MAC地址在Hub的哪個端口 2、共享貸款 3、半雙工 Hub和交換機比較 1、集線器屬于物理層,網橋屬于數據鏈路層 2、集線器是廣播模式,所有端口在一個沖突域,網橋可以通過端口隔離沖突 3、Hub共享帶寬 、網橋獨立帶寬
3、路由器
1、分割廣播域 2、選擇路由表中 到達目標最好的路徑 3、維護和檢查路由信息 4、連接廣域網 路由: 把一個數據包從一個設備發送到不同的網絡設備里的另一個設備上去 路由器只關心網絡的狀態和決定網絡中的最佳路徑。 路由的實現依靠路由器中的路由表來完成
4、VLAN
分隔廣播域 更安全 靈活管理
5、TCP/IP協議棧
應用層 傳輸層 網絡層 數據鏈路層 物理層
6、三次握手
第一次握手: 建立連接??蛻舳税l送鏈接請求報文,將SYN置為1,Sequence Number為X,然后客戶端進入SYN_SEND狀態,等待服務器確認 第二次握手: 服務器收到SYN報文段,服務器收到客戶端的SYN報文段,需要對這個SYN報文段進行確認,設置Acknowledgement Number為x+1 (Sequence Number+1)。 同時,自己還需要發送SYN請求信息,將SYN和ACK標志位置為1,Sequence Number為y; 服務器將上述所有信息放到一個報文段(即SYN+ACK報文段)中,一并發送給客戶端,此時服務器進入SYN_RECV狀態 第三次握手: 客戶端收到服務器的SYN+ACK報文段。然后將Acknowledgement Number設置為y+1,向服務器發送ACK報文段, 這個報文段發送完畢后,客戶端和服務器都進入ESTABLISHED
7、ARP協議
工作原理: 當源主機需要將一個數據包發送到目的主機時,會首先檢查自己ARP列表中是否存在該IP地址對應的MAC地址,如果有,就直接使用MAC 地址;如果沒有,主機先將目標主機的IP地址與自己的子網掩碼進行“與”操作,以判定目標主機與自己是否位于同一網段內。若在同一 網段內,就像本地網段發起一個ARP請求的廣播包,查詢目標主機的MAC地址,若目標主機在遠程網絡上,就通過路由器等設備轉發至此遠 程網絡中廣播 ARP欺騙: 第一種:截獲網關數據 它通知路由器一系列錯誤的內網MAC地址,并按照一定的頻率不斷通知路由器,使真實的地址信息無法保存在路由器中,結果路由 器所有的數據只能發送給錯誤的MAC地址,造成正常主機無法收到信息 第二種:冒充網關 冒充網關,不停地向網絡中發送構造搞得廣播ARP幀,讓其他主機的ARP高速緩存中保存的網關的IP地址對應的MAC地址是本機的 MAC地址,讓被欺騙的主機向本機發送數據 ,本機就可以截獲這些數據,如果本機向外轉發這些數據。那些被欺騙的主機感覺一切 正常,他們感覺不到數據被截獲了,如果本機不轉發這些數據,這些被欺騙的主機就無法對外通訊了
8、沖突域和廣播域
沖突域: 連接在同一導線上的所有工作站的集合,或者同一物理網段上所有節點的集合,或者以太網上競爭同一寬帶的集合。 這個區域可以被認為是共享段。沖突域被看做是第一層的概念,連接沖突域的有Hub或者其他進行簡單復制信號的設備 廣播域: 接收同一廣播消息的節點的集合,在該節點集合中的任何一個節點傳輸一個廣播幀,所有其他能收到這個幀的節點都被認為是該廣播幀 的一部分,廣播域被認為是數據鏈路層的概念,第三層的路由器可以劃分廣播域
9、ip地址分類
A類: 0 0000000 - 0 1111111 1-127 網絡數:127 每個網絡中的主機數:2^24-2 默認子網掩碼:255.0.0.0 私網地址:10.0.0.0-10.255.255.255 B類: 10 000000 - 10 111111 128-191 網絡數:2^14 每個網絡中的主機數:2^16-2 默認子網掩碼:255.255.0.0 私網地址:172.16.0.0-172.31.255.255 C類: 110 000000 - 110 11111 192-223 網絡數:2^21 每個網絡中的主機數2^8-2 默認子網掩碼:255.255.255.0 私網地址:192.168.0.0-192.168.255.255 D類:組播 1110 0000 - 1110 1111 224-239 E類: 240-255
虛擬網卡實現一個網卡多個IP地址
1、復制網卡配置文件ifcfg-eth0為ifcfg-eth0:0和ifcfg-eth0:1
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0 [root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1
2、編輯eth0:0和eth0:1的配置文件,簡單加入下三行
[root@localhost network-scripts]# cat ifcfg-eth0:0 DEVICE=eth0:0 BOOTPROTO=yes ONBOOT=yes IPADDR=10.1.252.8 PREFIX=16 GATEWAY=10.1.0.1 [root@localhost network-scripts]# cat ifcfg-eth0:1 DEVICE=eth0:1 BOOTPROTO=yes ONBOOT=yes IPADDR=10.1.252.9 PREFIX=16 GATEWAY=10.1.0.1
3、重啟網絡服務,查看ip信息
[root@localhost network-scripts]# service network restart [root@localhost network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E inet addr:10.1.252.67 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fea3:aa9e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13746 errors:0 dropped:0 overruns:0 frame:0 TX packets:1506 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1549834 (1.4 MiB) TX bytes:278613 (272.0 KiB) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E inet addr:10.1.252.8 Bcast:10.1.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:1 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E inet addr:10.1.252.9 Bcast:10.1.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
4、測試ping
[root@localhost ~]# ping 10.1.252.8 PING 10.1.252.8 (10.1.252.8) 56(84) bytes of data. 64 bytes from 10.1.252.8: icmp_seq=1 ttl=64 time=1.77 ms 64 bytes from 10.1.252.8: icmp_seq=2 ttl=64 time=0.226 ms ^C --- 10.1.252.8 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.226/1.001/1.776/0.775 ms [root@localhost ~]# ping 10.1.252.9 PING 10.1.252.9 (10.1.252.9) 56(84) bytes of data. 64 bytes from 10.1.252.9: icmp_seq=1 ttl=64 time=0.728 ms 64 bytes from 10.1.252.9: icmp_seq=2 ttl=64 time=2.37 ms
多網卡bond,mode1
1、創建bond配置文件
[root@localhost network-scripts]# cat ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes IPADDR=10.1.252.8 PREFIX=16 GATEWAY=10.1.0.1 BONDING_OPTS="miimon=100 mode=1"
2、修改兩個網卡配置文件
[root@localhost network-scripts]# cat ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none SLAVE=yes MASTER=bond0 USERCTL=no [root@localhost network-scripts]# cat ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes SLAVE=yes MASTER=bond0 USERCTL=no
3、重啟網絡服務
[root@localhost network-scripts]# service network restart
4、ifconfig重啟服務
bond0 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E inet addr:10.1.252.8 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fea3:aa9e/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:1817 errors:0 dropped:0 overruns:0 frame:0 TX packets:185 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:163500 (159.6 KiB) TX bytes:21691 (21.1 KiB) eth0 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:23527 errors:0 dropped:0 overruns:0 frame:0 TX packets:2243 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2434621 (2.3 MiB) TX bytes:379616 (370.7 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:A3:AA:9E UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:26164 errors:0 dropped:0 overruns:0 frame:0 TX packets:147 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20906962 (19.9 MiB) TX bytes:10174 (9.9 KiB)
5、驗證
查看bond狀態 [root@localhost network-scripts]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: 00:0c:29:a3:aa:9e Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 00:0c:29:a3:aa:a8 Slave queue ID: 0 另一臺主機ping該機器 [root@localhost ~]# ping 10.1.252.8 PING 10.1.252.8 (10.1.252.8) 56(84) bytes of data. 64 bytes from 10.1.252.8: icmp_seq=1 ttl=64 time=1.49 ms 64 bytes from 10.1.252.8: icmp_seq=2 ttl=64 time=0.206 ms 64 bytes from 10.1.252.8: icmp_seq=3 ttl=64 time=0.428 ms
6、斷開eth1網卡
7、ping過程沒有丟包
64 bytes from 10.1.252.8: icmp_seq=656 ttl=64 time=0.210 ms 64 bytes from 10.1.252.8: icmp_seq=657 ttl=64 time=0.265 ms 64 bytes from 10.1.252.8: icmp_seq=658 ttl=64 time=0.309 ms 64 bytes from 10.1.252.8: icmp_seq=659 ttl=64 time=0.392 ms 64 bytes from 10.1.252.8: icmp_seq=660 ttl=64 time=0.451 ms
8、再次查看bond狀態,主網卡已經切換
[root@localhost network-scripts]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 00:0c:29:a3:aa:9e Slave queue ID: 0 Slave Interface: eth1 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:0c:29:a3:aa:a8 Slave queue ID: 0
3、路由實驗
拓撲圖
實驗環境:
兩臺CentOS7當做客戶端,兩臺CentOS6都是雙網卡當做路由器
1、實驗環境準備
CentOS7關閉防火墻 [root@localhost ~]# iptables -F CentOS6關閉NetworkManager自啟動,停止該服務 [root@localhost ~]# service NetworkManager stop [root@localhost ~]# chkconfig NetworkManager off
2、兩臺CentOS7上配置ip地址
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 # Generated by parse-kickstart DEVICE=eno16777736 BOOTPROTO=none ONBOOT=yes IPADDR=10.10.0.100 PREFIX=16 GATEWAY=10.10.0.200 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 DEVICE=eno16777736 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.0.2 GATEWAY=192.168.0.1 PREFIX=24
3、給兩臺路由器配上ip地址
[root@ _2_ ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=10.10.0.200 PREFIX=16 [root@ _3_ ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=172.16.0.1 PREFIX=16 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none IPADDR=172.16.0.2 PREFIX=16 BOOTPROTO=none ONBOOT=yes [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes IPADDR=192.168.0.1 PREFIX=24
4、重啟兩臺路由器的網絡服務
[root@localhost ~]# service network restart
5、添加路由
左側路由器: [root@localhost ~]# route add -net 192.168.0.0/24 gw 172.16.0.2 dev eth1 右側路由器: [root@localhost ~]# route add -net 10.10.0.0/16 gw 172.16.0.1 dev eth0
6、在兩臺路由器上開啟路由轉發
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
7、測試
原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/43252