Course-এর সূচি

3.1

IP Address, CIDR ও Subnet-এর হিসাব

যেকোনো CIDR block পড়তে-লিখতে শেখো, তাতে কটা address আছে গুনে ফেলো, subnet-এ ভাগ করো, আর private range আর public range আলাদা করে চেনো।

30 মিনিট পড়া + Animation

টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।

এই লেসন শেষে তুমি যা পারবে

  • একটা IPv4 Address যে আসলে ৩২টা bit, সেটা বুঝে পড়তে পারবে, আর যেকোনো octet-কে binary থেকে decimal-এ (এবং উল্টোটা) বদলাতে পারবে।
  • 10.0.0.0/16-এর মতো যেকোনো CIDR block দেখে বলতে পারবে এতে কয়টা Address আছে, আর এর প্রথম ও শেষ Address কোনটা।
  • prefix length থেকে subnet mask, আবার mask থেকে prefix বের করতে পারবে (/28 = 255.255.255.240)।
  • একটা range-কে সমান কয়েকটা Subnet-এ ভাগ করতে পারবে, আর প্রতিটা Subnet ঠিক জায়গা থেকে শুরু হচ্ছে কিনা যাচাই করতে পারবে।
  • কোনটা private (RFC 1918) আর কোনটা public Address, আলাদা করে চিনতে পারবে; আর বুঝিয়ে বলতে পারবে, VPC যে Network-এর সাথে কথা বলবে, তার range-এর সাথে VPC-র range কেন কখনো মিলে যাওয়া চলবে না।
  • AWS-এর Route Table আর firewall rule-এ 0.0.0.0/0 আর /32 ঠিকভাবে ব্যবহার করতে পারবে।

#কেন আগে Address-এর পরিকল্পনা করতে হয়

VPC (Virtual Private Cloud, মানে AWS-এর ভেতরে তোমার নিজের একটা private Network) বানাতে গেলেই AWS সবার আগে জানতে চায়, কোন Address range নেবে। এটা দিতে হয় CIDR আকারে, যেমন 10.0.0.0/16। পরে VPC-র ভেতরে যত server, database বা load balancer রাখবে, সবাই এই range থেকেই একটা করে Address পাবে।

মুশকিল হলো, এই সিদ্ধান্ত পরে বদলানো খুব কঠিন:

  • VPC-র প্রথম (primary) range বানানোর পর আর কখনো বদলানো যায় না। পরে বাড়তি range যোগ করা যায় ঠিকই, কিন্তু প্রথমটাকে ছোট-বড় করা বা নতুন নম্বর দেওয়া যায় না।
  • range যদি তোমার অফিসের Network বা অন্য কোনো VPC-র range-এর সাথে overlap করে, মানে মিলে যায়, তাহলে ওই Network-গুলো একে অপরের সাথে কখনোই ঠিকমতো কথা বলতে পারবে না (কেন, সেটা নিচে হাতে-কলমে দেখবে)।
  • range যদি খুব ছোট হয়, তাহলে সিস্টেম যত বড় হবে, একসময় Address ফুরিয়ে যাবে।

তাই AWS-এ কিছু বানানোর আগে IPv4 Address আর CIDR তোমার একদম হাতের মুঠোয় থাকা চাই। সাধারণভাবে IP Address নিয়ে আলোচনা আছে System Design কোর্সে; এই লেসনে আমরা শুধু AWS-এর কাজে যা লাগে, সেটুকুতেই থাকব।

#এক মিনিটে IPv4: ৩২ bit, ৪টা octet

একটা IPv4 Address আসলে একটা ৩২-bit সংখ্যা। মানুষের পড়ার সুবিধার জন্য একে ৮ bit করে চার ভাগে ভাগ করা হয় (প্রতিটা ভাগকে বলে octet), তারপর প্রতিটা ভাগ decimal-এ লিখে মাঝে ডট বসানো হয়:

   10   .    0     .    1     .   10
00001010 . 00000000 . 00000001 . 00001010

প্রতিটা octet-এ ৮টা bit, তাই এর মান 00000000 (0) থেকে 11111111 (255) পর্যন্ত হতে পারে। একটা octet-এর bit-গুলোর মান বাঁ থেকে ডানে এরকম:

Bit১ম২য়৩য়৪র্থ৫ম৬ষ্ঠ৭ম৮ম
মান1286432168421

binary থেকে decimal করতে চাইলে, যে bit-গুলো 1, শুধু সেগুলোর মান যোগ করো: 11110000 = 128 + 64 + 32 + 16 = 240। উল্টো দিকে যেতে হলে, সংখ্যাটার ভেতরে আঁটে এমন সবচেয়ে বড় মানটা নাও, তারপর বিয়োগ করে বাকিটা দেখো: 192 = 128 + 64, তাই 11000000।

৩২টা bit দিয়ে মোট 2³² = 4,294,967,296টা Address বানানো যায়। এর থেকে private Network, multicast, documentation আর অন্যান্য বিশেষ কাজের জন্য বড় বড় অংশ সরিয়ে রাখার পর public ইন্টারনেটে ব্যবহার করা যায় মোটামুটি ৩৭০ কোটি। পৃথিবীর সব ডিভাইসের জন্য এটা একেবারেই কম। এই ঘাটতির কারণেই private range আর NAT এসেছে, আর এ কারণেই AWS এখন public IPv4 Address-এর জন্য টাকা নেয় (লেসন ৩.৬)।

#CIDR notation: একটা base Address আর একটা prefix

শুরুর দিকে ইন্টারনেটে Address দেওয়া হতো নির্দিষ্ট মাপের class ধরে: Class A Network-এ ১ কোটি ৬৭ লাখ Address, Class B-তে 65,536 আর Class C-তে 256। কোনো প্রতিষ্ঠানের 2,000টা Address দরকার হলেও তাকে পুরো একটা Class B নিতে হতো, আর ৬৩ হাজারের বেশি Address এমনি এমনি নষ্ট হতো। ১৯৯৩ সালে class-এর জায়গায় আসে CIDR (Classless Inter-Domain Routing)। এতে একটা block ২-এর যেকোনো ঘাতের মাপের হতে পারে।

একটা CIDR block লেখা হয় base Address / prefix length আকারে:

10.0.0.0/16
└──┬───┘ └┬┘
 base   prefix: প্রথম ১৬টা bit ঠিক করা (fixed)
  • prefix length (/16) বলে দেয়, বাঁ দিক থেকে কয়টা bit fixed, মানে বদলাবে না। এই bit-গুলোই Network-টাকে চিনিয়ে দেয়।
  • বাকি ৩২ − prefixটা bit free, মানে এগুলো ইচ্ছেমতো বদলাতে পারে। এদের প্রতিটা আলাদা কম্বিনেশন block-এর একটা করে Address।

তাহলে একটা block-এ Address-এর সংখ্যা:

Address = 2^(32 − prefix)

CIDRFree bitAddressকোন octet বদলায়
/3201কোনোটাই না (ঠিক একটা Address)
/28416শেষ octet-এর একাংশ
/27532শেষ octet-এর একাংশ
/26664শেষ octet-এর একাংশ
/248256পুরো শেষ octet
/20124,096৩য়টার একাংশ + পুরো ৪র্থটা
/161665,536শেষ দুটো octet
/82416,777,216শেষ তিনটা octet
/0324,294,967,296সবগুলো: দুনিয়ার সব IPv4 Address

কয়েকটা উদাহরণ ঝটপট পড়ে ফেলি:

  • 10.20.0.0/16 → 10.20.0.0 থেকে 10.20.255.255 (65,536টা Address)।
  • 10.20.5.0/24 → 10.20.5.0 থেকে 10.20.5.255 (256টা)।
  • 198.51.100.7/32 → শুধু 198.51.100.7।
  • 0.0.0.0/0 → দুনিয়ার সব IPv4 Address।

এবার planner-টা নিয়ে একটু খেলো: একটা block লেখো, prefix টেনে বাড়াও-কমাও, আর দেখো নীল (fixed) আর ধূসর (free) bit-গুলো কীভাবে বদলায়। Subnet-এর অংশটা আপাতত বাদ দাও, একটু পরেই ওটা কাজে লাগবে।

VPC CIDR Planner

VPC-র জন্য একটা block বেছে নাও, তারপর সেটাকে Subnet-এ কাটো। নীল bit-গুলো fixed (Network), ধূসর bit-গুলো free (host)।

10.0.0.0/16

00001010000000000000000000000000

প্রথম Address

10.0.0.0

শেষ Address

10.0.255.255

block-এ মোট Address

2^16 = 65,536

subnet mask

255.255.0.0

range-এর ধরন: private (RFC 1918, 10/8): VPC-র জন্য সবচেয়ে চলতি পছন্দ

VPC-র জন্য মাপ ঠিক আছে (AWS /16 থেকে /28 পর্যন্ত দেয়)।

  • 10.0.0.0/24 → 10.0.0.0 – 10.0.0.255
  • 10.0.1.0/24 → 10.0.1.0 – 10.0.1.255
  • 10.0.2.0/24 → 10.0.2.0 – 10.0.2.255
  • 10.0.3.0/24 → 10.0.3.0 – 10.0.3.255
  • 10.0.4.0/24 → 10.0.4.0 – 10.0.4.255
  • 10.0.5.0/24 → 10.0.5.0 – 10.0.5.255
  • … +250 আরও

প্রথম Subnet-এ AWS যেগুলো রেখে দেয়

  • 10.0.0.0 Network Address
  • 10.0.0.1 VPC router
  • 10.0.0.2 Amazon-provided DNS
  • 10.0.0.3 ভবিষ্যতের জন্য রাখা
  • 10.0.0.255 broadcast (AWS-এ চলে না, তাই আটকে রাখা)
যে সবচেয়ে ছোট Subnet-এ ধরবে: /24 (256 − 5 = 251)
i

Subnet-কেও /16 থেকে /28-এর মধ্যে হতে হবে।

#Subnet mask: একই কথা, অন্যভাবে লেখা

পুরনো টুল আর অনেক operating system prefix-কে লেখে subnet mask হিসেবে। এটাও একটা ৩২-bit সংখ্যা, যার Network-এর bit-গুলো সব 1 আর host-এর bit-গুলো সব 0।

PrefixMaskশেষ octet-এর bit
/8255.0.0.0
/16255.255.0.0
/20255.255.240.0৩য় octet = 11110000
/24255.255.255.000000000
/26255.255.255.19211000000
/27255.255.255.22411100000
/28255.255.255.24011110000
/32255.255.255.25511111111

mask থেকে prefix বের করতে শুধু 1 গুনে ফেলো: 255.255.255.240-এ আছে 8 + 8 + 8 + 4 = 28টা 1, তাই এটা /28। উল্টো দিকে, /28 মানে শেষ octet-এ 4টা 1 থাকে: 11110000 = 240।

#prefix যখন ৮-এর গুণিতক নয়, তখন range বের করার উপায়

/8, /16 আর /24-এ হিসাব সহজ, কারণ পুরো পুরো octet হয় fixed, নয়তো free। কিন্তু মাঝামাঝি কোনো prefix হলে, যে octet-টা ভাগ হয়ে গেছে, শুধু সেটার ওপর block size-এর কৌশলটা খাটাও:

  1. আগে দেখো prefix কোন octet-এ গিয়ে শেষ হচ্ছে। /20-এর বেলায় সেটা ৩য় octet (bit ১৭ থেকে ২৪)।
  2. ওই octet-এ block size = 256 − mask-এর মান। /20-এ ৩য় octet-এর mask 240, তাই block size 16।
  3. ওই octet-এ block-গুলো শুরু হয় 16-এর গুণিতকে: 0, 16, 32, 48…

উদাহরণ: 10.0.37.9 কোন /20-এর ভেতরে পড়ে? 37 আছে 32 আর 47-এর মাঝে, তাই block-টা 10.0.32.0/20। এটা 10.0.32.0 থেকে 10.0.47.255 পর্যন্ত (16 × 256 = 4,096টা Address)।

#একটা range-কে Subnet-এ ভাগ করা

VPC-র range-কে সবসময় ছোট ছোট block-এ কাটা হয়, এদের বলে Subnet (AWS এগুলো কীভাবে ব্যবহার করে, সেটা দেখবে লেসন ৩.২-এ)। ভাগ করা মানে আসলে আরও কিছু bit fixed করে দেওয়া:

  • /16 থেকে /24-এ গেলে আরও ৮টা bit fixed হয়, তাই পাবে 2⁸ = 256টা Subnet, প্রতিটায় 256টা Address।
  • /16 থেকে /18-এ গেলে আরও ২টা bit fixed হয়: 4টা Subnet, প্রতিটায় 16,384টা।
  • সাধারণ নিয়ম: একটা /a-কে /b block-এ ভাগ করলে পাবে **2^(b − a)**টা Subnet।

দুটো Availability Zone জুড়ে চলা একটা VPC 10.0.0.0/16-এর জন্য সাধারণত এরকম পরিকল্পনা করা হয় (Availability Zone মানে আলাদা আলাদা data centre, লেসন ৩.২-এ বিস্তারিত আছে):

SubnetCIDRRange
public, zone A10.0.0.0/2410.0.0.0 – 10.0.0.255
public, zone B10.0.1.0/2410.0.1.0 – 10.0.1.255
private app, zone A10.0.10.0/2410.0.10.0 – 10.0.10.255
private app, zone B10.0.11.0/2410.0.11.0 – 10.0.11.255
database, zone A10.0.20.0/2410.0.20.0 – 10.0.20.255
database, zone B10.0.21.0/2410.0.21.0 – 10.0.21.255

খেয়াল করো, /16-এর বেশিরভাগ জায়গা ইচ্ছে করেই ফাঁকা রাখা হয়েছে, পরে যেসব Subnet লাগবে তাদের জন্য।

planner-এ সবুজ split slider-টা টানো। AWS প্রতিটা Subnet থেকে ৫টা Address নিজের জন্য রেখে দেয় (Network Address, VPC router, DNS, ভবিষ্যতের জন্য একটা, আর একদম শেষেরটা)। তাই একটা /24 Subnet-এ তুমি ব্যবহার করতে পাবে 256 − 5 = 251টা Address। এই পাঁচটার প্রতিটা কী কাজে লাগে, লেসন ৩.২-এ আছে। এবার “কয়টা server লাগবে” ঘরে 200 লিখে দেখো: একটা /25-এ জায়গা মাত্র 128 − 5 = 123টার, তাই উত্তর /24।

নিজেকে যাচাই করোপ্রশ্ন

10.0.0.0/20-এ কয়টা Address আছে, আর শেষ Address কোনটা?

#Private আর public Address

সব IPv4 Address ইন্টারনেটে ব্যবহার করা যায় না। RFC 1918 তিনটা range আলাদা করে রেখেছে শুধু private Network-এর জন্য:

RangeCIDRমাপসাধারণত কোথায় লাগে
10.0.0.0 – 10.255.255.25510.0.0.0/8১ কোটি ৬৭ লাখবড় Network; VPC-র জন্য সবচেয়ে বেশি এটাই নেওয়া হয়
172.16.0.0 – 172.31.255.255172.16.0.0/12১০ লাখAWS-এর default VPC এখান থেকে 172.31.0.0/16 নেয়
192.168.0.0 – 192.168.255.255192.168.0.0/1665,536বাসার Wi-Fi router আর ছোট অফিস

বিশেষ কাজের range-গুলোর বাইরে বাকি সব Address public।

Public AddressPrivate Address
ইন্টারনেট থেকে পৌঁছানো যায়?হ্যাঁ, সব জায়গার router এটা সামনে পাঠিয়ে দেয়না, ইন্টারনেটের router এটা ফেলে দেয়
একটাই কি?সারা দুনিয়ায় একটাই: দুটো মেশিন কখনো একই Address নিতে পারে নাশুধু নিজের Network-এর ভেতরে: দুটো আলাদা কোম্পানি দুজনেই 10.0.1.5 ব্যবহার করতে পারে
কে দেয়?আঞ্চলিক registry, ISP আর AWS-এর মতো cloud provider-দের মাধ্যমেতুমি নিজেই যেটা খুশি বেছে নাও
অবস্থান বোঝা যায়?মোটামুটি কোন এলাকার, বোঝা যায়নিজের Network-এর বাইরে এর কোনো মানে নেই
ইন্টারনেটে যায় কীভাবে?সরাসরিNAT-এর মাধ্যমে, যেটা একে একটা public Address দিয়ে বদলে দেয় (লেসন ৩.৪)

AWS-এ আরও কয়েকটা range চিনে রাখা ভালো:

  • 169.254.0.0/16 (link-local): AWS এখান থেকে 169.254.169.254 ব্যবহার করে instance metadata service-এর জন্য, আর 169.254.169.123 ব্যবহার করে সময় মেলানোর service-এর জন্য। এটা কখনো VPC-র range হতে পারে না।
  • 100.64.0.0/10 (shared address space, carrier-grade NAT-এও এটা ব্যবহার হয়): কিছু শর্তসাপেক্ষে VPC-তে নেওয়া যায়; RFC 1918-এর জায়গা ফুরিয়ে গেলে মাঝে মাঝে এটা নেওয়া হয়।
  • 127.0.0.0/8 (loopback) আর 224.0.0.0/4 (multicast): VPC-তে কখনোই ব্যবহার করা যায় না।
  • 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24: documentation-এর জন্য রাখা। এই কোর্সে বানানো (কাল্পনিক) public Address দেখাতে এগুলোই ব্যবহার করা হয়েছে।

#Overlap-এর ফাঁদ

যে দুটো Network-কে একে অপরের সাথে কথা বলতে হবে (একটা VPC আর তোমার অফিস, দুটো VPC, কিংবা একটা VPC আর কোনো partner-এর Network), তাদের range কোনোভাবেই মিলে যাওয়া চলবে না। কারণটা routing-এ: কোনো Packet-এর গন্তব্য যদি VPC-র নিজের range-এর ভেতরে পড়ে, VPC সেটা নিজের ভেতরেই পৌঁছে দেয়, ব্যস। বাইরে আর পাঠায় না।

যে দুটো নেটওয়ার্ক একে অপরের সাথে কথা বলবে, তাদের Address কেন মিলে যাওয়া চলবে না

একটা VPC, VPN দিয়ে অফিসের সাথে যুক্ত। দেখো, 10.0.5.20-এর জন্য পাঠানো Packet-কে VPC router কোথায় পাঠায়।

পরিস্থিতি

VPC নিয়েছে 10.0.0.0/16, আর অফিসও ব্যবহার করে 10.0.0.0/16।

AWS Cloud
VPC
private Subnet10.0.1.0/24
অফিসের নেটওয়ার্ক
App server10.0.1.10
VPC router
VPN gatewayAWS-এর দিক
অফিসের routercustomer gateway
অফিসের database10.0.5.20
→ 10.0.5.20

VPC-র Route Table

গন্তব্যTarget
10.0.0.0/16local
10.0.0.0/16 (office)vgw ✕ (cannot be added)
ধাপ 1 / 4
1

App server অফিসের database 10.0.5.20-এ যেতে চায়। Packet প্রথমে যায় VPC router-এ, আর router তার Route Table খুলে দেখে।

তিনটা পরিস্থিতি থেকে যা শিখলে:

  • দুই পাশে একই range: অফিসে পৌঁছানোই যায় না। অফিসের দিকে একটা route যোগ করাও সম্ভব হয় না।
  • আলাদা range: দুই দিকেই routing ঠিকঠাক চলে।
  • আংশিক overlap: যে route সবচেয়ে নির্দিষ্ট, সেটাই জেতে (longest prefix match: /8-এর ওপর /16 জেতে)। ফলে অফিসের কিছু Address-এ যাওয়া যায়, আর কিছুতে কোনো error ছাড়াই চুপচাপ ব্যর্থ হয়।

বাস্তবে টিমগুলো যেভাবে এই ঝামেলা এড়ায়:

  1. একটা Address plan রাখো। প্রতিটা environment আর Region-কে আলাদা block দাও, যেমন এক Region-এ production-এর জন্য 10.0.0.0/16, staging-এর জন্য 10.1.0.0/16, আর অফিসের যে range আগে থেকে আছে, সেটা অফিসেরই থাকুক।
  2. সবার চেনা default range এড়িয়ে চলো। দুনিয়ার অর্ধেক বাসার router-এ 192.168.0.0/24 আর 192.168.1.0/24 বসানো। কর্মীরা VPN দিয়ে যুক্ত হতে শুরু করলেই এটা সমস্যা করে। আর 172.31.0.0/16 তো সব জায়গার default VPC।
  3. বড় পরিসরে টুল ব্যবহার করো। AWS VPC IPAM (IP Address Manager) নিজে থেকেই বিভিন্ন টিম আর account-কে এমন range ভাগ করে দেয়, যেগুলো একটা আরেকটার সাথে মেলে না।

#AWS-এর rule-এ 0.0.0.0/0 আর /32

AWS-এ দুটো CIDR block সব জায়গায় দেখবে:

  • 0.0.0.0/0 মানে “যেকোনো IPv4 Address”। Route Table-এ এটা হলো default route: “আরও নির্দিষ্ট কোনো route-এর সাথে না মিললে এখানে পাঠাও” (সাধারণত Internet Gateway বা NAT Gateway-তে)। firewall rule-এ এর মানে “যেকোনো জায়গা থেকে” বা “যেকোনো জায়গায়”।
  • /32 মানে “ঠিক এই একটা Address”। যেমন শুধু তোমার নিজের IP থেকে কোনো server-এ SSH করার অনুমতি দিতে 203.0.113.25/32 লেখো, কিংবা কোনো একজন আক্রমণকারীর Address আটকাতে।

#নিজে করে দেখো

অনুশীলনের জন্য AWS account লাগবে না। Python-এর standard library দিয়েই এর সবকিছু করা যায়:

python3 - <<'EOF'
import ipaddress as ip

vpc = ip.ip_network("10.0.0.0/16")
print(vpc.num_addresses, vpc[0], vpc[-1])          # 65536 10.0.0.0 10.0.255.255
print(vpc.netmask)                                  # 255.255.0.0
print(vpc.is_private)                               # True

# /24 Subnet-এ ভাগ করে প্রথম তিনটা দেখাও
for s in list(vpc.subnets(new_prefix=24))[:3]:
    print(s, "usable on AWS:", s.num_addresses - 5)

# 10.0.37.9 কোন /20-এর ভেতরে?
print(ip.ip_network("10.0.37.9/20", strict=False))  # 10.0.32.0/20

# দুটো range কি overlap করে?
print(ip.ip_network("10.0.0.0/16").overlaps(ip.ip_network("10.0.0.0/8")))  # True
EOF

AWS account থাকলে আর CLI সেট করা থাকলে, তোমার VPC-গুলো এখন কোন কোন range ব্যবহার করছে, দেখে নাও:

aws ec2 describe-vpcs --query "Vpcs[].{id:VpcId,cidr:CidrBlock,default:IsDefault}" --output table

#সারসংক্ষেপ

মূল কথাগুলো

  • একটা IPv4 Address হলো ৩২ bit, লেখা হয় 0–255-এর চারটা octet দিয়ে। একটা octet-এ bit-গুলোর মান 128, 64, 32, 16, 8, 4, 2, 1।
  • CIDR = base Address / prefix length। prefix-এর bit-গুলো fixed, বাকিগুলো free। Address = 2^(32 − prefix)। prefix যত বড়, block তত ছোট।
  • subnet mask একই তথ্য অন্যভাবে লেখে: /24 = 255.255.255.0, /28 = 255.255.255.240। যে octet ভাগ হয়ে গেছে, সেখানে block size = 256 − mask-এর মান।
  • একটা /a-কে /b-তে ভাগ করলে পাবে **2^(b − a)**টা Subnet, আর প্রতিটা শুরু হবে নিজের মাপের গুণিতক থেকে। AWS প্রতিটা Subnet-এ ৫টা Address রেখে দেয়, তাই ব্যবহারযোগ্য = মোট − 5।
  • RFC 1918-এর private range: 10.0.0.0/8, 172.16.0.0/12 (default VPC 172.31.0.0/16), 192.168.0.0/16। public Address সারা দুনিয়ায় একটাই হয়; private Address ইন্টারনেটে যায় NAT-এর মাধ্যমে।
  • VPC-র range /16 থেকে /28-এর মধ্যে হতে হবে, আর এর primary range কখনো বদলানো যায় না। এমনভাবে পরিকল্পনা করো যেন যে Network-এর সাথে যুক্ত হবে, তার সাথে কখনো overlap না করে; longest prefix match-এর কারণে overlap হলে কোনো error ছাড়াই চুপচাপ কাজ বন্ধ হয়ে যায়।
  • 0.0.0.0/0 = যেকোনো জায়গা (default route); /32 = একটাই Address। admin Port কখনো 0.0.0.0/0-এর জন্য খুলে রেখো না।