网络基础

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

相关推荐

  • VIM编辑器

    VIM是什么? Vim是从VI发展出来的一个文本编辑器,拥有许多丰富的功能,便于编程开发,在程序员中被广泛使用,是类Unix系统用户最喜欢的功能强大的跨平台文本文件编辑工具。 为什么要用VIM? vi编辑器是所有类UNIX系统下标准的编辑器,他是我们使用Linux系统不能缺少的工具。对于所有类UNIX系统的任何版本,vi编辑器是完全相同的。而vim是从VI发…

    2017-06-03
  • YUM LNMP 安装 wordpress

    1配置防火墙 Iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允许80端口通过防火墙 iptables-A&…

    Linux干货 2016-06-22
  • N26-第五周

    1、显示当前系统上root、fedora或user1用户的默认shell;[root@localhost ~]# grep -E ‘^(root|fedora|user1)\>’ /etc/passwdroot:x:0:0:root:/root:/bin/bashfedora:x:4002:4002:Fedora Core:/h…

    Linux干货 2017-03-13
  • btrfs初步应用

    前言 一种技术要知其然,还要知其所以然。 Btrfs文件系统 Btrfs(B-tree文件系统,通常念成Butter FS,Better FS或B-tree FS),一种支持写入时复制(COW)的文件系统,运行在Linux操作系统,采用GPL授权。Oracle于2007年对外宣布这项计划,并发布源代码,在2014年8月发布稳定版目标是替换Linux目前的ex…

    Linux干货 2016-05-22
  • 用户相关文件简介

    2016/10/23 总结关于用户和组相关的配置文件 Linux系统主要有4个文件与用户和组的配置有关, 主要为/etc/passwd  /etc/shadow   /etc/group  /etc/gshadow 首先来解释一下什么是用户,什么是组 用户:      管理员用户&nbsp…

    Linux干货 2016-10-24
  • 软件包管理器之二——YUM介绍及使用

    一、前言     之前我们介绍了RPM的应用(详细请查看http://www.178linux.com/archives/6383),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人…

    Linux干货 2015-07-21