一.Ip协议特征
(1)internet协议特征
- 运行于 OSI 网络层
- 面向无连接的协议
- 独立处理数据包
- 分层编址
- 尽力而为传输
- 无数据恢复功能
二.IP PDU 报头
(1)基本特征
- 版本:占4位,单位bit 。指 IP 协议的版本目前的IP协议版本号为4
- 首部长度:占4位,可表示的最大数值是15个单位,一个单位为4字节 ,因此IP 的首部长度的最大值是60字节,首部字节范围是20-60字节
- 区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但 实际上一直未被使用过.后改名为区分服务.只有在使用区分服务 (DiffServ)时,这个字段才起作用.一般的情况下都不使用
- 总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的 最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU
- 标识:占16位,它是一个计数器,通常,每发送一个报文,改值会加1 , 也用于数据包分片,在同一个包的若干分片中,该值是相同的
- 标志(flag):占3位,目前只有后两位有意义 DF: Don‘t Fragment,中间的一位,只有当 DF=0 时才允许分片
- MF: More Fragment,最高位,MF=1表示后面还有分片。MF=0 表示最后一个分片
- 片偏移:占12位,指较长的分组在分片后,该分片在原分组中 的相对位置.片偏移以8个字节为偏移单位
- 生存时间:占8位,记为TTL (Time To Live) 数据报在网络中 可通过的路由器数的最大值,TTL 字段是由发送端初始设置一 个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255
- 协议:占8位,指出此数据报携带的数据使用何种协议以便目的
主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议 - 首部检验和:占16位,只检验数据报的首部不检验数据部分.这 里不采用 CRC 检验码而采用简单的计算方法
- 源地址和目的地址:都各占4字节,分别记录源地址和目的地址
三.IP地址
- 它们可唯一标识 IP 网络中的每台设备
- 每台主机(计算机、网络设备、外围设备)必须具有唯 一的地址
- IP地址由两部分组成:
(一)网络ID:
标识网络
每个网段分配一个网络ID
(二) 主机 ID:
标识单个主机
由组织分配给各设备
(三)IPv4地址格式:点分十进制记法
示例:Ipv4地址格式
该ip地址为32位地址,将每八位分为一段,划分为四组八位二进制数
11000000.10101000.10001000.11000010
转化为十进制数,方便读取——192.168.136.162
(四)IP地址分类
主要分为五类:A 、B、C、D、E
(1)A类:采用ipv4方式,一共由32位组成,其中前八位是网络id,后24位是主机id。
网络范围是:00000000——01111111对应十进制数是0——127。
ip地址的范围是1-126(减去未知地址0.0.0.0和回环地址127.0.0.1)
主机数:2^24-2个——后24位全为0代表为某网络id,后24位全为1的时候是某网络广播
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
公式1:计算网络中主机最大数量=2^主机位数-2
(2)B类:前16位是网络id,后16位是主机id
网络数:2^14
主机数:2^16-2
ip地址范围:128-191
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
公式2:网络数=2^可变网络id位
(3)c类:
ip地址开头范围:11000000——11011111对应十进制数192——223
网络数:2^21-2
主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
(4)d类:组播
1110 0000 - 1110 1111: 224-239
(5)E类:
240-255
(五)公共ip与私有ip
(1)公共IP image.png
(2)私有IP地址
image.png
双方的区分方式:公共IP不需要注册,而私有ip需要注册,且仅限于局域网中使用
(六)一些特殊地址的介绍
(1)0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示的含义是包含所有的未知地址
(2)255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
(3)127.0.0.1~127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为 “127.0.0.1”的 数据包。
(4)224.0.0.0到239.255.255.255
组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。
224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序
(5)169.254.x.x 如果Windows主机使用了DHCP自动分配IP地址
(七)子网掩码
(1)特征:32位二进制数组成,对应的网络id为1,主机id为0
(2)网络id:ip与网络掩码相与——通过CIDR表示法(无类域问路由,网络id与id不是固定不变)
(3)划分子网:将一个大网络分割成多个小网络,每个小网络主机数id减少,网络id增多,原来的大网络id向主机id位借位
(4)划分超网:把多个小网络合成一个大网络,每个网络id变小,主机id变多,原来主机id位向网络位借位
公式三:CIDR表示法=IP或网络ip/网络id位数
公式四:划分子网数量=2^网络id向主机借的位数
公式五:划分子网后损失的ip数=(划分子网数量-1)*2
例题:ip地址为 160.200.0.0/16——划分十六个子网
问:
(1)划分子网的netmask
解析:根据公式四可知,网络id向主机位借了4位,因此可知子网掩码为20个1,则netmask是:255.255.240.0
(2)每个子网主机数:
根据公式一可知:主机数=2^(32-20)-2=4094
(3)最小,最大子网网络id:
因为向主机借了四位,所以网络的最小id为0000——160.200.0.0,最大id为1111——160.200.240.0
(4)最大子网Ip范围:
主机位最少为1,最大为254,所以范围是160.200.0.1/20——160.200.0.254/20
四.跨网络通信(路由)
跨网络通信:路由
实现过程: image.png
路由分类:
主机路由
网络路由
默认路由
优先级:精度越高,优先级越高
(一)DHCP:动态主机配置协议
(二)基本网络配置
- 将Linux主机接入到网络,需要配置网络相关设置。
- 一般包括如下内容: 主机名 IP/netmask
路由:默认网关
接口命名方式:CentOS 6 以太网:eth[0,1,2,...] ppp:ppp[0,1,2,...] image.png
DNS服务器
主DNS服务器 次DNS服务器 第三DNS服务器
(3)CentOS 6网卡名称
网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules image.png
查看网卡:
dmesg |grep –i image.png
或是eth ethtool -i eth0 image.png
卸载网卡驱动:
modprobe -r e1000 image.png
rmmod e1000 image.png
装载网卡驱动: modprobe e1000
image.png
五.CentOS 6网卡名称
接口命名方式:CentOS 6
以太网:eth[0,1,2,...] ppp:ppp[0,1,2,...] image.png
网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
查看网卡: dmesg |grep –i eth ethtool -i eth0 image.png
卸载网卡驱动: modprobe -r e1000 rmmod e1000
装载网卡驱动: modprobe e1000
(一)网络配置方式
ifconfig, route, netstat
ip: object {link, addr, route},
ss, tc system-config-network-tui,
setup 配置文件
动态分配: DHCP: Dynamic Host Configuration Protocol
(二).配置网络接口
- ifconfig命令
ifconfig [interface]——ifconfig eth0,eth1,查看网卡信息
ifconfig -a :查看所有网卡
ifconfig IFACE [up|down]:启用,禁用网卡
ifconfig eth0 down:禁用网卡,up 启用网卡
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
例如:ifconfig eht1 172.18.138.156/16 ——对该网卡配置ip
注意:立即生效
启用混杂模式:[-]promisc
(三).route命令
默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
删除:
route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -host 192.168.1.3 gw 172.16.0.1 dev eth1
目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0或route del -net 192.168.0.0/24
(四)netstat命令
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表 -n: 数字格式
image.png image.png
显示接口统计数据: netstat {--interfaces|-I|-i} [iface] [--all|-a] [-extend|-e] [--program|-p] [--numeric|-n]
netstat -i
netstat –I=IFACE——注意该命令中间不能有空格:netstat -Ieth0或是netstat -I=eth0
ifconfig -s eth0
(五)ip命令
(1) ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 仅链接可用
host: 本机可用
[broadcast ADDRESS]:指明广播地址
ip address flush ——清除Ip地址
例:ip addr add 172.18.123.100/16 dev eth0 label eth0:0
image.png
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 image.png
ip addr flush dev eth0 label eth0:0
ip addr flush dev eth1 image.png
通过ip link set up dev eth1开启网卡
再执行ifconfig eht1 down 最后再开启 ifconfig eth1 up image.png
(2) ip route - routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK ip route add 192.168.0.0/24 via 172.16.0.1 ip route add 192.168.1.13 via 172.16.0.1
添加网关:ip route add default via GW dev IFACE ip route add default via 172.16.0.1
删除路由:ip route delete ip route del TARGET
显示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX] ip route flush dev eth0
例题:
ip route add 192.168.0.0/24 via 172.18.0.1
ip route add 192.168.10.12 via 172.18.0.1
ip route add default via 172.18.0.1或gw dev eth1
删除路由:ip route del 或是flush
ip route del 172.18.0.0/24 dev eth1
ip route flush 172.18.0.0/24 dev eth1
(六)网络配置文件
(1)IP、MASK、GW、DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE image.png
DEVICE和HWADDR是网卡的标识,也就是说即使将eth1改成haha,通过ip a显示也仍是eth1
bootp NM_CONTROLLED:NM是NetworkManager的简写, 此网卡是否接受NM控制;建议CentOS6为“no”——手动设置service NetworkManager stop image.png
路由相关的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常 用的dhcp, static, none, 也可以不写,表示不要自动获取,通过自己手动配置来获取固定IP地址
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址 ——当BOOTPROTO=none或是static时,手动来配置新ip地址
NETMASK:子网掩码
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许 dhcp server分配的dns服务器指向信息直接覆盖至 /etc/resolv.conf文件中
在/etc/sysconfig/network也可以修改先关信息
在配置文件和network中同时设置网关,通过ip a显示的是配置文件的网关,这表明了配置文件的优先级高于network
配置路由:/etc/sysconfig/network-scripts/route-IFACE
注意:需service network restart生效
两种风格:
(1) TARGET via GW 如:10.0.0.0/8 via 172.16.0.1
image.png
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW image.png
(七)主机名和本地解析器
配置当前主机的主机名:
hostname [HOSTNAME] /etc/sysconfig/network
HOSTNAME=
image.png
image.png
解析器执行正向和逆向查询
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNS前检查
getent hosts 查看/etc/hosts 内容:
image.png
(八)网卡别名
将多个ip设置到一个网卡上
ifconfig eth0:0 192.168.1.100/24 up image.png
eth0:1 、eth0:2、 eth0:3
(1)使用ifconfig设置别名
ifconfig eth0:0 down image.png
(2)使用ip命令设置别名
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0 image.png
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0 image.png
注意:以上方法属于临时有效,开机就会自动消失,想要保存就要通过配置文件的设置来实现
(1)关闭NetworkManager服务
service NetworkManager stop
chkconfig NetworkManager off
(2)配置格式
ifcfg-ethX:xxx • 必须使用静态联网
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0 ONPARENT=yes
注意:service network restart 生效 image.png
网关也要设置成不同的网关
(九 )网络接口配置-bonding
Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高 可用或者负载均衡。当然,直接给两块网卡设置同一IP地址 是不可能的。通过bonding,虚拟一块网卡对外提供连接, "物理网卡的被修改为相同的MAC地址"。
(1)主要模式
- Mode 0 (balance-rr) 轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
- Mode 1 (active-backup) 活动-备份(主备)策略:只有一个slave被激活,当且仅当活动 的slave接口失败时才会激活其他slave。为了避免交换机发生混 乱此时绑定的MAC地址只有一个外部端口上可见
- Mode 3 (broadcast) 广播策略:在所有的slave接口上传送所有的报文,提供容错能力 active-backup、balance-tlb 和 balance-alb 模式不需要 交换机的任何特殊配置。其他绑定模式需要配置交换机以便 整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
(2)创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes USERCTL=no
查看bond0状态:/proc/net/bonding/bond0
miimon 是用来进行链路监测的。如果miimon=100,那 么系统每100ms 监测一次链路连接状态,如果有一条线 路不通就转入另一条线路 删除bond0 ifconfig bond0 down rmmod bonding
网友评论