网络基础

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

第一次握手:
    建立连接。客户端发送链接请求报文,将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.178linux.com/43252

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

相关推荐

  • 马哥网络教育班第21期+第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@localho…

    Linux干货 2016-08-02
  • linux基础入门

    前言:一次写博客,还写的Linux的专业知识,好多都是参考着写的,经过一周的学习,从一开始有很多名词都不了解,也算是零基础吧,到现在经过反复琢磨还是了解不少了,万事开头难,只要你肯、你愿意下功夫,一定是能很好完成的! Linux基础入门 一、目录结构与文件 /    根目录 Bin  存放系统启动文件及其内核 Dev …

    Linux干货 2017-07-15
  • 程序包管理

    什么是程序包管理器?     顾名思义,就是将编译好的应用程序的各组成文件打包成一个或多个程序包文件,从而更方便地实现程序包的安装、升级、卸载还有查询等管理操作。 那么一个程序包又由哪些部分组成呢? 程序包的组成清单:   文件清单(每个程序包都单独实现):       安装或卸载时运行的脚本,有如下四类:     preinstall : 安装过程开始之前…

    Linux干货 2016-12-16
  • Liunx系统命令的使用格式

    Liunx系统命令的格式 基本格式如下:               ~]# COMMAND OPTIONS ARGUMENTS COMMAND:      发起一个命令,请求内核将某个二进…

    Linux干货 2016-10-28
  • 文本处理工具练习及作业

    练习1: 1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址 ifconfig |head -n 2 |tail -n 1|tr -s ” ” : |cut -d: -f4 2、查出分区空间使用率的最大百分比值 df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|c…

    2017-07-29
  • Linux 基础(4)

    file    标准输入输出以及输出重定向 >     tr     |管道      mail 1.file file [options] <filename>… 确定文件内容,是根据文件的头部信息来判断 hexdump -C -n 10…

    2017-07-20