Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F5046578
subnetter.py
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
amckinley
Jul 14 2017, 7:58 PM
2017-07-14 19:58:34 (UTC+0)
Size
2 KB
Referenced Files
None
Subscribers
None
subnetter.py
View Options
from
ipaddr
import
IPv4Network
,
collapse_address_list
def
compute_layout
():
net
=
IPv4Network
(
"10.0.0.0/16"
)
all_26s
=
list
(
net
.
iter_subnets
(
new_prefix
=
26
))
admin_space
=
all_26s
[:
8
]
fmt_string
=
"{}: {} => {} ({})"
# two 256-host networks
admin1
=
collapse_address_list
(
admin_space
[:
4
])[
0
]
admin2
=
collapse_address_list
(
admin_space
[
4
:])[
0
]
print
fmt_string
.
format
(
'us-east-1a.admin-1'
,
admin1
.
network
,
admin1
.
broadcast
,
admin1
)
print
fmt_string
.
format
(
'us-east-1b.admin-2'
,
admin2
.
network
,
admin2
.
broadcast
,
admin2
)
print
customer_space
=
all_26s
[
8
:]
customer_1_space
=
list
(
customer_space
.
pop
(
0
)
.
iter_subnets
(
new_prefix
=
29
))
# two 8-host networks for public
public1
=
customer_1_space
.
pop
(
0
)
public2
=
customer_1_space
.
pop
(
0
)
# two 16-host networks for private
private1
=
collapse_address_list
([
customer_1_space
.
pop
(
0
),
customer_1_space
.
pop
(
0
)])[
0
]
private2
=
collapse_address_list
([
customer_1_space
.
pop
(
0
),
customer_1_space
.
pop
(
0
)])[
0
]
# one more 16-host network for spares
spare
=
collapse_address_list
([
customer_1_space
.
pop
(
0
),
customer_1_space
.
pop
(
0
)])[
0
]
# 64 hosts total per customer
all_customer_1
=
collapse_address_list
([
public1
,
public2
,
private1
,
private2
,
spare
])[
0
]
print
fmt_string
.
format
(
"us-east-1.customer-foo"
,
all_customer_1
.
network
,
all_customer_1
.
broadcast
,
all_customer_1
)
print
print
fmt_string
.
format
(
"us-east-1a.customer-foo.public-1"
,
public1
.
network
,
public1
.
broadcast
,
public1
)
print
fmt_string
.
format
(
"us-east-1b.customer-foo.public-2"
,
public2
.
network
,
public2
.
broadcast
,
public2
)
print
fmt_string
.
format
(
"us-east-1a.customer-foo.private-1"
,
private1
.
network
,
private1
.
broadcast
,
private1
)
print
fmt_string
.
format
(
"us-east-1b.customer-foo.private-2"
,
private2
.
network
,
private2
.
broadcast
,
private2
)
print
fmt_string
.
format
(
"us-east-1.customer-foo.spare"
,
spare
.
network
,
spare
.
broadcast
,
spare
)
def
main
():
compute_layout
()
if
__name__
==
'__main__'
:
main
()
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
714694
Default Alt Text
subnetter.py (2 KB)
Attached To
Mode
P2065 subnetter.py
Attached
Detach File
Event Timeline
Log In to Comment