IP和网段及子网掩码基础知识

IP地址由网络号和主机号两部分组成,网络号的最高位必须是“0”,IP地址和子网掩码求“与”算出网络地址,只有网络地址相同才可直接通信,否则需要借助路由。 主机标识段为全1的IP地址为广播地址, 广播数据包不经过路由器,只能在同一子网内部广播,UDP的广播地址为255.255.255.255。 子网中第一个地址为网络地址,最后一个地址为广播地址,这两个地址是不能配置在计算机主机上。根据网络号的不同,IP地址划分为ABCED五类。 子网掩码为何叫“掩码”?因为它能遮掩(同IP地址求与)IP地址的主机号部分,从而得到网络号(或网络地址)。 1) 以 inet 10.49.126.98  netmask 255.255.255.192  broadcast 10.49.126.127 为例: 10.49.126.98的二进制: 00001010.00110001.01111110.01100010 255.255.255.192的二进制: 11111111.11111111.11111111.11000000 10.49.126.98的网络地址为与子网掩码255.255.255.192的“与”: 00001010.00110001.01111110.01000000 即: 10.49.126.64 “10.49.126.64”即为网络地址,该子网可有多少主机? “00001010.00110001.01111110.01000000”最后一个1后的0为主机部分,这里一共6个0,即2的6次方,值为64,减去网络地址和广播地址,所以可用主机数为62个。 2) 以 inet 10.223.25.101  netmask 255.255.255.192  broadcast 10.223.25.127 为例: 10.223.25.101的二进制: 00001010.00110001.01111110.01100101 10.223.25.101的网络地址为与子网掩码255.255.255.192的“与”: 00001010.00110001.01111110.01000000 即: 10.49.126.64 因此10.223.25.101和10.49.126.98可直接通信。 3) 以 inet 9.25.130.171  netmask 255.255.255.192  broadcast 9.25.130.191 为例: 9.25.130.171的二进制: 00001001.00011001.10000010.10101011 9.25.130.171的网络地址为与子网掩码255.255.255.192的“与”: 00001001.00011001.10000010.10000000 即: 9.25.130.128 因此9.25.130.171和10.49.126.98不可直接通信,需要添加路由。 主机地址10.240.85.2/16中的数字16为子网掩码的缩写(CISCO表示法),16代表16个1,即:11111111.11111111.00000000.00000000,因此16就是255.255.0.0。 inet 10.240.85.2  netmask 255.255.255.192  broadcast 10.240.85.63 10.240.85.2     => 00001010.11110000.01010101.00000010 255.255.255.192 => 11111111.11111111.11111111.11000000 网段: 00001010.11110000.01010101.00000000 即: 10.240.85.0 故可表示为: 10.240.85.0/26 问题1:192.168.1.0/26和192.168.1.64/26是否可直接通信? 26           => 11111111.11111111.11111111.11000000 192.168.1.0  => 11000000.10101000.00000001.00000000 192.168.1.64 => 11000000.10101000.00000001.01000000 192.168.1.0的网段为: 11000000.10101000.00000001.00000000 即: 192.168.1.0 192.168.1.64的网段为: 11000000.10101000.00000001.01000000 即: 192.168.1.64 两个的网段不同,故不能直接通信。 问题2:192.168.1.0/26可容纳多少个IP? 26等于11111111.11111111.11111111.11000000,那么剩下的只有111111(6个1),十进制值为63,因此192.168.1.0/26可容纳64个IP(包含一个网段地址和一个广播地址)。 题1:对于C类地址,子网掩码为255.255.255.248,则能提供的子网数为多少? 248的二进制值为11111000,而二进制值11111的十进制值为31,因此可提供的子网数为30个。 题2:某公司申请到一个C类地址,但要连接6个子公司,最大的一个子公司有26台电脑,每个子公司在一个网段中,则子网掩码应设为多少? 26的二进制值为11010,因此网络掩码为:11111111.11111111.11111111.11100000,即255.255.255.224。 题3:地址190.233.27.13/16的网络部分地址是什么? 190.233.27.13 => 10111110.11101001.00011011.00001101 16            => 11111111.11111111.00000000.00000000 190.233.27.13和16求“与”得到: 10111110.11101001.00000000.00000000 即网络部分地址是190.233.0.0。 题4:一个子网网段地址为5.32.0.0,掩码为255.224.0.0的网络,它允许最大的地址是? 255.224.0.0 => 11111111.11100000.00000000.00000000 5.32.0.0    => 00000101.00100000.00000000.00000000 该网段的广播地址(同255.224.0.0求“与”后的值为5.32.0.0): 00000101.00111111.11111111.11111111 即: 5.63.255.255 因此最大IP地址为5.63.255.254 题5:一个C类地址192.168.5.0,进行子网规划,要求每个子网有10台主机,怎样设置子网掩码? 192.168.5.0 => 11000000.10101000.00000101.00000000 10 => 1010 那么子网掩码可设置为: 11111111.11111111.11111111.11110000 即255.255.255.240 附1:查看路由表命令 ip route 或 route -n 附2:iptables的简单应用 可以修改/etc/rc.d/boot.local让规则重启后也能生效,如: /sbin/iptables -F /sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp -j DROP /sbin/iptables -A INPUT -i eth0 -p udp -j DROP iptables是一个链的方式从前往后判断,如果前面的规则成立就不会往后继续,所以要注意顺序,一般每行对应一条规则。 -A是Append意思,也就是追加 -I是Insert意思,也就是插入 -F表示清除(即删除)掉已有规则,也就是清空。 查看已有的规则,执行命令:iptables -L -n 如(参数-L为list意思,-n表示以数字方式显示IP和端口,不指定-n则显示为名称,如:http即80端口): # iptables -L -n Chain INPUT (policy ACCEPT) target     prot opt source               destination          ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:443 ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80 DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            DROP       udp  --  0.0.0.0/0            0.0.0.0/0            Chain FORWARD (policy ACCEPT) target     prot opt source               destination          Chain OUTPUT (policy ACCEPT) target     prot opt source               destination  从可以看到:iptables有三种规则链(Chain),即INPUT、OUTPUT和FORWARD。 INPUT 用于指定输入规则,比如外部是可以访问本机的80端口 OUTPUT 用于指定输出规则,比如本机是否可以访问外部的80端口 FORWARD 用于指定端口转发规则(相当于rinetd功能),比如将8080端口的数据转到到80端口 -I和-A需要指定链(Chain)名,其中-I的链名后还需要指定第几条(行)规则。 可通过-D参数删除规则,有两种删除方式,一是匹配模式,二是指定第几条(行)。 也可以通过-R参数修改已有规则,另外-L参数后也可以跟链(Chain)名,表示只列出指定链的所有规则。 -j参数后跟的是动作,即满足规则时执行的操作,可以为ACCEPT、DROP、REJECT和REDIRECT等。 在iptables的INPUT链的第一行插入一条规则(可访问其它机器的80端口): iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT 在iptables的INPUT链尾追加一条规则(可访问其它机器的80端口): iptables -A INPUT -p tcp --sport 80 -j ACCEPT 如果要让其它机器可以访问本机的80端口,则为: iptables -A INPUT -p tcp --dport 80 -j ACCEPT 插入前: # iptables -L -n Chain INPUT (policy ACCEPT) target     prot opt source               destination          DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            DROP       udp  --  0.0.0.0/0            0.0.0.0/0   插入: # iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT 插入后: # iptables -L -n Chain INPUT (policy ACCEPT) target     prot opt source               destination          ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80 DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            DROP       udp  --  0.0.0.0/0            0.0.0.0/0   追加前: # iptables -L -n Chain INPUT (policy ACCEPT) target     prot opt source               destination          DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            DROP       udp  --  0.0.0.0/0            0.0.0.0/0  追加: # iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT 追加后(ACCEPT将不能生效): # iptables -L -n Chain INPUT (policy ACCEPT) target     prot opt source               destination          DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            DROP       udp  --  0.0.0.0/0            0.0.0.0/0  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80 删除INPUT的第3条规则: iptables -D INPUT 3

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

社区leaf学习笔记|07. 游戏玩家注册、登陆(下)

Leaf服务器返回给H5的JSON消息结构 文件位置:server\login\internal\handler.go

11110
来自专栏云计算教程系列

在你的CVM上安装SteamCMD服务器

Steam命令行版客户端(SteamCMD)是一个命令行版本的Steam客户端。它的主要用途是在一个命令行界面的Steam客户端上安装和更新各种可用的专用服务端...

58330
来自专栏jeremy的技术点滴

初识glusterfs

42240
来自专栏Felix的技术分享

Stetho工具介绍

25040
来自专栏微信公众号:Java团长

Spring中定时器实现

在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用...

12540
来自专栏上善若水

005工具及环境之nmap一览

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 ...

13830
来自专栏WeTest质量开放平台团队的专栏

了解和分析iOS Crash

原文链接:http://wetest.qq.com/lab/view/404.html

24220
来自专栏运维小白

10.13 netfilter5表5链介绍

Linux防火墙—netfilter netfilter的5个表 filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链 nat...

23560
来自专栏沃趣科技

MySQL InnoDB Update和Crash Recovery流程

1、首先介绍了Redo,Undo,Log Sequence Number (LSN),Checkpoint,Rollback Pointer (ROLL_PTR...

60570
来自专栏知识分享

3-51单片机WIFI学习(开发板8266底层源码介绍)

上一篇链接  http://www.cnblogs.com/yangfengwu/p/8743502.html 直接上源码:注意源码有两部分,第一部分是一开始的...

53950

扫码关注云+社区

领取腾讯云代金券