IP子网划分

本文详细介绍了网络基础知识,包括网络类型、网络协议、IP地址分类与子网划分等内容,并通过实例演示了如何判断IP间是否能通信及路由设置的方法。
网络基础

什么是网络?
网络就是通过网线或者无线网络将多个设备连接在一起,使得数据可以通过网络介质来传输的一种方式!

想要连接至网络,至少要满足两个条件:网络适配器(网卡)、网络服务提供商提供的账号密码。

目前最成功的是两种网络类型:
1.Ethernet 以太网
2.Internet 因特网

网络范围分为两种:
1.局域网(LAN)        主要用于实现短距离的资源共享    
2.城域网(MAN)        覆盖范围介于局域网和广域网之间
3.广域网(WAN)        以覆盖一个城市、一个国家甚至于全球

计算机网络协议:
OSI七层协议:
    第七层------->应用层
    第六层------->表示层
    第五层------->会话层
    第四层------->传输层
    第三层------->网络层
    第二层------->数据链路层
    第一层------->物理层

tcp/ip四层协议:
    第四层------->应用层
    第三层------->传输层
    第二层------->网络层
    第一层------->网络接口层

---------------------------------------------------------------------------------------------

ip的定义

ip分为两种
ipv6      六个点分十六进制数字表示
ipv4     四个点分十进制数字表示,目前最常用的

ipv4地址格式  
10.1.1.35    192.168.1.1

ipv6地址格式,是因为互联网的急剧扩张,导致IP不够使用所发展出来的下一代IP地址
fe80::20c:29ff:fe21:fd31

IP地址由一个全球性的机构来管理,叫“IANA”
各区域名称都不一样:
            AfriNIC非洲地区
            APNIC亚太地区        ------->>我们国家所在的地区
            ARIN 北美地区
            LACNIC 拉丁美洲和一些加勒比群岛
            RIPE NCC 欧洲、中东和中亚    
ipv4地址又四个十进制数字表示的,四个十进制可以转换成四个八位二进制
例如:
10.1.1.35 转化后得出:
00001010.00000001.00000001.00100011

每一位对应的数为:
 1   2   3   4   5  6  7  8
128  64  32  16  8  4  2  1        掩码为255

11000000.10101000.00000001.01100100
为:?

ip地址分类
ip地址分为A,B,C,D,E五类

互联网上使用的只有A,B,C三类

    A类地址      以0开头    
    00000000.00000000.00000000.00000001-01111111.11111111.1111111.11111111
    0.0.0.1-127.255.255.255
    默认netmask  255.0.0.0


    B类地址     以10开头
    10000000.00000000.00000000.00000000-10111111.11111111.1111111.11111111
    128.0.0.0-191.255.255.255
    默认netmask 255.255.0.0


    C类地址     以110开头
    11000000.00000000.00000000.00000000-11011111.11111111.1111111.11111111
    192.0.0.0-223.255.255.255
    默认netmask 255.255.255.0


    D类地址    以1110开头
    224.0.0.0-239.255.255.255
    这类地址为多播地址,是一个专门保留的,它不指向特定的网络,是用来寻址一组计算,或者是同一协议组的主机。
    
       {(点播:点对点.)
    (广播:访问对象范围是整个局域网.)
    (组播:在一个广播域内(局域网内),有相同组播地址的人在同一个组.)
    (交换机:同网段互相访问.不隔离广播.)
    (路由器:可以跨网段路由,也就是跨网段访问.隔离广播.)}



    E类地址     以11110开头
    240.0.0.0-255.255.255.255
    这类地址为保留,公网上没有使用的,一般用于私有网络中,是为了解决IP不够用。

    
    127.0.0.1-127.255.255.255      环回测试,用于测试TCP/IP协议是否正常
    10.0.0.0-10.255.255.255       A类地址的私有地址段
    172.16.0.0-172.31.255.255     B类地址的私有地址段
    192.168.0.0-192.168.255.255     C类地址的私有地址段
    0.0.0.0             代表的是所有IP

想要网络中两个IP能够通讯需要满足什么?
在同一个网段中,同一网段的不同IP可以直接通讯。
如果在不同网段的两个IP需要经过路由才可以通讯。

ip地址 = 网络号 + 主机号

netmask  子网掩码决定你的IP属于哪个网段

    10.1.1.35/255.0.0.0  和 10.1.1.36/255.255.255.0能否通?

            00001010.00000001.00000001.00100011
    &        11111111.00000000.00000000.00000000
          -----------------------------------------
    网络号    00001010.00000000.00000000.00000000
    它的网络号为10.0.0.0,后面的1.1.35就是主机号,广播地址为10.255.255.255
    10.0.0.0/8 主机范围:10.0.0.1-10.255.255.254
    
    与10.1.1.36/255.255.255.0能通地址范围:10.1.1.x    1-254

    10.1.1.36/255.255.255.0
            00001010.00000001.00000001.00100100
    &        11111111.11111111.11111111.00000000
          ---------------------------------------
            00001010.00000001.00000001.00000000
    它的网络号为10.1.1.0,后面的36就是主机号,广播地址为10.1.1.255
    10.1.1.0/24    
    主机范围:10.1.1.1-10.1.1.254
    
    由此判断,这两个ip不能通,因为不在一个网段中。


练习:判断一下:10.1.0.35/24    和  10.1.1.36/16能否通?



-----------------------------------------------------------------------------------

ip的子网划分
    
    192.168.1.0/25   192.168.1.0/255.255.255.128
    请问划分了多少个子网?
    每个子网的网络号是多少?
    每个子网内的可用主机数是多少?IP范围是多少?广播地址是多少?

    2**(25-24)=2
    
    192.168.1.0    
    192.168.1.128

    2**(32-25)-2=126个可用主机
    192.168.1.1--192.168.1.126    广播地址为192.168.1.127


    192.168.1.129 -- 192.168.1.254    广播地址为192.168.1.255


    172.16.0.0/18    172.16.0.0/255.255.192.0
    请问划分了多少个子网?
    每个子网的网络号是多少?
    每个子网内的可用主机数是多少?IP范围是多少?广播地址是多少?

    2**(18-16)=4个子网 # echo $[2**(18-6)]
    2**(32-18)-2=2097150个可用主机数# echo $[2**(32-18)]

    网络号              可用IP范围                广播地址
    172.16.0.0        172.16.0.1-172.16.63.254    172.16.63.255    
    172.16.64.0        172.16.64.1-172.16.127.254    172.16.127.255
    172.16.128.0        172.16.128.1-172.16.191.254    172.16.191.255
    172.16.192.0        172.16.192.1-172.16.255.254    172.16.255.255    

    

    2**(32-18)-2=16382个可用主机数


练习题: 请问 10.0.0.0/11 划分了多少个子网?
    




-----------------------------------------------------------------------------------


路由
路由的作用:使两台处于不同网段的计算机相互访问

        内网ip:192.168.1.0/24        192.168.1.0/24
            张三家            李四家
        外网ip:71.1.1.1/8        81.1.1.1/8


在linux下用route -n查看系统的路由表


# route -n        --注意:这个是我从我台式机上拷贝过来的,和你们的可能不一样
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth1



我在本机访问一个IP,先找路由表里是否有你访问的网段,有的话则从这个路由条目后面指定的网卡出去;如果路由表里没有你访问的网段,则会找默认路由(也就是网关);如果网关也没有的话,则会报错网络不可达。


加网关只能加你已经有的路由网段里的一个IP才行(此IP不一定存在)


问题:一个linux上能有几个有效网关?            

答:一个路由表上可以加多个网关,但只有一个生效。但一台linux是可以做多路由表的,一个路由表一个有效网关,多路由表就是多个网关了。

静态路由
小实验:
开三台虚拟机,分别添加双网卡,格式大致如下

1号虚拟机
eth1:192.168.1.144     eth2:1.1.1.144
            
2号虚拟机
eth1:192.168.1.143    eth2:2.2.2.143


从192.168.1.144 ping 192.168.143    能通

在从192.168.1.144 ping 2.2.2.143    不能通

解决方法:
1,在1号虚拟机上加路由2.2.2.0
# route add -net 2.2.2.0 netmask 255.255.255.0 dev eth1

2,或者加上网关2.2.2.0
# route del -net 2.2.2.0 netmask 255.255.255.0 dev eth1  --先删除上面的路由
# route add default gw 2.2.2.0


用真实机虚拟的hostonly网络vmnet1模拟IP为1.1.1.1,三台虚拟机都是双网卡(全连接hostonly的vmnet1网络),IP分配如下(掩码假设全为24位),做实验的话使用iptables -F把所有的防火墙规则清空



    虚拟1        虚拟2        虚拟3        虚拟4
    eth0        eth1           eth0        eth1
    10.0.0.2     2.2.2.2     <-->  2.2.2.3        4.4.4.4

        

    vmnet1        eth0        eth1            eth0
    1.1.1.1    -->    1.1.1.2     3.3.3.3        <-- 3.3.3.4


    SIP:1.1.1.1   DIP:4.4.4.4

    从1.1.1.1 ping 1.1.1.2

    在宿主机上ping 1.1.1.2,能通

    从1.1.1.1 ping 2.2.2.2



    ping 2.2.2.2 不能通

    解决方法:
    1,在宿主机上加路由
    route add -net 2.2.2.0 netmask 255.255.255.0 dev vmnet1

    2,加网关
    route del -net 2.2.2.0 netmask 255.255.255.0 dev vmnet1  --先删除上面的路由
    route add default gw 1.1.1.2


    在宿主机加了一个网关指向1.1.1.2的基础上,我再继续在宿主机上ping 2.2.2.3 不能ping
    解决方法:
    在vm2上加网关指向2.2.2.2
    route add default gw 2.2.2.2
    还要在VM1上打开ip_forword,打开方法有两种
    1,# echo 1 > /proc/sys/net/ipv4/ip_forward    --马上生效,但重启后就不生效了
    2,# vim /etc/sysctl.conf    
    net.ipv4.ip_forward = 1        --改为1
    # sysctl -p            --保存后,使用此命令让它永久生效


    继续ping 3.3.3.3    不通
    解决:再在VM1上route add default gw 2.2.2.3

    继续ping 3.3.3.4    不通

    解决:在VM2上打开ip_forward
    还要在VM3上route add default gw 3.3.3.3

    继续ping 4.4.4.4  不通
    解决:如果在VM2上加一个网关指向3.3.3.4,其实是有问题的,因为VM2上这样就有两个网关了。如果你不使用多路由表的做法,这两个网关只能有一个网关有效。
    所以加网关的方式不可行,只能在VM2加路由
    route add -net 4.4.4.0 netmask 255.255.255.0 dev eth1


    上面终于从1.1.1.1ping到4.4.4.4
    如果我把上面的所有网关和ip_forward去掉,然后手动加上路由(也就是说四台机都有四个网段的路由),你会发现也一样从1.1.1.1能ping通4.4.4.4

    那么如果还有5网段,6网段,7网段,甚至更多(类似因特网),手动把全世界所有的路由加上也是不可能的事。实际的做法就是使用路由协议(rip,ospf,bgp等)来做,这就是动态路由了。

    linux下可以安装类似zebra这样的软路由软件,可以把linux模拟成一台cisco路由器来进行配置。


    注意:上面所有网卡都在同网络,你可以换一种方式再去尝试:1网段用vmnet1来模拟,2网段用vmnet2来模拟,3网段用vmnet3来模拟,4网段用vmnet4来模拟


本章重点:
1.完全掌握计算机网络两大协议分为哪两种,两种协议各分为什么层!
2.熟悉ip子网划分和网关以及理由的添加方法!


作业:
1.请以8位二进制的形式排列出“169.57.0.128”这个IP。
2.写出IP一共分为多少种类型,各类型各以什么开头,其二进制如何排列。
3.熟悉一下路由和网关的使用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值