一、总结IP地址规划
-
IP地址是一个32位的二进制数,书写时一般写成4段十进制,方便阅读
例如 192.168.39.101 转换为二进制 :
192 -> 11000000
168 -> 10101000
39 -> 00100111
101 -> 01100101
因此合并在一起: 11000000101010000010011101100101
将上面的二进制数进而转换为10进制: 3232245605
遇到ping 后面跟一个十进制数字的写法不要觉得奇怪:
ping 3232245605 就等价于 ping 192.168.39.101
image.png
-
IP地址按照最早期的分类方法分为A B C D E 五类,分别是:
A : 网络位是高8位,低24位为主机位,并且最高位固定为0
网络位范围: 1 - 126 包含了126个网段 1600万个主机地址
B : 网络位是高16位,低16位为主机位, 并且高2位固定为10
网络位范围:128-191 包含64个网段 65534个主机位
C : 网络位是高24位,低8位为主机位,并且高3位固定为 110
网络位范围: 192-223 包含了32个网段 62个主机位
D : 范围 224 - 239 一般作为组播地址使用
E : 保留用作科学计算使用 240-254
3 IP地址划分子网
就是把一个大的网段 根据网络中的实际机器的数量,切分成若干个小的网段,是通过网络位向主机位借位实现:
案例: 10.0.0.0/8 给31个省份公司划分各自的子网
第一步:31省各占一个子网,向主机位借5位:
10.00000 000.0.0/13 山东
10.00001 000.0.0/13 广东
10.00010 000.0.0/13 河南
...
10.11111 000.0.0/13 云南
一共有32个子网,每个省的主机数 2^(32-13) - 2 = 2^19 -2
第二步:每个省份再根据本省地市,继续划分子网,例如广东21个地市:
比如广东分得的网段是 10.8.0.0/13
根据21个地市在10.8.0.0/13 此子网的基础上再向主机位借5位 :
10.00001 000.00 000000.0/18 广州
10.00001 000.01 000000.0/18 深圳
10.00001 000.10 000000.0/18 东莞
10.00001 000.11 000000.0/18 佛山
...
10.00001 101.01 000000.0/18 揭阳 --21个地市21个子网
第三步:每个地市再根据本地市的区进一步划分,比如深圳有6个区:
根据深圳的网段 10.00001 000.01 000000.0/18 向主机位借3位
10.8.01 000 000.0/21 南山区
10.8.01 001 000.0/21 罗湖区
10.8.01 010 000.0/21 福田区
10.8.01 011 000.0/21 宝安区
10.8.01 100 000.0/21 龙岗区
10.8.01 101 000.0/21 盐田区
第四步:深圳罗湖区在根据区内管辖的是个街道进一步划分子网:
罗湖区又划分为10个街道, 那么再向主机位借4位:
10.8.01 001 000.0 0000000/25 罗湖区桂园街道
10.8.01 001 000.1 0000000/25 罗湖区黄贝街道
10.8.01 001 001.0 0000000/25 罗湖区东门街道
...
10.8.01 001 101.0 0000000/25 罗湖区清水河街道
总结一下: 子网划分,通过不断向主机位借位,从省到地市到区到街道到办公大楼,层层往下划分
2、总结常见网络管理命令
ifconfig :
fconfig --> 默认什么选项也不加,会显示所有网卡的配置信息
ifconfig eth1 down --> 在数据链路层 禁用eth1 , ip也自然没有了。看不见eht1 的信息,但是ping没问题
ifconfig eth1 up --> 启用网卡 eth1
ifconfig -a --> 显示所有的网卡信息,包括禁用的 ,但是看不到地址
临时配置和清空地址:
ifconfig eth1 1.1.1.1/24 ---> 临时配置ip地址
ifconfig eth1 0.0.0.0 --> 临时清除地址
对网卡增加多个子接口(配置多个ip地址)
ifconfig eth1:123 1.1.1.1/24 --> 网卡别名 eth1:123
ifconfig eth1:321 2.2.2.2/24 --> 网卡别名 eth1:321
ifconfig eth1:123 down --> 禁用网卡,因为是临时设置的,相当于这个ip就永远取消了
ifdown eth1 --> 网络层down 但在链路层不会down,使用 ip a 查看仍然是UP
ifup eth1 --> 启用 依赖于配置文件
ip
ip是官方推荐的新的关于配置网络的命令,它的语法是调用具体的子命令实现具体某一功能的配置
ip 命令在CentOS 6 系统中默认是无法补全子命令的,可安装 bash-completion 包解决:
1 配置epel源:
2 yum search bash -> bash-completion.noarch
3 yum install bash-completion.noarch
4 exit 重新登录shell
5 ip tab键 就能出来对应的补全命令
ip 常见用法:
1 ip 在数据链路层的操作:
ip link --> 显示链路层的信息
ip link set eth1 down --> 数据链路层down
2 ip 在网络层的操作
ip addr -> 查看网络层信息
ip a --> addr简写为 a
ip addr add 192.168.39.100/24 dev eth0 --> 增加ip地址
注意: 每增加一个ip,都会新增ip对应的网络路由到路由表中
ip a a 192.168.39.100/24 dev eth1 --> 简写形式 注意通过ip addr add 增加的地址 使用ifconfig是查看不到的,只能用ip a 命令查看
给网卡起别名绑定新的ip地址: ifconfig 1.1.1.1/24 eth0:123
ip addr del 192.168.39.100/24 dev eth0 --> 删除ip地址
ip a del 192.168.39.100/24 dev eth0 --> 删除ip地址的简写形式
3 如果一个网卡上设置了多个地址,通过flush全部清除:
ip addr flush eth0
ip addr show eth0 :
inet 192.168.34.100/24 scope global eth0
inet 192.168.34.1/24 scope global secondary eth0
inet 192.168.34.2/24 scope global secondary eth0
inet 192.168.34.3/24 scope global secondary eth0
secondary 是辅助地址,优先级没有 全局地址的高
ip addr flush eth0 --> 清空eth0上的所有ip地址,包括使用配置文件配置的地址
4 指定IP的工作范围:
网卡的ip默认情况下是工作在内核级别,在全局中有效, 换言之,如果一台主机有两个ip(ipa、ip2) ,C主机和ip1网段,但是同样也能ping的通主机的ip2
工作在全局 scope global
工作在链路层 scope link --> ip地址在某块网卡上有效, 数据包如果从主机的其它网卡发来不会接收,因为地址不是在全局内有效
工作在主机侧: 数据包只能在自己本机上自己发送给自己才会有效
5 加卷标 Label
ip a a 192.168.34.101/24 dev eth0 label eth0:2
6 ip route 管理路由
ip route add 192.168.34.0/24 via 0.0.0.0 dev eth1
--> 为 eth1 添加网络路由 192.168.34.0/24 指向网关 0.0.0.0
ip route add default via 192.168.80.2 --> 删除默认路由
ip route del 192.168.34.0/24 via 0.0.0.0 dev eth1 --> 删除直连路由
指定metric (相当于优先值)
ip route add default via 192.168.80.2 metric 200 --> 配置网关,指定metric值为200
7 ip route flish dev eth0 -> 清空路由表
如果是物理上断开连接,即虚拟机右下角的网卡连接图标选断开连接:
那么ip地址会消失 ,链路层也处于down的状态
nmcli
centos 7 中推荐使用nmcli 工具管理网络的配置:
nmcli device --> 显示device 的状态 device对应数据链路层
nmcli device show eth0 --> 显示某一块网卡的详细信息
nmcli connection ---> 管理连接的 , 对应网络层,连接可以理解为配置文件,一个连接对应一套配置文件
nmcli connection modify eth1 connection.id eth1-office --> 修改配置文件中的NAME 字段
给网卡eth1新增一套配置,对应配置文件 ifcfg-eht1-home, 在企业的测试环境下用的比较多,必要时切换网络配置
nmcli connection add con-name eth1-home type ethernet ifname eth1 --> 多一套配置文件 ifcfg-eth1-home
nmcli connection modify eth1-home ipv4.method manual connection.autoconnec yes ipv4.addresses 10.0.0.100/8 ipv4.gateway 10.0.0.200 ipv4.dns 8.8.8.8
--> 配置文件中添加ip gw dns onboot选项等
nmcli connection up eth1-home --> 启用NAME为eth1-home的网卡配置
nmcli connection show eth1-home--> 查看网卡的详细信息 包括dhcp的地址 用NAME字段调用
增加一个地址:
nmcli connection modify eth1-home +ipv4.addresses 6.6.6.6/24 --> 是在eth1这一套配置上增加多一个ip地址,在配置文件 ifcfg-eth1中会多出来一行 IPADDR1=xx.xx.xx.xx
nmcli connection up eth1
nmcli connection reload --> 重新加载connection 在 nmcli connection 中将重新读取增加的配置文件
cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1-test
nmcli connection --> 新增的配置文件 ifcfg-eth1-test 并没有生效
nmcli connection reload --> 重新加载后 ,新增的配置文件就会显示出来了
nmcli connection up eth1-test1
删除网卡的某一套配置:
nmcli connection delete eth1-home
利用上述方法,可以针对一块网卡配置多套配置文件,想切换到哪一套可以随时进行切换
管理路由的命令route
route -n -->显示路由表, 所有地址用数字形式显示
1 添加主机路由:
route add -host host_ip gw gw_ip dev device_name
网关的地址和主机的网卡应在同一个网段
route del -host host_ip gw gw_ip
主机路由 > 网络路由 > 默认路由
2 添加网络路由:
route add -net host_ip/netmask [gw gw_ip] dev dev_name
注意,如果是添加直连同网段路由,则不用写 gw gw_ip
删除主机网卡所在网络路由会如何:
3 添加默认路由:
route add defaultgw gw_ip
如果有多个默认路由, 会走优先级高的一条路由(即metric值较小的路由)
生产中,同一个网段中的主机如果没有路由信息,昭阳不能通信
调整优先级 metric的值:
route add -net host_ip/netmask gw gw_ip dev dev_name metric number
netstat 命令, 用于查看网络的连接状态, 来自net-tools 是比较老的网络工具
常用选项:
netstat -ntulp
-n 以数字显示IP和端口
命令有两部分内容组成,一部分是通过TCP/UDP网络协议建立的连接。还有一部分是走本地UNIX系统的套接字文件建立的连接
-t 列出和tcp协议相关的
-l 处于监听状态的 默认情况下,不加此选项显示的是所有已经建立的连接
-u 列出udp协议相关的
-p 显示相关的进程以及PID
-a 显示所有状态 (连接和监听)
查看端口号对应的应用程序:
1 lsof -i :PID
2 netstat -ntupa
查看网卡的统计信息:
netstat -i --> 显示所有网卡的接收和发送数据包的统计信息
netstat -I=eth0 --> 指定特定的某一块网卡的统计信息
watch -n1 netstat -Ieth0 --> 每隔1秒观察一次
ifconfig -s eth0 --> statistics 网卡的统计信息
ping -f 192.168.34..100 -s 65507
ss : 套接字统计信息
ss命令的常见用法和优势(socket statistics 套接字统计信息)
ss 命令 显示连接的状态信息 比 netstat 速度快
-n ip地址显示为数字格式
-t 指定tcp协议
-l 本地打开的所有端口 local
-o state established 指定处在连接状态的
-pl 显示每个进程和端口号信息
-s 显示详细信息
常见用法:
ss -o state Established -npt
ss -nt 默认情况下就是正处于连接状态下的
3、给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么?
子网掩码 255.255.255.192 换成二进制: 11111111.11111111.11111111.11000000
因此可知道掩码为26位,用掩码和给定的IP地址做与运算后
- 88.0110 0011
255.255.255.1100 0000
167.77.88.01 000000/26 ==> 子网号: 167.77.88.64/26
- 88.0110 0011
广播地址, 即主机位全为0 :167.77.88.01 111111
得:167.77.88.127
有效的ip地址:
167.77.88.65 - 167.77.88.126
4、添加IP地址192.168.2.2/24到eth0网卡上
方法一:
ifconfig eth0 192.168.2.2/24 --> 临时有效
方法二:
ip addr add dev eth0 192.168.2.2/24
方法三:
nmcli conn modify eth0 +ipv4.address 192.168.2.2/24
nmcli conn up eth0
网友评论