網絡基礎知識札記

Linux網絡屬性管理(1)

    Bell(AT&T), PARC(Xerox)
        以太網

    計算機網絡:共享底層通信信道

        CSMA/CD算法
        token環算法

    MAC: Media Access Control

    IP網絡:Internet Protocol

        32bits: 每8bits一段,共4段
            8bits: 0-255
                0000 0000 – 1111 1111
                1.1.1.1

            地址被切割為兩部分:
                左側:區域標識,網絡標識
                右側:主機標識

        網橋:分隔 沖突域
        路由器:分隔 廣播域
            將一個大網絡分隔成多個小網絡,每個網絡都自己的網絡地址;
            每個網絡中可以存在多個主機,每個主機都有自己在本網絡內惟一地址標識;

            完整地址:網絡地址 主機地址

        IP地址分類:
            A, B, C, D, E

                0000 0000 – 1111 1111
            A類網絡:
                0 000 0001 – 0 111 1111: 1-127
                N.H.H.H
            B類:
                10 00 0000 – 10 11 1111: 128-191
                N.N.H.H
            C類:
                110 0 0000 – 110 1 1111: 192-223
                N.N.N.H
            D類:
                1110 0000 – 1110 1111: 224-239
            E類:
                1111 0000 – 1111 1111: 240-255

            子網掩碼:網絡位部分全為1,主機位部分全為0

                子網掩碼:用于通過計算得出網絡地址
                IP & Netmask

                1.1.1.1,

                0000 0001. 0000 0001.0000 0001.0000 0001
                1111 1111. 0000 0000.0000 0000.0000 0000

                0000 0001. 0000 0000.0000 0000.0000 0000
                1.0.0.0

        網絡間轉發:IP地址中獲取出的網絡地址來進行的;
        本地主機間通信:MAC地址;

        地址解析:IP–>MAC
            ARP: Address Resolve Protocol

        進程地址:端口號
            1.1.1.1:80

        資源地址:具體的應用協議來各自定義具體的實現方式

        局域網:本地網絡
            網絡地址:路由器

    協議棧:分層設計
        分層模型:
            OSI模型:
                物理層(PL):定義物理設備規范及電氣信號特性;
                數據鏈接層(DLL):本地網絡通信,定義MAC地址;
                網絡層(NL):定義網絡間通信,定義IP地址;
                傳輸層(TL):進程間通信,定義進程地址;
                會話層(SL):會話建立和拆除;
                表示層(RL):數據表示方式;
                應用層(AL):完成數據交換;
            TCP/IP模型:
                物理層
                互聯網層
                傳輸層
                應用層

        傳輸層:
            UDP:User Data Protocol
                無連接的協議
            TCP: Tranport Control Protocol
                有連接的協議

    IP首部格式和TCP首部格式

    子網劃分,路由協議(OSPF, rip2)

        交換機:switch, MAC地址表
            單工
            半雙工
            全雙工:沒有沖突域

        路由器:路由表
            目標網絡  經由的路徑  開銷

            OSPF: 路由協議
                學習生成路由表
            IP:可路由協議

        傳輸層:
            進程啟動時向內核注冊使用某端口,所以,當網絡報文到達時,首先到達內核;

        應用層:
            進程負責處理應用層協議;

回顧:網絡基礎知識
    OSI:PL, DLL, NL, TL, SL, RL, AL
    TCP/IP:PL, NL, TL, AL

    數據包發送:AL, TL, NL, DLL
    數據包接收:DLL, NL, TL, AL

    本地網絡中的主機間通信:MAC
        交換機:多接口網橋
    跨網絡的主機間通信:
        網絡間數據報文轉發:網絡地址(IP, Netmask), Router
        本地網絡中的主機間通信:
        路由器:路由表 routing table
            生成方式:
                靜態方式:手動添加
                動態方式:路由協議學習生成,OSPF
    進程間通信:
        Socket, IP:PORT
            Client (ip:port) <–> Server (ip:port)
    應用層間通信:
        應用層協議:
            smtp: simple mail transfer protocol
            http: hyper text transfer protocol

    通信子網,資源子網

    IANA, ICANN

    IPv4:
        A類:
            0 000 0001 – 0 111 1111: 1-127
            特性:N.H.H.H
            默認掩碼:255.0.0.0
            網絡數:1-126
                每個網絡中的主機位:
                    全1為:廣播地址
                    全0為:網絡地址
                每個網絡中可以容納多少個主機:2^24-2
            回環:127.0.0.0/8

            私有地址:10.0.0.0/8
        B類:
            10 00 0000 – 10 11 1111:128-191
            特性:N.N.H.H
            默認掩碼:255.255.0.0
            網絡數:2^14
                每個網絡中的主機:
                    每個網絡中可容納多少個主機:2^16-2

            私有地址:172.16.0.0/16-172.31.0.0/16
        C類:
            110 0 0000 – 110 1 1111: 192-223
            特性:N.N.N.H
            掩碼:255.255.255.0
            網絡數:2^21
                每個網絡中的主機位:
                    每個網絡中可容納多少個主機:2^8-2

            私有地址:192.168.0.0/24-192.168.255.0/24
        D類:組播地址
        E類:預留地址

        NAT: Network Address Translation

    FQDN:Full Qualified Domain Name
        http://www.magedu.com

    Linux主機接入到TCP/IP網絡:
        IP/Netmask
        路由:建立路徑條目
            網絡路由:目標是一個網絡
            主機路由:目標是一個主機
            默認路由:目標是所有的非本地網絡

            注意:下一跳路由接口的地址必須與本地主機的某個地址在同一網絡中;
        DNS服務器指向:
            主DNS服務器
            備用DNS服務器
            第三備用DNS服務器

        配置IP及Netmask:
            靜態:手工指定
            動態(DHCP):
                前提:本地物理網絡要有一個DHCP服務器動態提供地址

            靜態配置地址:
                ifconfig命令
                ip命令
                GUI工具
                TUI工具
                編輯配置文件

            Interface名稱:
                以太網:ethX,例如eth0, eth1
                        ensX
                        emX
                PPP網絡:pppX
                本地環回接口:lo, 僅用于本機上進程間基于內核完成通信
                    127.0.0.1

            ifconfig命令:
                查看接口:
                    ifconfig [Interface]
                        -a: 包括未激活狀態的所有接口

                    MTU: 最大傳輸單元
                啟用或禁用:ifconfig IFNAME up|down
                    啟用:ifup IFNAME
                    禁用:ifdown IFNAME
                設定IP地址:
                    ifconfig IFNAME IP/Netmask [up]
                        注意:CIDR格式的掩碼
                    ifconfig IFNAME IP netmask NETMASK
                        注意:完整格式的掩碼,即類似255.255.0.0
                    設定的地址會立即送往內核,因此,會立即生效;但不會永久有效;

            ping命令:用ICMP的ECHO_REQUEST報文測試主機間的連通性
                ping [OPTIONS] DESTINATION
                    -c #: 發送的ping報文次數;
                    -s #: 發送的探測報文大??;
                    -w #:ping命令運行時長;

            練習:寫一個腳本
                1、使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
                    在線的主機使用綠色顯示;
                    不在線的主使用紅色顯示;

            route命令:路由管理
                查看本機內核路由表:
                    route
                        -n: numeric,數字格式顯示地址
                添加路由:新增路由條目,用戶告訴本機至某目標網絡或主機要經由的下一跳路由
                    route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]

                        示例:到達192.168.0.0/24網絡,經由172.16.0.1網關;
                                # route add -net 192.168.0.0/24 gw 172.16.0.1
                              到達192.168.1.1主機,經由172.16.0.1網關;
                                  # route add -host 192.168.1.1 gw 172.16.0.1
                              設定默認網關:
                                  # route add -net 0.0.0.0 gw 172.16.0.1
                                  # route add default gw 172.16.0.1

                刪除路由:
                    route del [-net|-host] TARGET gw GATEWAY [dev IFNAME]

                    示例:刪除上述配置的默認路由
                        # route del -net 0.0.0.0 gw 172.16.0.1

                注意:所有配置立即發往內核中的協議棧,所以立即生效;不會永久有效;

            配置DNS服務器指向:
                /etc/resolv.conf

                指令:
                    nameserver DNS_SERVER_IP

                測試命令:
                    dig

                    測試能否解析某個FQDN(正向解析):
                        dig -t A FQDN

                    測試能否解析某個IP為FQDN(反向解析):
                        dig -x IP

        配置IP、Netmask、網關、DNS服務指向的第二種方式:
            setup –> Network Configurations

            注意:此種配置方式的配置結果是保存至配置文件;生效方法:
                重啟網絡接口的相關服務
                重啟系統

            網絡管理的相關服務有兩個:
                NetworkManager
                network

                查看其能否開機運行:
                # chkconfig –list  | grep -E "(NetworkManager|network)"

                啟用或禁止開機自動運行:
                # chkconfig SERVICE_NAME on|off

                立即啟動、關閉或重啟指定服務:
                # service SERVICE_NAME start|stop|restart
                # /etc/init.d/SERVICE_NAME start|stop|restart

        配置IP、Netmask、網關、DNS服務指向的第三種方式:

            每個網絡接口都有一個配置文件:/etc/sysconfig/network-scripts/ifcfg-IFNAME
                PARAMETER=VALUE

            DEVICE=eth0
            BOOTPROTO=none
            HWADDR=08:00:27:2d:14:19
            NM_CONTROLLED=yes
            ONBOOT=yes
            TYPE=Ethernet
            UUID="c9f7b242-abbf-4a34-8316-8c2c0e9a57c0"
            IPADDR=172.16.100.11
            NETMASK=255.255.0.0
            GATEWAY=172.16.0.1
            DNS1=172.16.0.1
            IPV6INIT=no
            USERCTL=no

            常用參數:
                DEVICE:此配置文件所關聯到的設備,其值通常應該ifcfg-IFNAME中的IFNAME;
                BOOTPROTO:啟動此設備時使用的配置協議,取值有static(手動配置)、none(手動配置)、dhcp或bootp(動態配置);
                HWADDR:網卡的MAC地址,此地址應該與網卡設備ROM中固定的地址保持一致;
                NM_CONTROLLED: NM即NetworkManager的簡寫,建議設定為no;
                ONBOOT:此設備是否隨OS啟動而激活;
                TYPE:設備類型,通常有“Ethernet”,“Bridge”;
                UUID:
                IPADDR:此接口的IP地址;
                NETMASK:子網掩碼;
                GATEWAY:網關;
                DNS1:DNS服務器指向的主DNS服務器;
                DNS2:
                DNS3:
                IPV6INIT:是初始化ipv6協議地址;
                USERCTL:是否允許普通用戶管理此接口;
                PEERDNS:當BOOTPROTO的值為dhcp時,是否允許dhcp服務器提供的dns服務指向覆蓋本地手動配置的DNS服務器指向;

            注意:重啟網絡服務network服務后方能生效;

        靜態路由配置文件:/etc/sysconfig/network-scripts/route-IFNAME
            配置方式一:
                每一行定義一個路由條目
                    DESTINATION via GATEWAY

                    例如:
                    192.168.0.0/24 via 172.16.0.2
                    192.168.1.1 via 172.16.0.3

            配置方式二:
                每三行定義一個路由條目:
                    ADDRESS#=
                    NETMASK#=
                    GATEWAY#=

                    例如:
                    ADDRESS1=192.168.0.0
                    NETMASK1=255.255.255.0
                    GATEWAY1=172.16.0.2

            注意:兩種方式不能混合使用;

        配置IP、Netmask、網關服務指向的第四種方式:

            ip命令
                ip [ OPTIONS ] OBJECT { COMMAND | help }

                   OBJECT := { link | addr | route }
                       link:鏈接接口,如eth0
                       addr:管理接口上的地址
                       route: 管理路由

                   link:
                       set: 設定接口屬性
                           ip link set DEVICE
                               {up|down}:啟用或禁用接口;
                               promisc { on | off }:是否支持混雜模式;
                               name NEWNAME:設定接口使用新名字;
                       show: 顯示接口狀態,例如啟用的特性,HWADDR等;
                           ip link show [DEVICE]

                   addr:管理地址
                       add:添加地址
                       del:刪除地址
                           ip addr { add | del } IFADDR dev STRING
                               示例:ip addr add 172.16.200.33/16 dev eth0
                       
                       show:
                           ip addr show [dev IFNAME]
                       flush:
                           ip addr flush [dev IFNAME]

                   route: 管理路由
                       list|show: 顯示路由
                           ip route list

                       add: 添加路由
                           ip route add DESTINATION via GATEWAY [dev IFNAME]

                           示例:設定默認網關
                               ip route add defalut via 172.16.0.1

                       del: 刪除路由
                           ip route del DESTINATION

                           例如:# ip route del 192.168.0.0/24

           如何給接口配置多個地址的其它方式:
               (1) ifconfig命令
                   網卡接口的別名:ethX:Y,例如eth0:0, eth0:1

                   ifconfig IF_ALIAS IPADDR netmask NETMASK [up]

               (2) 配置文件
                   /etc/sysconfig/network-scripts/ifcfg-IF_ALIAS,例如ifcfg-eth0:0
                       DEVICE=IF_ALIAS
                       BOOTPROTO={static|none}:別名的地址不能動態獲??;
                       IPADDR
                       NETMASK
                       ONBOOT

           配置主機名:
               (1) hostname命令
               (2) 內核參數:/proc/sys/kernel/hostname
                   # echo "HOSTNAME" > /proc/sys/kernel/hostname

               配置文件:/etc/sysconfig/network
                   HOSTNAME=www.magedu.com

           網絡管理的幾個常用工具:
               (1) ping
               (2) traceroute IP
                   探測到達目標主機中間所經過網關設備;
               (3) mtr HOST
                   合并了ping與traceroute命令的功能的網絡診斷工具;

           網絡狀態探測工具:
               (1) netstat
                   -r: 顯示路由表
                   -n: numeric,數字顯示,不反解IP地址至主機名;

                   -t: tcp協議的相關連接
                   -u: udp協議的相關連接
                   -l: 顯示處于監聽狀態(即等待別的進程連接訪問);
                   -a: 顯示所有連接,對于tcp而言即處于各種狀態;
                   -p: 顯示相關連接的關聯到的進程的名字及PID;

                   常用組合:-rn, -tnl, -unl, -tunl, -tan, -tnlp
               (2) ss
                   -t: tcp協議相關的連接
                   -n: 數字格式
                   -u: udp協議相關的連接
                   -l:處于監聽狀態
                   -a: 所有連接
                   -e: 顯示擴展信息
                   -m: 顯示使用信息
                   -o state {established|fin_wait_1|fin_wait_2|listening}

                   常用組合:-tnl, -unl, -tan, -tunl, -tnlp
               (3) iftop:以連接為中心顯示帶寬占用情況
                   iftop [-i IFNAME]
               (4) nethogs: 以進程為中心顯示帶寬占用情況
                   nethogs [IFNAME]

           網絡安全工具:
               (1) nmap
               (2) ncat
               (3) tcpdump

原創文章,作者:M20-石俊,如若轉載,請注明出處:http://www.www58058.com/43783

(0)
M20-石俊M20-石俊
上一篇 2016-09-06
下一篇 2016-09-06

相關推薦

  • N25第一周作業

    一.計算機基礎知識     1.計算機是什么?         計算機是一種能夠按照指令對各種信息進行自動加工和處理的電子設備     2.計算機的組成?       &…

    Linux干貨 2016-12-06
  • 防火墻原理以及iptables重要實踐

    防火墻 主機間通信大致過程: 請求報文由客戶端IP+PORT和服務器端IP+PORT構成。當客戶端網絡地址和服務端地址在同一網段時,不需要經由路由轉發,可以直接到目標服務器,再經由服務器端口請求道所需資源; 當服務器端和客戶端不在同一網段時。目標IP和源IP是不會改變的,會經由互聯網中的路由器,按照其的路由表,指向該路由器的下一跳主機,知道找到服務器端所在網…

    2017-06-18
  • 網絡N23期第二周心得

    1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp 文件復制        常用選項:            -i:交互式            -r, -R: 遞歸…

    Linux干貨 2016-12-05
  • ansible的入門使用手冊

    ansible1

    2018-01-15
  • 十個讓你變成糟糕的程序員的行為

    之前本站發表過《優秀程序員的十個習慣》以及《程序員需要具備的基本技能》,那是我們需要去學習和培養的。這里,我們主要討論十個糟糕程序員的特征,主要是需要讓我們去避免和小心的。 1) 情緒化的思維 如果你開始使用不同顏色的眼光來看待這個世界的話,那么你可能會成為一個很糟糕的程序員。情緒化的思維或態度很有可能會把自己變成一個怪物。相信你經??梢钥吹胶芏嗪茉愀獾某绦颉?/p>

    Linux資訊 2015-04-03
  • mysql5.5.32多實例配置

    操作系統:CentOS release 6.7 (Final) 內核版本:2.6.32-573.el6.x86_64 mysql版本號:mysql-5.5.32 1)安裝mysql所需的依賴包 # adduser mysql -s /sbin/nologin -M # mkdir -p&n…

    Linux干貨 2016-12-05
欧美性久久久久