路由

地址分类
有类的 固定的网络ID 是多少位就是多少位
A 前8位是网络ID
0-127.x.x.x
其中0.x.x.x是未知地址,不能用
127.x.x.x是回环地址,不能用
所以有1-126个网段可用
公式:
网络(网段)数量=2^可变网络ID位数
一个网络的主机数量=2^主机ID位数-2
所以一个A类网络主机数有1600万
netmask:255.0.0.0

B类
128-191
10xxxxxx.xxxxxxxx.y.z
16位网络ID
16位主机ID
netmask:255.255.0.0
主机数:2^16-2=65534

C类
192-223
1110xxxxx.xxxxxxxx.xxxxxxxx.y
11000000.x.x.x
11011111.x.x.x
192-223.x.x.x
netmask:255.255.255.0
24位网络ID
8位主机ID
网络数:2^21=
主机数:2^8-2=254

D类
多播
224-239.x.x.x

如果一个路由器通过Hub连接两个主机,但是两个主机地址不一样,物理上在一个网段,逻辑上不在一个网段,相互通讯就要通过路由器,因为主机上的路由表。

查看路由表
#route -n
#ip route

无类的 CIDR,无类域间路由
IPV4地址一共32位
哪些位是网络ID , 哪些位是主机ID ,不确定,
通过 子码掩码(netmask) 来实现,netmask是10进制的
netmask:地址32位二进制数,有多少网络ID位数,对应netmask就是多少个1,有多少主机ID位数,对应netmask就是多少个0
例如:172.20.0.123对应netmask是16个1加16个0
11111111.11111111.00000000.00000000
netmask:255.255.0.0

一下这些都可能成为子码掩码
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255

例如:172.20.0.123 网络ID位数是22位,netmask?
255.255.11111100.0
255.255.252.0

练习:
1。 200.222.123.23/26
1)netmask?255.255.255.192
2)主机数是?2^(32-26)-2=2^6-2=62

**网络ID=IP与子网掩码=IP&&子网掩码
对位相与

例如:
IP: 192.168.1.100
子网掩码: 255.255.255.0
网络ID:192.168.1.0

划分子网:一个大网络(主机多=主机ID数多,网络ID位数少)划分成多个小网络(主机少=主机ID位数少,网络ID位数少),网络ID位向主机ID位借N位,就划分成2^N个小网络。

例如:
10.0.0.0/8划分成两个小网络:
10.0.0.0/9
10.128.0.0/9
其中10.0.0.0/9的最小IPmin:10.0.0.1
最大IPmax:10.127.255.254
因为 10.127.255.255不可用
两个子网边界的IP不可用

其中10.128.0.0/9的最小IPmin:10.128.0.1
最大IPmax:10.255.255.254

公式:
1)网络(网段)数量=2^可变网络ID位数
2)一个网络的主机数量=2^主机ID位数-2=2^(32-网络ID位数)-2
3)网络ID=IP与子网掩码netmask=IP &&子网掩码
4)划分子网数=网络ID位向主机ID位借N位,划分成2^N个。

因为A类地址有1600万个 ,连1600万个主机,广播域太大,一台主机发信息所有主机都可以收到,
所以每个省都有各自的小网络
要将一个大网络切分成多个小网络。
在一个大网络中,主机多=主机ID位数多,网络ID位数少
在小网络中,主机少=主机ID位数少,网络ID位数少

方法:
例如10.0.0.0/8 是一个大网络最大IP10.255.255.254/8,最小IP10.0.0.1/8,共1600万多个
网络ID是10,不变8位二进制数构成,主机ID是可变的,24位二进制数构成
把这个大网络变成2个子网络,网络ID向主机ID借1位,这1位可变,
所以子网络的网络ID 是由8位不变的二进制数+1位可变的二进制数构成,
子网络数量=2^1=2
每个子网络的主机ID 是由24-1=23位二进制数构成
每个子网络的主机数量=2^(24-1)-2=2^23-2=

例题:
10.0.0.0/8 划分成32 个子网给32个省公司使用
1)新的子网netmask?
255.248.0.0
32=2^N
N=5
新的子网网络ID位数=8+5=13
netmask 由32位数组成,网络ID是多少就有多少个1,剩下的全是0
所以用10进制表示netmask 255.248.0.0
2)新的子网:min netid ,max netid
10.00000 000.0.0 10.0.0.0/13 min netid
10.11111 000.0.0 10.248.0.0/13 max netid
3)新的子网存放最多的主机数是多少?
主机ID=32-13=19,主机数=2^19-2=524288
4)最大子网IP(max netid IP):min ip ,max ip
10.11111 000.0.1 min ip :10.248.0.1
10.11111 111.255.254 max ip : 10.255.255.254

#echo 2^21|bc

**划分超网:把多个子网合并成大网络,主机ID位向网络ID借位,借到子网拥有相同的网络ID为止,

私有IP地址

A 10.0.0.0到10.255.255.255

B 172.16.0.0到172.31.255.255

C 192.168.0.0 到192.168.255.255

公共IP地址

A 1.0.0.0到9.255.255.255
11.0.0.0到126.255.255.255

B 128.0.0.0到172.15.255.255
172.32.0.0到191.255.255.255

C 192.0.0.0到192.167.255.255
192.169.0.0到223.255.255.255

私有地址和互联网连接必须通过NAT转换
127开头的IP 都是回环地址,随便ping127开头的IP都能ping通
给回环网卡加个地址
#ip addr add 1.1.1.1/8 dev lo

#ip -a 查看 网卡列表
在加个地址
#ip addr add 2.2.2.2/16 dev lo
随便ping2.2.开头的IP都能ping通,因为只要前16位相同就可以
访问127开头的IP 只能本机使用

按A,B,C 类分一共有多少个网段
A:
0xxxxxxx.x.x.x
1-126 126个
B:
10xxxxxx.xxxxxxxx.x.x
2^14=16*1024=16384个
C:
110xxxxx.xxxxxxxx.xxxxxxxx.x
2^21=2097155个

所以网络中大概有200多万个网段

跨网段通讯:路由,多个网段通讯
工作原理:基于路由器里的路由表
路由表:记录到达网络中每个主机的路径
#route -n 查看路由记录
一般在centos7里有4条路由记录

路由器只负责把信息传递出去,传递到下一个网段
只关心目标地址IP
在路由表中
路由分类:
1主机路由:到达网络中主机路径怎么走,在路由表中体现是单个IP
2网络路由:到达网段怎么走,在路由表中体现的是网段的IP
3默认路由:0.0.0.0 ,未知网络路由,在连接网络的路由器里,把信息传到带有默认路由的路由器,信息会被自动传入网络广域网。

按A,B,C 类分一共有多少个网段
A:
0xxxxxxx.x.x.x
1-126 126个
B:
10xxxxxx.xxxxxxxx.x.x
2^14=16*1024=16384个
C:
110xxxxx.xxxxxxxx.xxxxxxxx.x
2^21=2097155个

所以网络中大概有200多万个网段

**优先级:精确越高,优先级越高
如果路由表里有192.168.30.100路由记录
当收到一个请求要到达192.168.30.100这个精确地址,走的是精确路由

当请求要到达的IP没在路由表里,那就走默认路由,

路由表的组成:关键的部分
1目标Destination:数据包发送的目标路径 IP
2子码掩码Genmask:IP对应的子码掩码
3接口Iface(interface):路由器的出口,
4网关Gateway
1)直连:不需要配置
2)非直连:下一个路由器连接本路由器的接口的网关IP

删除网关,无法联网
添加默认路由就可以联网
添加网关是为了生成 默认路由 记录
在window中添加默认路由
route add 0.0.0.0 mask 0.0.0.0 172.20.0.1(网关)
删除了默认路由 系统会同时把网关删除
即使有网关也无法联网
在window中删除默认路由
route delete 0.0.0.0 mask 0.0.0.0 172.20.0.1

A—1 R1 2 —3 R2 4—5 R3 6—B

A机器用Firefox http:// 访问B
A知道B IP
1)A判断B和A是否在同一网段
A拿自己的IP和自己的子码掩码相与(&&)得出结果x
再拿目标的IP和自己的子码掩码相与(&&)得出结果y
比较x是否等于y,一样在同一网段,用ARP协议把B的mac地址取出来,把数据包发往B

2)不在同一网段,尝试把数据包发往R1,在A上已经配置R1的网关IP1,但是不知道与R1相连的接口的mac,A要把包发给R1就得通过ARP广播 把IP1 解析成对应的MAC1。
在A的ARP缓存表cache记录了IP1与MAC1的对应关系。
然后就可以添加数据包的报文头部,三层
帧frame:目标dest mac:mac1 ; 源src mac:macA
ip:dest ip:IPB ; src ip:IPA
tcp:目标dest端口port:80 ; src port:随机的(因为A相对B是客户端)

3)开始发送包到R1,R1就开始查看R1的路由表,查到B所在网络的路由记录,直连发往B,不直连发往下一个路由器R2
查到连接B所在网络的接口2 ,下一个临近R1的路由器接口的网关 IP3
然后重复
ARP IP3 —->mac3
帧frame:目标dest mac:mac3 ; 源src mac:mac2
ip:dest ip:IPB ; src ip:IPA
tcp:目标dest端口port:80 ; src port:随机的(因为A相对B是客户端) syn

4) R2 查路由表

net B 接口4 IP5
ARP IP5 —->mac5
帧frame:目标dest mac:mac5 ; 源src mac:mac4
ip:dest ip:IPB ; src ip:IPA
tcp:目标dest端口port:80 ; src port:随机的(因为A相对B是客户端) syn

5) R3 查看路由表
net B 6
ARP IPB —->macB
帧frame:目标dest mac:macB ; 源src mac:mac6
ip:dest ip:IPB ; src ip:IPA
tcp:目标dest端口port:80 ; src port:随机的(因为A相对B是客户端) syn

路由只关心发送

更改网卡名

配置IP两种方法:

1。自动获取IP
自动到网络中找DHCP服务器
DHCP动态主机配置协议
DHCP服务器上维护了很多的IP地址,设置为自动获取时,会从DHCP服务器上申请一个IP地址,申请到就可以通讯了,这个过程就是DHCP通讯过程。
1)客户端:DHCP客户端广播,发现报文DISCOVER
2)服务器:DHCP服务器广播,提供消息OFFER,提供一个空闲的IP,并把IP打一个标签
3)客户端:DHCP客户端对请求消息做出响应REQUEST,
4)服务器:DHCP服务器已经确认消息ACK,确认获取的IP、网关、子码掩码、DNS、租期,结束交换过程

window主机名具有网络通讯功能
Linux主机名不具有网络通讯功能

#cd /etc/udev/rules.d
#ls
60-fprint-autosuspend.rules 70-persistent-cd.rules 97-bluetooth-serial.rules
60-openct.rules 70-persistent-net.rules 98-kexec.rules
60-pcmcia.rules 90-alsa.rules 99-fuse.rules
60-raw.rules 90-hal.rules

其中70-persistent-net.rules是一个规则文件 rules规则
定义网卡命名的规则文件

如果本虚拟机是从其他虚拟机复制过来的,
如果想把网卡名改成一个与其他网卡名相同的
更改规则文件
#vim 70-persistent-net.rules

把想要用的重复名的行删除,在把本机的网卡名改成想要的,就可以了。退出
改完的名不会马上生效,重启可以生效,但不现实
或者是把网卡的驱动卸载,重装就可以。
步骤
1)
#dmesg 看所有硬件信息

#dmesg | grep -i eth 看网卡的信息

e1000:网卡的驱动名

#ethool -i eth2 直接看网卡2 的驱动
知道名字就可以卸载对应的驱动模块
#modprobe -r e1000 卸载网卡的驱动模块,
在看看能否看到网卡
#ifconfig
看不到
重新加载模块
#modprobe e1000 加载网卡的驱动模块

这样前面的更改就可以生效

**如果
复制一个虚拟机,启动会和原来的虚拟机的mac冲突
网络无法启动,用VMware的,点开虚拟机设置,点击网卡,点击高级选项,下面会有生成,点击就会生成新的mac。用上面的方法重新卸载,重新加载,就可以生效。或者重启。
下午 06:15 18/05/03
14.4 00:40:24

静态指定
命令
旧的命令: ifconfig , route ,netstat
新命令: ip: object {link ,addr,route},ss,tc

图形命令:system-config-network-tui,
setup,

动态分配:
DHCP:Dynamic Host Configuration Protocol

配置网络接口
ifconfig命令
ifconfig [ interface ] , interface:ethX
ifconfig -a
ifconfig IFACE [up|dowm]启用禁用网卡

ifconfig interface [aftype] options |addrss..
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
注意:立即生效
启用混杂模式:[-]promisc

#ifconfig 默认显示活动的网卡信息

手动加网卡,先关机,在加网卡。在VMware上在虚拟机设置里加。

#ifconfig eth1 down 禁用eth1网卡
#ifconfig -a 看所有网卡

在#ifconfig 查看网卡时也可以看到RX接收数据包数量, TX发送数据包数量。

当把网线拔了,用ifconfig看并不明显,只能看到数据包的数量不变,但是用ip link 可以看的清楚
#ip link 看物理上的网卡状态 ,可以看到网卡是否工作,工作显示up ,不工作显示down。

#ifdown eth0 用命令禁用网卡eth0,仅仅可以禁用有配置文件的网卡。但是在物理上是没有禁用

#ifup eth0 启用网卡

网卡的配置文件 在
/etc/sysconfig/network-scripts/

可以用ifconfig改网卡地址,临时的

#ifconfig eth1 1.1.1.1/24 或
#ifconfig eth1 1.1.1.1 netmask255.255.255.0
就可以把eth1的IP改为1.1.1.1 ,仅仅是临时的。
然后用ifconfig禁用启用就可以还原 原来的IP
#ifconfig eth1 down 禁用网卡
#ifconfig 显示网卡,但是eth1没有获取IP
#ifconfig eth1 up 启用网卡,IP又还原了

**添加路由
route命令
用route添加的路由记录重启 机器就会被删除
添加IP地址自动添加路由记录

查看路由表:route -n
添加路由: route add

#route add [-net|-host] target [netmask Nm][gw Gw][[dev] lf]
-net 网络路由
-host 主机路由
gw 后面跟网关
dev后面加接口
例如
#route add -host 6.6.6.6 gw 3.3.3.100 dev eth1
其中dev eth1 可加可不加

#route add -net 8.8.8.8/32 gw 3.3.3.100
等价于
#route add -net 8.8.8.8 netmask 255.255.255.255 gw 3.3.3.100

#route add -net 10.0.0.0/8 gw 192.168.30.100
代表要到达10.0.0.0网段需要通过网关192.168.30.100

加的路由的网关必须和主机在同一网段

添加默认路由表
#route add default gw 192.168.30.100
也可以写成
#route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.30.100

删除默认路由记录
#route del default gw 192.168.30.100

删除主机路由记录
#route del -host 6.6.6.6
删除网络路由记录
#route del -net 10.0.0.0 netmask 255.0.0.0

在一台主机上的两个虚拟机,各自添加IP,后发现无法互通,只要各自添加各自的默认路由就可以了
#route add default dev ens33或eth0

#tcpdump -i eth1 icmp 抓包icmp协议的包

无论加网关还是加IP都是加 路由记录

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97657

(0)
lhl123456lhl123456
上一篇 2018-05-06
下一篇 2018-05-06

相关推荐

  • cobbler自动化安装

    实验:实现cobbler安装 1 安装包 yum install cobbler(EPEL) dhcp httpd tftp systemctl enable cobblerd dhcpd httpd tftp systemctl start cobblerd httpd tftp 2 cobbler check 3 vim /etc/cobbler/set…

    Linux笔记 2018-05-27
  • vim

    翻屏半Ctrl+ b uf d 屏幕 首 中 尾HML 段首尾 分割 整空行#{} 句首 分割 ._ 或者 整空行#() 选行1G(gg)#GG 光标# kh lj 行内0_^$ 单词#bWe w 配置/etc/vimrc      /* 全局 */~/.vimrc         /* 个人 */ 行号                           …

    Linux笔记 2018-07-01
  • 运维之ansible

    运维工作:系统安装(物理机、虚拟机)–> 程序包安装、配置、服务启动 –> 批量操作 –> 程序发布  –> 监控 稳定可用     ——-      标准化            ———        自动化 系统安装: 1、…

    2018-07-16
  • grep运用及深化

    grep运用及深化
    知识点:1.https://blog.csdn.net/weixin_36689020/article/details/53230529
    2.https://www.cnblogs.com/tsw1107/p/2264a01aeec481d2044dfeda01417c64.html

    Linux笔记 2018-06-03
  • 罗列Linux发行版的基础目录名称命名法则及功用规定

    FHS:     Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml     /bin:所有用户可用的基本命令程序文件;     /sbin:工系统管理使用的工具程序;     /boo…

    Linux笔记 2018-05-13
  • 08 tr命令练习

      tr命令 转换或删除字符 tr tr [OPTION]… SET1 [SET2]   -c 取反   -d 删除   -s 如果有重复字符,则代替为一个字符-压缩   -t 使set1长度和set2长度一致 示例1: tr set1 set2        将set1字符转换为set2要求的字符

    Linux笔记 2018-04-05