ЁЯПл рдзрдбрд╛ 02 тАФ IP addresses рдЖрдгрд┐ subnets: рдЗрдорд╛рд░рддреАрдЪрд╛ рдкрддреНрддрд╛
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдкреБрдвреЗ: lesson-03-ports-sockets
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ02. рд▓рдЦреЛрдЯреНрдпрд╛рд╡рд░рдЪрд╛ рдкрддреНрддрд╛: IPv4, IPv6, subnets, CIDR, рдЦрд╛рдЬрдЧреА рдкрд▓реНрд▓реЗ, рдЖрдгрд┐ рдлрд╛рдЯрдХрд╛рд╡рд░рдЪрд╛ рдПрдХрдЪ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреНрддрд╛.
- net/demo.py тАФ
routeрд╡рд┐рднрд╛рдЧ рд╣реЗ machine internet рдЧрд╛рдардгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддрд╛ рдкрддреНрддрд╛ рд╡рд╛рдкрд░рддреЗ рддреЗ рдЫрд╛рдкрддреЛ
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рд░рд╕реНрддреНрдпрд╛рд╡рд░рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдорд╛рд░рддреАрд▓рд╛ рдПрдХ рдкрддреНрддрд╛ рдЕрд╕рддреЛ тАФ dots рдЕрд╕рд▓реЗрд▓реЗ рдЪрд╛рд░ рдЖрдХрдбреЗ, рдЬрд╕реЗ
192.168.0.12. campus рдЪреНрдпрд╛ рдПрдХрд╛рдЪ wing рдордзрд▓реНрдпрд╛ рдЗрдорд╛рд░рддреАрдВрдЪреНрдпрд╛ рдкрддреНрддреНрдпрд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд
рд╕рд╛рд░рдЦреА рдЕрд╕рддреЗ (192.168.0.) рдЖрдгрд┐ рддреНрдпрд╛ рдереЗрдЯ рдЪрд┐рдареНрдареНрдпрд╛ рджреЗрдК-рдШреЗрдК рд╢рдХрддрд╛рдд; рджреБрд╕рд▒реНрдпрд╛ wing
рдХрдбреЗ рдЬрд╛рдгрд╛рд░реА рдЪрд┐рдареНрдареА рдЖрдзреА corridor рдЪреНрдпрд╛ рджрд╛рд░рд╛рдХрдбреЗ (gateway) рдЬрд╛рддреЗ. рдХрд╛рд╣реА рдкрддреНрддреЗ
рдЦрд╛рдЬрдЧреА рдЕрд╕рддрд╛рдд: рдкреГрдереНрд╡реАрд╡рд░рдЪреА рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рд│рд╛ рдЖрдд рддреЗрдЪ рдкрддреНрддреЗ рд╡рд╛рдкрд░рддреЗ, рдЖрдгрд┐ рдЪрд┐рдареНрдареА рдмрд╛рд╣реЗрд░
рдкрдбрддрд╛рдирд╛ рдлрд╛рдЯрдХ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЬрд╛рдЧреА рд╢рд╛рд│реЗрдЪрд╛ рдПрдХрдЪ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреНрддрд╛ рд▓рд╛рд╡рддреЗ.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
subgraph wing["192.168.0.0/24 тАФ the wing (256 addresses)"]
A[".12 your laptop"] ; B[".20 the printer"] ; G[".1 the gate (router)"]
end
G -->|NAT: from 203.0.113.7| I["ЁЯМН the internet"]
тЭУ рдХрд╛рдп
- IPv4: 0тАУ255 рдордзрд▓реНрдпрд╛ рдЪрд╛рд░ рдЖрдХрдбреНрдпрд╛рдВрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ 32 bits. рд╕реБрдорд╛рд░реЗ рдЪрд╛рд░ рдЕрдмреНрдЬ; рддреБрдЯрд╡рдбрд╛.
- IPv6: 128 bits, hex рдЧрдЯ (
2001:db8::12); рднрд░рдкреВрд░; NAT рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. - Subnet / CIDR:
192.168.0.0/24рдореНрд╣рдгрдЬреЗ "рдкрд╣рд┐рд▓реЗ 24 bits рдореНрд╣рдгрдЬреЗ wing"; рдЙрд░рд▓реЗрд▓реЗ 8 bits 256 рдкрддреНрддреЗ рджреЗрддрд╛рдд (.0 network, .255 broadcast, 254 рд╡рд╛рдкрд░рдгреНрдпрд╛рдЬреЛрдЧреЗ). - рдЦрд╛рдЬрдЧреА рдкрд▓реНрд▓реЗ:
10/8,172.16/12,192.168/16тАФ internet рд╡рд░ рдХрдзреАрдЪ route рд╣реЛрдд рдирд╛рд╣реАрдд; рд╕рдЧрд│реАрдХрдбреЗ рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд; NAT рдорд╛рдЧреЗ рд▓рдкрд▓реЗрд▓реЗ. - Loopback:
127.0.0.1/::1тАФ "рд╣реАрдЪ рдЗрдорд╛рд░рдд". Gateway: wing рдордзреВрди рдмрд╛рд╣реЗрд░ рдЬрд╛рдгрд╛рд░реЗ рджрд╛рд░.
ЁЯдФ рдХрд╛
рдХреЛрдг рдереЗрдЯ рдмреЛрд▓рддреЛ рдЖрдгрд┐ рдХреЛрдг router рдорд╛рд░реНрдЧреЗ рдЬрд╛рддреЛ рд╣реЗ subnets рдард░рд╡рддрд╛рдд; security groups
рдЖрдгрд┐ firewalls CIDR рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рддрд╛рдд; рдкреНрд░рддреНрдпреЗрдХ cloud VPC рдореНрд╣рдгрдЬреЗ рддреБрдореНрд╣реА рдЖрдЦрд▓реЗрд▓реНрдпрд╛
subnets рдЪрд╛ campus. /24 рд╕рд╣рдЬ рд╡рд╛рдЪрддрд╛ рдпреЗрдгреЗ рд╣реА рдХрд┐рдорд╛рди рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ.
ЁЯФз рдХрд╕реЗ (рдпрд╛ repo рдордзреНрдпреЗ)
route рд╡рд┐рднрд╛рдЧ 8.8.8.8 "рдХрдбреЗ" рдПрдХ UDP socket рдЙрдШрдбрддреЛ рдкрдг рдХрд╛рд╣реАрд╣реА рдкрд╛рдард╡рдд рдирд╛рд╣реА тАФ
OS рдмрд╛рд╣реЗрд░ рдЬрд╛рдгрд╛рд░рд╛ рдкрддреНрддрд╛ рдирд┐рд╡рдбрддреЗ, рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ code рдордзреВрди рддреБрдореНрд╣реА рдХреЛрдгрддреНрдпрд╛ wing рдордзреНрдпреЗ
рдЖрд╣рд╛рдд рддреЗ рдХрд│рддреЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 net/demo.py route
ip addr | grep inet 2>/dev/null || ifconfig | grep inet # your addresses; note the /24 or netmask
ip route 2>/dev/null || netstat -rn | head -5 # the default gateway: the door out of the wing
python3 -c "import ipaddress as i; n=i.ip_network('192.168.0.0/24'); print(n.num_addresses, list(n.hosts())[:3], n.broadcast_address)"
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
рддреБрдордЪрд╛ рдмрд╛рд╣реЗрд░ рдЬрд╛рдгрд╛рд░рд╛ рдкрддреНрддрд╛ рдЦрд╛рдЬрдЧреА рдЕрд╕рддреЛ (192.168.тАж, 10.тАж рдХрд┐рдВрд╡рд╛ 172.16тАУ31.тАж);
gateway рд╕рд╣рд╕рд╛ рддреБрдордЪреНрдпрд╛ wing рдЪрд╛ .1 рдЕрд╕рддреЛ; Python рдЪреА one-liner 256, рддреАрди host
рдкрддреНрддреЗ рдЖрдгрд┐ 192.168.0.255 рдЫрд╛рдкрддреЗ.
ЁЯПБ рддреБрдореНрд╣реА рдЖрддреНрддрд╛рдЪ рдХрд╛рдп рд╕рд┐рджреНрдз рдХреЗрд▓реЗ
рддреБрдореНрд╣реА рдПрдЦрд╛рджрд╛ рдкрддреНрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ mask рд╡рд╛рдЪреВ рд╢рдХрддрд╛, рддреБрдордЪрд╛ gateway рд╢реЛрдзреВ рд╢рдХрддрд╛, рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ laptop рд╡рд░рдЪрд╛ рдкрддреНрддрд╛ internet рд▓рд╛ рджрд┐рд╕рдгрд╛рд░рд╛ рдкрддреНрддрд╛ рдХрд╛ рдирд╛рд╣реА рд╣реЗ рд╕рдордЬрд╛рд╡реВ рд╢рдХрддрд╛.
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
/24рдореНрд╣рдгрдЬреЗ "24 рдкрддреНрддреЗ" рдЕрд╕реЗ рд╡рд╛рдЪрдгреЗ. рддреЗ 24 network bits рдЖрд╣реЗрдд тЖТ 256 рдкрддреНрддреЗ.- database "рд╕рдзреНрдпрд╛рдкреБрд░рддрд╛"
0.0.0.0/0рд╕рд╛рдареА рдЙрдШрдбрдгреЗ. рдореНрд╣рдгрдЬреЗ рдкреГрдереНрд╡реАрд╡рд░рдЪреА рдкреНрд░рддреНрдпреЗрдХ рдЗрдорд╛рд░рдд. - рдПрдХрдЪ рдЦрд╛рдЬрдЧреА рдкрддреНрддрд╛ рдЕрд╕рд▓реЗрд▓реА рджреЛрди machines рдПрдХрдЪ machine рдЖрд╣реЗрдд рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рдгреЗ.
ЁЯПн рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛рдкрд░рд╛рдд рд╣реЗ рдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ: рдПрдХрдореЗрдХрд╛рдВрд╡рд░ рдпреЗрдгрд╛рд░реЗ CIDRs рдЕрд╕рд▓реЗрд▓рд╛ VPC peer рд╣реЛрдК рд╢рдХрдд рдирд╛рд╣реА;
/32рдиреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ security group рдореНрд╣рдгрдЬреЗ рдПрдХ machine,/0рдореНрд╣рдгрдЬреЗ рд╕рдЧрд│реЗ. AWS рд╢рд╛рд│реЗрдЪрд╛ campus рдореНрд╣рдгрдЬреЗ рд╣рд╛рдЪ рдзрдбрд╛, рдмрд┐рд▓рд╛рд╕рд╣.
тПня╕П рдкреБрдвреЗ
рдзрдбрд╛ 03 тАФ ports рдЖрдгрд┐ sockets: рдЦреЛрд▓реА рдХреНрд░рдорд╛рдВрдХ, рдЖрдгрд┐ server рдПрдХрд╛рдЪ рдЦреЛрд▓реАрдд рдХрд╛ рдРрдХрддреЛ рддрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╣реБрдгреНрдпрд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪреЗ рдмрд╛рдХ рдХрд╛ рдорд┐рд│рддреЗ.