OSI模型与TCP/IP协议簇
1.首先TCP/IP是一个协议簇;而OSI(开放系统互联)则是一个模型,且TCP/IP的开发时间在OSI之前。
2. TCP/IP是由一些交互性的模块做成的分层次的协议,其中每个模块提供特定的功能;OSI则指定了哪个功能是属于哪一层的。
3. TCP/IP是五层结构,而OSI是七层结构。
4.TCP/IP是现行使用的协议,而OSI是学习用的
在计算机进行传输数据时需要通过MAC地址和IP网络地址来进行传输。IP地址仅仅是用来标识网络,而真正传输时还是用的MAC地址。
IP地址:
IPv4:32bits二进制数字。
8bits.8bits.8bits.8bits
范围: 0.0.0.0-255.255.255.255
IP地址分类:
A类:
第一段为网络号,后三段为主机号
网络号:
0 000 0000 - 0 111 1111:1-127
网络数量:126,127
每个网络中的主机数量:2^24-2
默认子网掩码:255.0.0.0,/8
B类:
前两段为网络号,后两段为主机号
网络号:
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数量:2^16-2
默认子网掩码:255.255.0.0,/16
C类:
前三段为网络号,最后一段为主机号
网络号:
110 0 0000 - 110 1 1111:192-223
网络数:2^21
每个网络中的主机数量:2^8-2
默认子网掩码:255.255.255.0, /24
D类:组播
1110 0000 - 1110 1111:224-239
E类:科研
240-255
A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0
(其中127.0.0.0~127.255.255.255为环回地址,用于本地环回测试等用途);
私网地址:10.0.0.0~10.255.255.255;
B类:128.0.0.0~191.255.255.255,默认子网掩码/16,即255.255.0.0;
私网地址:172.16.0.0~172.31.0.0;
C类:192.0.0.0~223.255.255.255,默认子网掩码/24,即255.255.255.0;
私网地址192.168.0.0~192.168.255.255
D类:224.0.0.0~239.255.255.255,一般于用组播
E类:240.0.0.0~255.255.255.255(其中255.255.255.255为全网广播地址)
E类地址一般用于科研
将Linux主机接入网络
IP/NETMASK:本地通信
路由(网关):跨网络通信
DNS服务器地址:基于主机名的通信
主DNS服务器地址
备用DNS服务器地址
第三备份DNS服务器地址
配置方式:
静态指定
动态分配(DHCP)
修改配置文件(不会立即生效,可以永久有效)
命令修改(只有此次有效,重启之后即失效)
静态分配:
ifcfg家族:
ifconfig:配置IP,NETMASK
route:路由
netstat:状态及统计数据查看
iproute2家族:
ip OBJECT:
addr:地址和掩码;
link:接口
route:路由
ss:状态及统计数据查看
CentOS 7:nm(Network Manager)家族
nmcli:命令行工具
nmtui:text window 工具
ifcfg家族详解:
ifconfig:
使用ifconfig命令查看网卡信息
[root@bogon ~]# ifconfig [eth0] #可省略
配置网卡的ip地址信息
[root@bogon ~]# ifconfig eth0:0 192.168.1.199/24
这时再用ifconifg命令查看,就可以看到两个网卡的信息了,分别为:eth0和eth0:0。若还想再增加IP,那网卡的命名就接着是:eth0:1、eth0:2…想要几个就填几个。ok!
修改网卡MAC地址
[root@bogon ~]# ifconfig eth0 hw ether 00:11:22:33:44:55
这时就将网卡的硬件地址更改了,此时你就可以骗过局域网内的IP地址邦定了。
将网卡禁用
[root@bogon ~]# ifconfig eth0 down
将网卡启用
[root@bogon ~]# ifconfig eth0 up
route命令
route命令用于查看和配置linux内核路由表,也就是用来查看和配置linux的静态路由表。
route命令操作基于linux内核路由表,它的主要作用是创建一个静态路由让指定的一个主机或者一个网络通过一个网络接口,如eth0。当使用”add”或者”del”参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。
route命令格式如下:
route [-nee] route add [-net|-host] [网络或主机] netmask [mask] [gw|dev] route del [-net|-host] [网络或主机] netmask [mask] [gw|dev]
-n:#在输出的路由信息中,直接显示ip地址而不显示主机名,像netstat命令也有此参数;
-ee:#显示更详细的静态路由信息;
添加一条新路由 (add) 与删除一条路由 (del) 路由的相关参数:
-net: #目标地址是一个网络;
-host:#目标地址是一个主机;
netmask:#当添加一个网络路由时,需要使用网络掩码,决定网域的大小;
gw:#gateway 的缩写,路由数据包通过的网关,后面接的是IP地址,与dev不同;
dev:#如果只是要指定由哪一块网卡出去,则使用这个设定,后面接eth0 等网卡设备名称;
路由查看及管理
[root@bogon ~]# 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 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
路由表字段含义
Destination 目标
The destination network or destination host. 目标网络或目标主机(有-n参数时,只显示IP地址,否则显示主机名称)。
Gateway 网关
The gateway address or ‘*’ if none set. 网关地址,如果没有就显示星号(加-n选项时为0.0.0.0)。
Genmask 网络掩码
The netmask for the destination net; ‘255.255.255.255’ for a host destination and ‘0.0.0.0’ for the default route. 即,”255.255.255.255″表示一个主机。”0.0.0.0″表示网关。
Flags Possible flags include 标志,常用的是U和G。
U (route is up) 路由启用
H (target is a host) 目标是主机
G (use gateway) 使用网关
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)
Metric 距离、跳数。暂无用。
The ‘distance’ to the target (usually counted in hops). It isnot used by recent kernels, but may be needed by routing dae-mons.
Ref 不用管,恒为0。Number of references to this route. (Not used in the Linux ker-nel.)
Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。
Count of lookups for the route. Depending on the use of -F and-C this will be either route cache misses (-F) or hits (-C).
Iface 接口,即eth0,eth0等网络接口名Interface to which packets for this route will be sent.
添加路由
[root@bogon ~]# route add -net 192.168.3.0/24 gw 192.168.1.1 dev eth0
添加一条到达192.168.3.0网络的路由,指定网络掩码为255.255.255.0,数据包通过网络接口eth0,并且数据包将发往网关地址192.168.1.1
添加默认路由
[root@bogon ~]# route add default gw 192.168.1.1
删除路由
[root@bogon ~]# route add -net 192.168.3.0/24 gw 192.168.1.1 dev eth0
netstat命令
用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
用法
netstat [-veenNcCF] [<Af>] -r
netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<Socket> ...]
netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
常用组合
-tan, -uan, -tnl, -unl, -tunlp ...
列出处于监听状态的socket
[root@bogon ~]# netstat -l
显示所有被监听的tcp连接
[root@bogon ~]# netstat -tal Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN tcp 0 52 bogon:ssh bogon:6170 ESTABLISHED tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN
显示所有接口的统计数据
[root@bogon ~]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 3898 0 0 0 1828 0 0 0 BMRU eth0:0 1500 0 - no statistics available - BMRU lo 65536 0 0 0 0 0 0 0 0 0 LRU
-I<IFace>:指定接口的统计数据