Friday, April 29, 2011
CÁCH TÍNH NHẨM CHIA SUBNET CỰC NHANH
Ph
Các bạn để ý bàn tay chúng ta có tất cả 14 lóng tay, mỗi lóng tay tương trưng cho 1 bit nhé! ^^
Đếm 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384.
Đếm đi đếm lại cho thuộc đi nhé các bạn.
- Để tính tổng số lượng Subnet id có được sau khi chia, ta đếm số bit mượn làm subnet id trong octet đó là ra. Mượn 3 bit thì đếm 2 4 8, mượn 4 bit thì đếm 2 4 8 16, giá trị của bit đếm sau cùng chính là tổng số subnet id sau khi được chia ra.
Ví dụ: 10.10.0.0 /13 ---> mượn 5 bit ---> đếm 2 4 8 16 32. Vậy mạng này có 32 subnet.
- Để tính bước nhảy trong mỗi subnet id. Ta đếm số bit còn lại dùng làm host trong riêng octet đó. Giá trị của bit được đếm sau cùng cũng là giá trị của bước nhảy trong octet đó.
Ví dụ: 172.35.0.0/19. Tức là địa chỉ lớp B sẽ mượn 3 bit ở octet thứ 3 làm subnet id. Dùng phương pháp đếm ta có 2 4 8, đủ 3 bit mượn rồi, vậy tổng số subnet id là 8. Ta biết trong octet thứ 3 sau khi cho mượn 3 bit làm net id thì còn lại 5 bit làm host, vậy ta đếm 2 4 8 16 32, đủ 5 bit rồi, giá trị là 32, và cũng chính là bước nhảy của subnet id., thử xem nào:
-172.35.0.0/19
-172.35.32.0/19
-172.35.64.0/19
-172.35.96.0/19
-172.35.128.0/19
-172.35.160.0/19
-172.35.192.0/19
-172.35.224.0/19
Ta có tổng cộng 8 subnet id, với bước nhảy là 32.
PHƯƠNG PHÁP CHIA SUBNET BẰNG CÁCH ĐẾM LÓNG NGÓN TAY
Khi tính toán IP, chia subnet thì chúng ta thường áp dụng công thức để tính toán.
Công thức tính là 2^n và 2^h - 2 ( 2^m -2 ),
-Để tính tổng số subnet có được sau khi chia ta dùng công thức 2^n, trong đó n là số bit mượn để chia subnet trong octet đó (mượn làm network id).
-Để tính tổng số host/subnet ta dùng công thức 2^h-2, trong đó h là tổng số bit còn lại dùng làm host sau khi đã mượn . Ta phải trừ 2 vì cần bỏ địa chỉ subnet id và broadcast.
Nói sơ sơ qua cách tính truyền thống như vậy thôi, giờ chúng ta tìm hiểu cách nhẩm nhanh bằng cách đếm lóng tay nhé!
PHƯƠNG PHÁP CHIA SUBNET BẰNG CÁCH ĐẾM LÓNG NGÓN TAY
Đầu tiên các bạn xòe bàn tay trái ra và đếm theo hình:
Đếm theo số màu đen nhé!
Các bạn để ý bàn tay chúng ta có tất cả 14 lóng tay, mỗi lóng tay tương trưng cho 1 bit nhé! ^^
Đếm 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384.
Đếm đi đếm lại cho thuộc đi nhé các bạn.
- Để tính tổng số lượng Subnet id có được sau khi chia, ta đếm số bit mượn làm subnet id trong octet đó là ra. Mượn 3 bit thì đếm 2 4 8, mượn 4 bit thì đếm 2 4 8 16, giá trị của bit đếm sau cùng chính là tổng số subnet id sau khi được chia ra.
Ví dụ: 10.10.0.0 /13 ---> mượn 5 bit ---> đếm 2 4 8 16 32. Vậy mạng này có 32 subnet.
- Để tính bước nhảy trong mỗi subnet id. Ta đếm số bit còn lại dùng làm host trong riêng octet đó. Giá trị của bit được đếm sau cùng cũng là giá trị của bước nhảy trong octet đó.
Ví dụ: 172.35.0.0/19. Tức là địa chỉ lớp B sẽ mượn 3 bit ở octet thứ 3 làm subnet id. Dùng phương pháp đếm ta có 2 4 8, đủ 3 bit mượn rồi, vậy tổng số subnet id là 8. Ta biết trong octet thứ 3 sau khi cho mượn 3 bit làm net id thì còn lại 5 bit làm host, vậy ta đếm 2 4 8 16 32, đủ 5 bit rồi, giá trị là 32, và cũng chính là bước nhảy của subnet id., thử xem nào:
-172.35.0.0/19
-172.35.32.0/19
-172.35.64.0/19
-172.35.96.0/19
-172.35.128.0/19
-172.35.160.0/19
-172.35.192.0/19
-172.35.224.0/19
Ta có tổng cộng 8 subnet id, với bước nhảy là 32.
- Để tính địa chỉ broadcast của một subnet id ta lấy subnet id kế tiếp giảm 1. Ví dụ, để tính broadcast của subnet id 172.35.64.0/19, ta lấy subnet id kế tiếp là 172.35.96.0/19 giảm 1 == 172.35.95.255/19 đây chính là broadcast của subnet id 172.35.64.0
- Để tính số host trong một subnet, ta đếm toàn bộ số bit host còn lại trong subnet và lấy giá trị bit sau cùng đó -2, Lưu ý là không phân biệt octet. Nhắc lại, ta lấy giá trị của bit được đếm sau cùng - 2 ta được số host trong subnet id có thể xài.
Trong ví dụ subnet 172.35.64.0/19, ta nhận biết toàn bộ số bit dùng làm host còn lại là 13. Ta đếm 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192, đủ 13 bit rồi, ok, số host trong mạng sẽ là 8192 -2 = 8190. Vì sao -2, vì ta phải trừ bỏ địa chỉ subnet id và broadcast. Hay đơn giản hơn có thể nhận thấy là số host có thể xài được trong dãy:
172.35.64.1/19 ----> 172.35.95.254/19
Và đống thời nó cũng lọt giữa 2 subnet id và broadcast.
Lưu ý: Phương pháp đếm từ 2 không được dùng để tính tổng số giá trị của 1 octet chạy từ 0->255. Hay nói cách khác là không được dụng để tính tổng giá trị của 1 dãy bit như 10101101. Để tính tổng số giá trị của dãy trên ta phải đếm từ 1, cộng các giá trị có bit 1 với nhau.
Ngoài ra, yêu cầu các bạn cần nhớ và thuộc:
1xxxxxxx =128
11xxxxxx =192
111xxxxx =224
1111xxxx =240
11111xxx =248
111111xx =252
1111111x =254
11111111 =255
và
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
Các bạn cũng có thể dùng bàn tay phải để ghi nhớ các giá trị trên , dùng nhẩm nhanh subnet mask của mạng.
Mượn 1 bit : 128
Mượn 2 bit : 192
Mượn 3 bit : 224
Mượn 4 bit : 240
Mượn 5 bit : 248
Mượn 6 bit : 252
Mượn 7 bit : 254
Mượn 8 bit : 255
Ví dụ : 10.10.0.0 /13 --mượn 5 bit ---> S/M: 255.248.0.0
155.55.3.32 /28 -- mượn 12 bit = 8 +4 ----> S/M: 255.255.255.240
Nếu các bạn nhuần nhuyễn cách tính này, tôi tin rằng các bạn sẽ tính toán, chia subnet rất nhanh!!
Labels:
Cisco,
ThuThuatPC
Các bài toán tính wildcard mask
1. Wildcard mask match 1 host
Vd: Tính wildcard mask match host 192.168.1.1
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 0.0.0.0 hoặc từ khóa “host”
2. Wildcard mask match tất cả địa chỉ IP
Vd: Tính wildcard mask match tất cả địa chỉ IP
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 255.255.255.255 hoặc từ khóa “any”
3. Wildcard mask match 1 subnet
Vd: Tính wildcard mask match subnet 192.168.1.0/24
Cách tính: Lấy 255.255.255.255 trừ đi subnet mask của subnet
-> Địa chỉ IP: 192.168.1.1 0.0.0.255
4. Tính Wildcard mask match range địa chỉ IP liên tục
Vd: Tính wildcard mask match range từ 192.168.2.0 đến 192.168.4.255
Cách tính: Lấy địa chỉ cuối trừ địa chỉ đầu
-> Địa chỉ IP: 192.168.2.0 0.0.2.255
5. Tính widcard mask match 1 số IP add đầu tiên
Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match X host đầu tiên
-> Dải địa chỉ cần match: 192.168.1.0 - > 192.168.1.X
-> wildcard mask: 0.0.0.X (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.X
6. Tính wildcard mask của nửa trên (upper half) hoặc nửa dưới (lower half) 1 dải mạng:
Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match nửa dải IP phía trên và dưới:
-> Dải địa chỉ nửa trên: 192.168.1.0 - > 192.168.1.127
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.127
-> Dải địa chỉ nửa dưới: 192.168.1.128 - > 192.168.1.255
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.128 0.0.0.127
7. Tính wildcard mask match IP lẻ, hoặc IP chẵn
1 địa chỉ Ip lẻ / chẳn là địa chỉ có octet cuối cùng dạng thập phân là số lẻ / chẳn
Vd: IP lẻ - 192.168.1.1
IP chẵn – 192.168.1.2
Nhận xét: bit cuối cùng của IP lẻ luôn là bit 1, bit cuối cùng của IP chẵn luôn là bit 0. Vậy wildcard mask thỏa mãn phải tạo ra một dải địa chỉ IP có bit cuối của octet cuối không đổi bằng 0 hoặc 1.
Giải pháp: để router luôn match bit cuối của octet cuối của địa chỉ IP, bit tương ứng trên wildcard mask phải là bit 0
Vd1: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP chẵn:
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.0 0.0.0.254 (IP chẵn có bit cuối luôn bằng 0)
Vd2: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP lẻ
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.1 0.0.0.254 (IP lẻ có bit cuối luôn bằng 1)
8. Tính wildcard mask match 1 range IP address không liên tục
Đây là dạng toán tính wildcard mask phức tạp nhất vì admin không có cách nào sử dụng 1 wildcard mask để tạo thành địa chỉ IP match tất cả dải IP ban đầu:
Vd: Tính wildcard mask match dải: 192.168.1.15 - > 192.168.1.75
Nhận xét: Đây là một dải IP không liên tục , không có 1 wildcard mask nào có thể thỏa mãn dải không liên tục. Tuy nhiên đối với những dải IP liên tục thì luôn có wildcard mask thỏa mãn.
Giải pháp: Chia dải IP ban đầu thành những dải nhỏ mà trong đó luôn tìm được 1 wildcard mask thỏa mãn mỗi dải. Vậy cách chia như thế nào? Nhắc lại: mỗi bit trong octet phần host đại diện cho một nhóm các host gọi là một block size. Bit cuối cùng là block size 1 vì nó thể hiện 1 host, tương tự bit đầu tiên là block size 128. Và, mỗi block size luôn tìm được 1 wildcard mask thỏa mãn.
Chia dải thành các block size:
- 192.168.1.15 (1)
- 192.168.1.16 - > 192.168.1.31 (2)
- 192.168.1.32 - > 192.168.1.63 (3)
- 192.168.1.64 -> 192.168.75 (4)
Tính wildcard mask cho mỗi block size:
- (1): 192.168.1.15 0.0.0.0 - > IP host
- (2): 192.168.1.16 0.0.0.15
- (3): 192.168.1.32 0.0.0.31
- (4): Chưa có wildcard mask phù hợp, ta phân tích dạng nhị phân octet cuối để tách tiếp wildcard mask:
.64: 01000000
.75: 01001011
-> Ta tách thành: 01000000 -> 01000111 (5)
01001000 -> 01001011 (6)
-> (5): 192.168.1.64 0.0.0.7
(6): 192.168.1.72 0.0.0.3
Tổng kết: Như vậy, từ dải IP ban đầu, ta tách thành 6 dải nhỏ (1)(2)(3)(4)(5)(6). Quả thật là một công trình “vĩ đại”…
Vd: Tính wildcard mask match host 192.168.1.1
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 0.0.0.0 hoặc từ khóa “host”
2. Wildcard mask match tất cả địa chỉ IP
Vd: Tính wildcard mask match tất cả địa chỉ IP
Theo nguyên tắc: bit 0 kiểm tra – bit 1 bỏ qua
-> Địa chỉ IP: 192.168.1.1 255.255.255.255 hoặc từ khóa “any”
3. Wildcard mask match 1 subnet
Vd: Tính wildcard mask match subnet 192.168.1.0/24
Cách tính: Lấy 255.255.255.255 trừ đi subnet mask của subnet
-> Địa chỉ IP: 192.168.1.1 0.0.0.255
4. Tính Wildcard mask match range địa chỉ IP liên tục
Vd: Tính wildcard mask match range từ 192.168.2.0 đến 192.168.4.255
Cách tính: Lấy địa chỉ cuối trừ địa chỉ đầu
-> Địa chỉ IP: 192.168.2.0 0.0.2.255
5. Tính widcard mask match 1 số IP add đầu tiên
Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match X host đầu tiên
-> Dải địa chỉ cần match: 192.168.1.0 - > 192.168.1.X
-> wildcard mask: 0.0.0.X (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.X
6. Tính wildcard mask của nửa trên (upper half) hoặc nửa dưới (lower half) 1 dải mạng:
Vd: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match nửa dải IP phía trên và dưới:
-> Dải địa chỉ nửa trên: 192.168.1.0 - > 192.168.1.127
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.127
-> Dải địa chỉ nửa dưới: 192.168.1.128 - > 192.168.1.255
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.128 0.0.0.127
7. Tính wildcard mask match IP lẻ, hoặc IP chẵn
1 địa chỉ Ip lẻ / chẳn là địa chỉ có octet cuối cùng dạng thập phân là số lẻ / chẳn
Vd: IP lẻ - 192.168.1.1
IP chẵn – 192.168.1.2
Nhận xét: bit cuối cùng của IP lẻ luôn là bit 1, bit cuối cùng của IP chẵn luôn là bit 0. Vậy wildcard mask thỏa mãn phải tạo ra một dải địa chỉ IP có bit cuối của octet cuối không đổi bằng 0 hoặc 1.
Giải pháp: để router luôn match bit cuối của octet cuối của địa chỉ IP, bit tương ứng trên wildcard mask phải là bit 0
Vd1: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP chẵn:
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.0 0.0.0.254 (IP chẵn có bit cuối luôn bằng 0)
Vd2: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP lẻ
-> wildcard mask: 0.0.0.254 (dạng nhị phân: 00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.1 0.0.0.254 (IP lẻ có bit cuối luôn bằng 1)
8. Tính wildcard mask match 1 range IP address không liên tục
Đây là dạng toán tính wildcard mask phức tạp nhất vì admin không có cách nào sử dụng 1 wildcard mask để tạo thành địa chỉ IP match tất cả dải IP ban đầu:
Vd: Tính wildcard mask match dải: 192.168.1.15 - > 192.168.1.75
Nhận xét: Đây là một dải IP không liên tục , không có 1 wildcard mask nào có thể thỏa mãn dải không liên tục. Tuy nhiên đối với những dải IP liên tục thì luôn có wildcard mask thỏa mãn.
Giải pháp: Chia dải IP ban đầu thành những dải nhỏ mà trong đó luôn tìm được 1 wildcard mask thỏa mãn mỗi dải. Vậy cách chia như thế nào? Nhắc lại: mỗi bit trong octet phần host đại diện cho một nhóm các host gọi là một block size. Bit cuối cùng là block size 1 vì nó thể hiện 1 host, tương tự bit đầu tiên là block size 128. Và, mỗi block size luôn tìm được 1 wildcard mask thỏa mãn.
Chia dải thành các block size:
- 192.168.1.15 (1)
- 192.168.1.16 - > 192.168.1.31 (2)
- 192.168.1.32 - > 192.168.1.63 (3)
- 192.168.1.64 -> 192.168.75 (4)
Tính wildcard mask cho mỗi block size:
- (1): 192.168.1.15 0.0.0.0 - > IP host
- (2): 192.168.1.16 0.0.0.15
- (3): 192.168.1.32 0.0.0.31
- (4): Chưa có wildcard mask phù hợp, ta phân tích dạng nhị phân octet cuối để tách tiếp wildcard mask:
.64: 01000000
.75: 01001011
-> Ta tách thành: 01000000 -> 01000111 (5)
01001000 -> 01001011 (6)
-> (5): 192.168.1.64 0.0.0.7
(6): 192.168.1.72 0.0.0.3
Tổng kết: Như vậy, từ dải IP ban đầu, ta tách thành 6 dải nhỏ (1)(2)(3)(4)(5)(6). Quả thật là một công trình “vĩ đại”…
Thursday, April 28, 2011
Create root user account on Linux
Create extra root user account to your Linux box.
The ‘root’ account with user id 0 is the most powerful user in Linux and Unix system. This article show the step by step to create the duplicate root account that have the same privileges as super user root account on the Linux Fedora Core operating system.
You may want to make replicate of root user account, or to create more than one user account that have the same capabilities as a 'root' user (superuser) account. Why, may be for a root backup user account, incase of something happen to the 'root' user account or may be just for fun :-).
To create another root user account, we need to replicate the 'root' user account characteristic, then make one account that have the same characteristic and capabilities of the 'root' user account.
Labels:
LINUX-UNIX
Tuesday, April 19, 2011
Xem password User thay doi khi nao ( Last Change Password)
- Xem password cua User thay doi khi nao
root@ubuntu:/thien# nano lastchange.sh
root@ubuntu:/thien# nano lastchange.sh
IFS=:
today=`expr \`date +%s\` / 60 / 60 / 24`
while read a b c d e f g h i; do
if [ "$b" != '*' -a "$b" != '!!' ]; then
last=`expr $today - $c`
echo "$a = `date --date "-$last day" +%Y/%m/%d`"
fi
done < /etc/shadow
root@ubuntu:/thien# chmod 777 lastchange.sh
root@ubuntu:/thien# ./lastchange.sh
[: 10: !=: unexpected operator
[: 10: !=: unexpected operator
ubuntu = 2011/04/19
root@ubuntu:/thien#
Labels:
LINUX-UNIX,
ThuThuatPC
Subscribe to:
Posts (Atom)