Jump to content

Trợ giúp:Cấm dãy IP

From mediawiki.org
This page is a translated version of the page Help:Range blocks and the translation is 22% complete.
Outdated translations are marked like this.
PD Lưu ý: Khi bạn sửa đổi trang này, bạn đồng ý phát hành đóng góp của bạn theo giấy phép CC0. Xem trang trợ giúp cộng đồng để biết thêm. PD
Xem Help:Range blocks/IPv6 để biết cách cấm dãy IPv6.

Cấm dãy IP là phương thức hạn chế được áp dụng thông qua hình thức Special:Block một nhóm địa chỉ IP để ngăn cản họ sửa đổi, tại tài khoản mới, gởi điện thư qua giao diện wiki, vân vân. Khi bạn đánh dấu lựa chọn "Áp dụng tác vụ cấm cho các thành viên đăng nhập từ địa chỉ IP này", người dùng đăng nhập từ các thiết bị có địa chỉ IP thuộc dãy chỉ định cũng không thể thực hiện các sửa đổi.

Để cấm một dãy IP từ Special:Block, nhập địa chỉ IP đầu tiên của dãy, kế đến là dấu forward slash (/) và cuối cùng là một hậu tố Classless inter-domain routing (CIDR). Cẩn thận: Chỉ nên thực hiện cấm dãy IP khi bạn thực sự hiểu rõ bạn sắp sửa làm gì, bởi hành động của bạn có thể khiến hàng chục ngàn hay thậm chí hàng triệu người vô can bị cấm biên tập!

Bài viết này chủ yếu nói về cấm dãy IPv4; cấm dãy IPv6 cũng được thực hiện tương tự, nhưng cũng có chút khác biệt - xem /IPv6.

Giải thích phi-kỹ thuật

Địa chỉ IP được chia nhỏ thành từng cụm số. Ví dụ 148.20.57.0 đến 148.20.57.255. Khi phần cuối của địa chỉ này đạt đến 255 địa chỉ kế tiếp sẽ là 148.20.58.0.

Địa chỉ IP cũng có thể chia nhỏ thành những cụm lớn hơn hoặc nhỏ hơn. Thông thường, cụm nhỏ nhất là những cụm 4 số. Ví dụ:

148.20.57.0 - 148.20.57.3,
148.20.57.4 - 148.20.57.7,
148.20.57.8 - 148.20.57.11, ...

Với mỗi cụm 4 số, chỉ có 2 số có thể được chỉ định làm địa chỉ IP cho máy tính. Số đầu và số cuối được dành riêng cho giao tiếp mạng. These are level 30 blocks and can be expressed like this:

148.20.57.0/30,
148.20.57.4/30,
148.20.57.8/30, ...

Cụm lớn nhất kế tiếp là cụm 8 số. Ví dụ:

148.20.57.0 - 148.20.57.7,
148.20.57.8 - 148.20.57.15,
148.20.57.16 - 148.20.57.23, ...

Đối với cụm 8 số này, cũng chỉ 6 số được dùng cho làm địa chỉ IP máy tính, số đầu và số cuối của cụm được dành riêng cho giao tiếp mạng. Các cụm này được biểu diễn như sau:

148.20.57.0/29,
148.20.57.8/29,
148.20.57.16/29, ...

Tiếp tục, số lượng địa chỉ IP trong mỗi cụm tăng dần theo lũy thừa cơ số 2: 16, 32, 64, 128, 256, vân vân.

A block of 16 would start 148.20.57.0/28.
A block of 32 would start 148.20.57.0/27.
A block of 64 would start 148.20.57.0/26.
A block of 128 would start 148.20.57.0/25.
A block of 256 would start 148.20.57.0/24.

Giả thử, nếu bạn có một địa chỉ IP và bạn muốn cấm dãy chứa địa chỉ IP đó, bạn sẽ làm thế nào? Cụ thể hơn, bạn có vấn đề với IP 148.20.57.34. Để biết thêm chi tiết về thiết bị có địa chỉ IP này, bạn có thể nhấn vào http://arin.net/whois/?queryinput=148.20.57.34. Say this tells us that this IP address is assigned, along with a LOT of others in a /17 range, to the Department of Defense. We certainly don't want to block a large block of the DoD! Có một luật bất thành văn là ta nên cấm càng ít càng tốt. Only block a range if there is a cluster of IP addresses giving a problem.

There's a calculator that is very useful for this:

toolforge:ftools/general/ip-range-calc.html

Go to this site and enter 148.20.57.34 into the first set of blanks. Now select Network Prefix Length and enter 27 (this will give a block of 32 addresses) and click Calculate Network Information. This will show us a block of 32 IP addresses that include 148.20.57.34. (The first—network and the last—broadcast addresses will be displayed along with the usable addresses in the range.) You can use this tool to test ranges to be sure they are what you want before entering the information to initiate the block.

Technical explanation

CIDR notation is written as the IP address, a slash, and the CIDR suffix (for example, the IPv4 "10.2.3.41/24" or IPv6 "a3:bc00::/24"). The CIDR suffix is the number of starting digits every IP address in the range have in common when written in binary.

For example: "10.10.1.32" is binary "00001010.00001010.00000001.00100000", so 10.10.1.32/27 will match the first 27 digits ("00001010.00001010.00000001.00100000"). The IP addresses 10.10.1.3210.10.1.63, when converted to binary, all have the same 27 first digits and will be blocked if 10.10.1.32/27 is blocked.

As the CIDR suffix increases, the block affects fewer IP addresses (see table of sample ranges). CIDR suffixes are not the same for IPv4 addresses as they are for IPv6 addresses; the same CIDR suffix in IPv4 blocks 296=79,228,162,514,264,337,593,543,950,336 times as many addresses in IPv6.

Calculating the CIDR suffix

You can use the table of sample ranges below to guess the range, use a computer script, or manually calculate the range.

Conversion to binary

The first step in manually calculating a range is to convert the first and last IP address to binary representation. (This assumes you're not using a computer script, which can probably calculate the range for you anyway.) An IP address is composed of four groups of eight ones and zeros. Each group represents a number from 0 to 255. To convert a number to binary, you can use a reference table or know the value of each binary digit:

Binary digit:   1   1   1   1   1   1   1   1
Value: 128  64  32  16   8   4   2   1

Proceeding from left to right, fill in 1 if the number is at least that value, and subtract that value (if it's not, fill in 0 and don't subtract). For example, to calculate 240:

  1. 240 is at least 128, so place 1 and subtract 128.
  2. 112 (240-128) is at least 64, so place 1 and subtract 64.
  3. 48 (112-64) is at least 32, so place 1 and subtract 32.
  4. 16 (48-32) is at least 16, so place 1 and subtract 16.
  5. Since the remaining value is zero, all the remaining places are 0.

Thus, 240 is 1111 0000 because it can be represented as 128+64+32+16+0+0+0+0.

Calculate range

  1. Place both IP addresses one atop the other, and count how many starting digits are exactly alike. This is the CIDR suffix.
  2. Double-check! Being off by one digit could extend your block by thousands of addresses.

The example below calculates the CIDR range between 69.208.0.0 and 69.208.0.255. Note that this is a simple example; some groups of IP addresses do not so neatly fit CIDR suffixes, and need multiple different-sized blocks to block the exact range.

IP addresses:
  69.208.0.0
  69.208.0.255
Convert to binary:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
Count identical first numbers:
  0100 0101.1101 0000.0000 0000.0000 0000
  0100 0101.1101 0000.0000 0000.1111 1111
  |____________________________|
            24 digits
CIDR range:
  69.208.0.0/24

Table of sample ranges

The table below shows the IPv4 blocks each CIDR suffix affects. Note that MediaWiki only supports blocking CIDR suffixes 16 - 32 in IPv4 and 19 (formerly 64) - 128 in IPv6 by default (subject to $wgBlockCIDRLimit ). See /IPv6 for an IPv6 range table.

Example IP4 ranges
CIDR Start Range End Range Total addresses Bits selected in IP address
69.208.0.0/0 0.0.0.0 255.255.255.255 4.294.967.296 ********.********.********.********
69.208.0.0/1 0.0.0.0 127.255.255.255 2.147.483.648 0*******.********.********.********
69.208.0.0/4 64.0.0.0 79.255.255.255 268.435.456 0100****.********.********.********
69.208.0.0/8 69.0.0.0 69.255.255.255 16.777.216 01000101.********.********.********
69.208.0.0/11 69.192.0.0 69.223.255.255 2.097.152 01000101.110*****.********.********
69.208.0.0/12 69.208.0.0 69.223.255.255 1.048.576 01000101.1101****.********.********
69.208.0.0/13 69.208.0.0 69.215.255.255 524.288 01000101.11010***.********.********
69.208.0.0/14 69.208.0.0 69.211.255.255 262.144 01000101.110100**.********.********
69.208.0.0/15 69.208.0.0 69.209.255.255 131.072 01000101.1101000*.********.********
69.208.0.0/16 69.208.0.0 69.208.255.255 65.536 01000101.11010000.********.********
69.208.0.0/17 69.208.0.0 69.208.127.255 32.768 01000101.11010000.0*******.********
69.208.0.0/18 69.208.0.0 69.208.63.255 16.384 01000101.11010000.00******.********
69.208.0.0/19 69.208.0.0 69.208.31.255 8.192 01000101.11010000.000*****.********
69.208.0.0/20 69.208.0.0 69.208.15.255 4.096 01000101.11010000.0000****.********
69.208.0.0/21 69.208.0.0 69.208.7.255 2.048 01000101.11010000.00000***.********
69.208.0.0/22 69.208.0.0 69.208.3.255 1.024 01000101.11010000.000000**.********
69.208.0.0/23 69.208.0.0 69.208.1.255 512 01000101.11010000.0000000*.********
69.208.0.0/24 69.208.0.0 69.208.0.255 256 01000101.11010000.00000000.********
69.208.0.0/25 69.208.0.0 69.208.0.127 128 01000101.11010000.00000000.0*******
69.208.0.0/26 69.208.0.0 69.208.0.63 64 01000101.11010000.00000000.00******
69.208.0.0/27 69.208.0.0 69.208.0.31 32 01000101.11010000.00000000.000*****
69.208.0.0/28 69.208.0.0 69.208.0.15 16 01000101.11010000.00000000.0000****
69.208.0.0/29 69.208.0.0 69.208.0.7 8 01000101.11010000.00000000.00000***
69.208.0.0/30 69.208.0.0 69.208.0.3 4 01000101.11010000.00000000.000000**
69.208.0.0/31 69.208.0.0 69.208.0.1 2 01000101.11010000.00000000.0000000*
69.208.0.0/32 69.208.0.0 69.208.0.0 1 01000101.11010000.00000000.00000000

Default limitation

The default MediaWiki installation limits range blocks to no larger than /16 IPv4 rangeblocks (65,536 addresses). To block larger ranges $wgBlockCIDRLimit needs to be set accordingly in LocalSettings.php .

Known problems

One important already-known problem caused by any range-block, is that as side-effect they also block some trusted registered groups, like wiki administrators, users who do not need to be patrolled by others, and trusted bots. Details: phabricator:T309328

References

  • Subnet Calculator can help calculate prefix length and subnet mask for IPv4 and IPv6.