网络基础
什么是网络?
网络就是通过网线或者无线网络将多个设备连接在一起,使得数据可以通过网络介质来传输的一种方式!
想要连接至网络,至少要满足两个条件:网络适配器(网卡)、网络服务提供商提供的账号密码。
目前最成功的是两种网络类型:
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.熟悉一下路由和网关的使用方法。
什么是网络?
网络就是通过网线或者无线网络将多个设备连接在一起,使得数据可以通过网络介质来传输的一种方式!
想要连接至网络,至少要满足两个条件:网络适配器(网卡)、网络服务提供商提供的账号密码。
目前最成功的是两种网络类型:
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.熟悉一下路由和网关的使用方法。