網絡基礎

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、三次握手

QQ圖片20160904152017.png

第一次握手:
    建立連接??蛻舳税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網卡

    QQ圖片20160904220607.png

    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、路由實驗

    拓撲圖

    QQ圖片20160905141300.png

    實驗環境:

        兩臺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、測試

       QQ圖片20160905150323.png

原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/43252

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-09-06
下一篇 2016-09-06

相關推薦

  • LVS實際操作與調度方法

    LVS概念、類型、調度方法、命令操作與實際配置 字數2134 閱讀4 評論0 喜歡1 LVS (一)LVS概念 LVS( Linux Virtual Server)是一種負載均衡(LB,Laod Balance)技術,采用IP負載均衡技術和基于內容請求分發技術。具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行。LVS是一套…

    Linux干貨 2016-10-30
  • N25-第一周作業

    一,描述計算機的組成及其功能。        計算機(Computer)是一種能夠按照事先存儲的程序,自動、高速地進行大量數值計算和各種信息處理的現代化智能電子設備。由硬件和軟件所組成,兩者是不可分割的。        計算機的組成分為控制…

    Linux干貨 2016-12-03
  • bash特性及用戶和組的管理相關練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意同一個用戶登錄多次,則只顯示一次即可: 2、取出最后登錄到系統的用戶的相關信息: 3、取出當前系統上被用戶當做默認shell最多的那個shell: 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxuser.txt文件中: 5、取出當前主機的IP地址: …

    2017-10-16
  • 優質代碼的十誡

    1.- DRY: Don’t repeat yourself. DRY 是一個最簡單的法則,也是最容易被理解的。但它也可能是最難被應用的(因為要做到這樣,我們需要在泛型設計上做相當的努力,這并不是一件容易的事)。它意味著,當我們在兩個或多個地方的時候發現一些相似的代碼的時候,我們需要把他們的共性抽象出來形一個唯一的新方法,并且改變現有的地方的代碼讓…

    Linux干貨 2015-04-01
  • 馬哥教育第20期一班第一周博客

    Linux入門 1、Linux的哲學思想 一切皆文件(硬件設備亦表現為文件) 由眾多目的單一的小程序組成;一個程序只做一件事,并且要做好 組合小程序完成復雜任務 盡可能避免跟用戶交互 使用文本文件保存配置信息 提供機制,而非策略 2、常用命令 id命令 簡介:   id – print real a…

    Linux干貨 2016-07-26
  • 通過view實現智能DNS

    DNS策略解析最基本的功能是可以智能的判斷訪問您網站的用戶,然后根據不同的訪問者把您的域名分別解析成不同的IP地址,然后跟DNS服務器內部的IP表匹配一下,看看用戶的類型,然后給用戶返回對應的IP地址。

    Linux干貨 2017-10-03
欧美性久久久久