网络基础

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 08:50
下一篇 2016-09-06 08:50

相关推荐

  • Linux文件类型及颜色标识

    文件类型(共7种): – :普通文件 d:目录文件 (directory) c:字符设备文件 (char) b:块设备文件 (block) s:本地域套接口 (socket) p:有名管道 (pipeline) l:符号连接 (link) 关于硬链接、软连接、复制之间的区别说明: 上图中,我为photo.png这个图片文件建立了一个拷贝(phot…

    Linux干货 2016-10-16
  • 用户管理、三种权限、三种特殊权限的使用

    用户管理、三种权限、三种特殊权限的使用 一、用户管理 1、软链接:ln  -s  相对于软链接的路径/绝对路径   软链接文件    硬链接:ln  相对路径原文件   硬链接文件 2、getent的使用    gentent p…

    系统运维 2016-08-05
  • 人志建,则无敌—if、case练习

    马哥21期网络班-9周博客作业 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash for i in `cut -d: -f7 /etc/passwd`;&…

    Linux干货 2016-09-05
  • 系统启动流程相关概念

    前言: 了解系统内核基本知识 内核功能:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能等  用户空间:应用程序其中有进程或者线程 运行中的系统可分为两层:内核空间、用户空间  内核设计流派:  单内核设计:把每种功能集成于一个程序中;例如:linux 微内核设计:每种功能使用一个单独的子系统实现;例如:Window…

    Linux干货 2016-09-19
  • 10yum源的配置

    yum仓库使用起来特别方便,然而使用之前当然是要配置的啦。下面就介绍一下怎么从0 配置一个yum仓库。 首先要创建yum仓库,当然不能使只给一台服务器用,那要给多个服务器用的话,就需要网络服务。yum仓库支持的网络服务有两种,FTP和HTTP。用yum主要用到的是数据传输,因此FTP更适合创建yum仓库,下面就以FTP为例,说明一下yum仓库的配置。 第一步…

    Linux干货 2016-11-04
  • N22-妙手-第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost grub]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,…

    Linux干货 2016-09-19