网络基础知识札记

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.178linux.com/43783

(0)
上一篇 2016-09-06 08:50
下一篇 2016-09-06 08:51

相关推荐

  • 四大开源协议比较:BSD、Apache、GPL、LGPL

          现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。   这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开…

    系统运维 2016-08-15
  • Redis应用场景

    1.  MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发…

    Linux干货 2015-02-25
  • Tomcat基础知识

    标签:centos  Java1.7  Tomcat8   零、tomcat简介 一、安装java环境 二、安装tomcat 三、tomcat目录结构以及相关文件 四、WebAPP结构及简单部署 五、tomcat常用组件配置 零、tomcat简介 1、tomcat简介       tomcat是SU…

    Linux干货 2017-02-09
  • 文本三剑客之AWK

    文本三剑客—-awk(3) awk简介 awk是一个强大的文本分析工具,与grep(查找)、sed(编辑)一并称为“文本处理三剑客”。awk最强大的功能是对数据分析并生成报告。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk是AWK的GNU版本。 awk其名称得自于它的创始人 Alfred Aho 、P…

    2017-07-17
  • 浅谈编译kernel+busybox构建拥有远程ssh登录和web功能最小linux系统(一)

    实验环境win7+VM11.1 大致过程总揽 1,硬件准备以及查看硬件设备型号(不用担心,这些都是VM虚拟出来的) 2,编译环境的配置以及下载内核源码以及编译内核 3,编译busybox,以及提供系统正常运行的配置文件,初步运行linux系统 4,编译安装dropbear提供ssh服务 5,安装nginx;提供web服务 一,硬件准备以及查看硬件设备型号 由…

    Linux干货 2015-09-22
  • 马哥第一天

    来这儿的第一天

    2018-03-26