美文网首页
网络基础

网络基础

作者: epiiplus1equal0 | 来源:发表于2019-01-22 15:02 被阅读0次

    OSI与TCP/IP

    1. OSI七层模型

    Open System Interconnection ( 开放系统连接 )
    每一层只能与其相同的层对话.
    理论上的安全模型, 但现实中因繁琐而弃用.

    summarize_OSI七层模型.jpg

    7.应用层:

    提供给应用程序服务接口, 同时将数据传出传入到应用程序.
    

    6.表示层:

    每个本地应用的数据类型不一定符合网络规范, 此层将本地数据格式化为网络标准数据.
    同时encrypt和decrypt也在此层.
    

    5.会话层:

    不同地址建立或断开通道.
    

    4.传输层:

    TCP, UDP等传输协议.
    

    3.网络层:

    IP, route.
    

    2.数据链路层:

    此层最为特殊, 在数据包头加了一个FAC, 包尾加了一个chk检验码.
    分为接近软件package的逻辑链路层(LLC, logical Line Control)和接近硬件的媒体访问控制, 即物理地址(MAC. Media Access Control).
    LLC:
        将package中的数据转化为MAC数据帧(frame).
    MAC:
        规定了MAC数据帧转化为比特流的编码方式.
    

    1.物理层:

    将数据包转化为比特流(bit, 一长串0和1), 能在介质上传输数据.
    

    2. TCP/IP四层模型

    现实中操作的模型.

    summarize_TCP_IP.gif

    虚拟机的三种网络模式

    在进行虚拟机实验时, 我们往往关注下面这三个问题:

    • 1.虚拟机和主机能不能互相访问
    • 2.虚拟机能不能访问Internet
    • 3.外部网络如何访问虚拟机中的服务

    通过后面的实验分别利用VMware的不同网络模式来解决这三个问题. VMware提供了三种不同的网络模式, 分别是Bridged(桥接模式), NAT(网络地址转换模式), Host-only(主机模式). 不同的网络模式适用于不同的网络环境, 实现不同的需求, 你需要根据实际情况选择合适的模式. 就网络环境来说, 我们常见的家庭网络拓扑结构有下面两种:

    • 主机通过拨号直接连接Internet
    • 主机处于局域网环境中, 通过路由器拨号连接Internet

    如果你是属于第一种网络环境, 由于是ISP分配你的公网IP(假设只有一个地址), 则不能使用桥接模式, 因为桥接模式需要你拥有属于你机器相同网段内的另一个IP地址. 这种情况下可以使用NATHost-only. 而如果是属于第二种网络环境, 则三种模式可以任意选用. 就需求来说, 你可能只是想简单配置一个虚拟机来玩玩, 也可能是为局域网内的其他机器提供服务, 或者是进行一些特殊目的的网络实验, 这个就要具体情况具体对待了.

    1. 桥接模式

    VMnet0

    桥接模式是三种模式中最简单的一种, VMware安装的时候默认就使用这种配置方式. 在这种模式下, 虚拟机相当于局域网中的一台独立机器, 和主机处于同一个网段, 公用同一个网关. 桥接模式使用的是虚拟机的VMnet0网卡, 一般情况下, 在虚拟机中将网络设置成自动获取IP就能直接联网.

    2. NAT模式

    VMnet8

    上面也说了, 如果你不在局域网内, 只有一个IP, 那么NAT模式正适合你. 当然如果你在局域网内, NAT模式也未尝不可, 不过使用NAT模式后, 主机就变成了双网卡: 本身的网卡连接Internet或连接拨号的路由器, 另一个虚拟网卡VMnet8连接由虚拟机组成的一个虚拟网络. 从外部网络来看, 无法直接访问这个虚拟网络. 虚拟网络则通过本机上的NAT虚拟服务器进行转发访问Internet.
    NAT模式的网关要设置成VMworkstations中虚拟网络编辑器中配置的网关!!!

    3. Host-only模式

    VMnet1

    Host-only模式和NAT一样, 也相当于主机双网卡, 网络拓扑和NAT也是一样, 只是主机不提供NAT功能了, 所以虚拟网络只能和主机访问, 不能访问Internet. 如果需要一个完全隔离的网络环境, 则Host-only最合适不过. Host-only相当于使用双绞线直接连接虚拟机和主机, 这是最原始的网络结构, 当然也是最灵活的. 这种情况下虚拟机就不能访问Internet了吗? 局域网下的其他机器就不能访问虚拟机上的服务了吗? 当然不是. 如果我们自己在主机上搭建起我们自己的NAT服务和DHCP服务, 那么Host-only其实和NAT是一样的. 从下面的示意图也可以看出, Host-only和NAT的唯一区别就在于, 主机上少了NAT这个部分.

    reference: https://blog.csdn.net/u012486840/article/details/52648737

    reference: https://www.linuxidc.com/Linux/2016-09/135521.htm

    xshell远程时连接速度很慢肿么办?

    #原因: ssh的服务端在连接时会自动检测dns环境是否一致导致, 修改为不检测即可.
    
    #解决方法:
    #1. 修改sshd服务的配置文件, 将UseDNS yes改为UseDNS no
    vi /etc/ssh/sshd_config
    #UseDNS yes
    UseDNS no
    #2. 重启sshd服务
    /etc/init.d/sshd restart    #restart包括了stop, start
    #或
    service sshd restart
    

    网络参数配置

    配置内容 所属文件 相关命令
    TCP\IP参数 /etc/sysconfig/network-scripts<br />/etc/init.d/network restart ifconfig eth0<br />route -n
    DNS /etc/resolv.conf #nameserver 8.8.8.8 dig www.baidu.com
    主机名 /etc/sysconfig/network
    #NETWORKING=yes
    #HOSTNAME=linuxOfAlex
    #NTPSERVERARGS=iburst<br />/etc/hosts #192.168.1.150 linuxOfAlex
    hostname<br />ping $(hostname)<br />reboot

    配置网络参数使linux主机能够连网的5个步骤:

    #一. 基本配置, 这一步配置完可实现ip上网
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    BOOTPROTO=none
    IPADDR=192.168.235.112
    NATMASK=255.255.255.0
    GATEWAY=192.168.235.2
    ifconfig eth0 #验证1
    route -n #验证2
    ping -c 3 192.168.235.2 #验证3, 出现ttl才表示正确的响应
    
    #二. DNS配置, 这一步配置完可实现主机名上网
    vim /etc/resolv.conf
    nameserver 223.5.5.5 #阿里DNS服务器
    dig www.baidu.com #验证4
    
    #三. 主机名配置
    vim /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=linuxOfAlex
    vim /etc/hosts
    192.168.235.112   linuxOfAlex
    hostname #查看主机名, 修改/etc/sysconfig/network后需要用此命令查看主机名是否修改成功
    ping -c 3 linuxOfAlex #检查5, 修改network文件后必须重启才会生效, 但在重启之前务必ping主机名且得到time响应才行!
    

    traceroute

    traceroute    #跟踪两台主机之间通过的各节点的通信情况
        -n
        -w time
        -T #TCP协议的报文
        -U #UDP协议的报文
        -I #ICMP协议的报文
        -p port #指定使用的端口号
        -i device #指定使用的网络接口
    #实例: 使用TCP协议发送报文, 20001端口, lo接口检测本机到百度网站之间的通信情况
        traceroute -T -p 20001 -i lo www.baidu.com
    

    网络排错流程

    #1. 查模块, 驱动加载情况
    {dmesg|lspci}
    #2. 查网络配置, 配置静态ip的文件为/etc/sysconfig/network-scripts/ifcfg-eth0
    {ifconfig|ip addr show}
    #3. 查网络节点间的连接情况
    ping [node_ip]
    #4. 查路由配置
    {route|ip route show}
    #5. 查DNS配置, 若有问题则查看/etc/resolv.conf
    dig [-x] {host_name|ip}
    host [host|ip]
    #6. 查看主机名, 若有问题则查看/etc/sysconfig/networks和/etc/hosts, 注意前者修改后需reboot
    hostname
    ping $(hostname)
    #7. 查节点之间的网络情况
    traceroute -n [-TUI] [-i interface] [-p port] [-w wait_time] {ip|域名}
    #8. 查看服务及端口
    netstat -tulnp
    #9. 查看权限, 防火墙配置
    SELinux
    
          本文基于<鸟哥的Linux私房菜>, 归纳整理, 在此致谢鸟哥.

    相关文章

      网友评论

          本文标题:网络基础

          本文链接:https://www.haomeiwen.com/subject/cbgljqtx.html