接上回,Nginx访问权限管理
low address bits of 192.168.101.0/16 are meaningless in /usr/local/nginx/conf/nginx.conf:122
location / {
allow 192.168.101.0/24;
deny all;
...
}
网关在网络层以上实现网络互连,是复杂的网络互连设备。网关既可以用于广域网互连,也可以用于局域网互连。
A:IP地址范围 192.168.1.1~192. 168.1.254,子网掩码 255.255.255.0 B:IP地址范围 192.168.2.1~192. 168.2.254,子网掩码 255.255.255.0
计算所得(见下述计算方式):A 网络地址为 192.168.1.0,B网络地址为 192.168.2.0。
两个网络中的主机处在不同的网络里,而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
在计算机领域中,网络就是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。网络地址(Network address)则是互联网上的节点在网络中具有的逻辑地址,可对节点进行寻址。
IP地址,是指互联网协议地址,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址=网络地址+主机地址
类别 | 最大网络数 | IP地址范围 | 默认掩码 | 单个网段最大主机数 | 私有IP地址范围 |
---|---|---|---|---|---|
A | 126( 2 7 − 2 2^7-2 27−2) | 1.0.0.1-126.255.255.254 | 255.0.0.0/8 | 16777214 | 10.0.0.0-10.255.255.255 |
B | 16384( 2 14 2^{14} 214) | 128.0.0.0-191.255.255.255 | 255.255.0.0/16 | 65534 | 172.16.0.0-172.31.255.255 |
C | 2097152( 2 21 2^{21} 221) | 192.0.0.0-223.255.255.255 | 255.255.255.0/24 | 254 | 192.168.0.0-192.168.255.255 |
子网掩码,是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
IP地址:192.168.101.222 (11000000 10101000 01100101 11011110)
子网掩码:255.255.255.0 (11111111 11111111 11111111 00000000)
11000000101010000110010111011110 & 11111111111111111111111100000000 − − − − − − − − − − − − − − − − − 11000000101010000110010100000000 11000000 10101000 01100101 11011110 \\ \& 11111111 11111111 11111111 00000000 \\ -----------------\\ 11000000 10101000 01100101 00000000 11000000101010000110010111011110&11111111111111111111111100000000−−−−−−−−−−−−−−−−−11000000101010000110010100000000
网络地址:192.168.101.0(11000000 10101000 01100101 00000000)上述计算所得
主机地址:222(11011110)后8位
0/24
是啥意思?192.168.101.0/24 (11000000 10101000 01100101 00000000)
24 标示了我们的网络号的位数(也就是子网掩码中前多少号为1),8(32-24)是主机号位数,IP地址=网络地址+主机地址。
说明 | 结果 |
---|---|
后8位全0,是子网网络地址(00000000) | 192.168.101.0 |
后8位全1,是子网广播地址(11111111) | 192.168.101.255 |
剩余为有效可分配地址(00000001–11111110 ) | 192.168.101.1-192.168.101.254 |
文章开头,大家看到的那段配置,是对资源访问做限制所配置,基本诉求为:内网可以直接访问,外网需要通过账户密码访问。详见:Nginx 访问权限管理,为了满足场景,我们需要通过 ngx_http_auth_basic_module 来进行控制
通过 IP地址 & 子网掩码
可得知网络地址为 192.168.101.0,网络位数为 24。因此得出如下配置:
location / {
allow 192.168.101.0/24;
deny all;
...
}
IP 为 192.168.101.x 的都可以直接访问,其他 IP 地址需要账号和密码验证。
当然为了可以更大范围的内网允许访问(办公室多内网段:0/101/200/201 => 使用三层交换机打通各子局域网),可以将网络位数控制的更小。
location / {
allow 192.168.0.0/16;
deny all;
...
}
IP 为 192.168.x.x 的都可以直接访问,其他 IP 地址需要账号和密码验证。
出于安全和管理方便的考虑,主要是为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划成一个个小的局域网,这就使VLAN技术(虚拟局域网)在网络中得以大量应用,而各个不同VLAN间的通信都要经过路由器来完成转发,随着网间互访的不断增加。单纯使用路由器来实现网间访问,不但由于端口数量有限,而且路由速度较慢,从而限制了网络的规模和访问速度。
基于这种情况三层交换机便应运而生,三层交换机是为IP设计的,接口类型简单,拥有很强二层包处理能力,非常适用于大型局域网内的数据路由与交换,它既可以工作在协议第三层替代或部分完成传统路由器的功能,同时又具有几乎第二层交换的速度。