type router
model router
network-config {
hostname Company-A
Copyright By PowCoder代写 加微信 powcoder
interface eth2
ip address 10.0.2.1/24
interface eth1
ip address 10.0.1.1/24
interface eth0
ip address 10.0.0.1/24
iconcoords {655.0 189.0}
labelcoords {655.0 221.0}
interface-peer {eth0 n5}
interface-peer {eth1 n6}
interface-peer {eth2 n2}
custom-config {
custom-config-id service:DHCP
custom-command DHCP
files=(‘/etc/dhcp/dhcpd.conf’, )
custom-config {
custom-config-id service:DHCP:/etc/dhcp/dhcpd.conf
custom-command /etc/dhcp/dhcpd.conf
# auto-generated by DHCP service (utility.py)
# NOTE: move these option lines into the desired pool { } block(s) below
#option domain-name “test.com”;
#option domain-name-servers 10.0.0.1;
#option routers 10.0.0.1;
log-facility local6;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.127 10.0.0.254;
default-lease-time 600;
option routers 10.0.0.1;
subnet 10.0.1.0 netmask 255.255.255.0 {
range 10.0.1.127 10.0.1.254;
default-lease-time 600;
option routers 10.0.1.1;
custom-config {
custom-config-id service:StaticRoute
custom-command StaticRoute
files=(‘staticroute.sh’, )
custom-config {
custom-config-id service:StaticRoute:staticroute.sh
custom-command staticroute.sh
# auto-generated by StaticRoute service (utility.py)
# NOTE: this service must be customized to be of any use
# Below are samples that you can uncomment and edit.
/sbin/ip route add 172.16.2.0/24 via 10.0.2.2
/sbin/ip route add 172.16.1.0/24 via 10.0.2.2
custom-config {
custom-config-id service:DefaultRoute
custom-command DefaultRoute
files=(‘defaultroute.sh’, )
custom-config {
custom-config-id service:DefaultRoute:defaultroute.sh
custom-command defaultroute.sh
# auto-generated by DefaultRoute service (utility.py)
#ip route add default via 10.0.0.1
#ip route add default via 10.0.1.1
#ip route add default via 10.0.2.1
services {IPForward DefaultRoute StaticRoute DHCP}
custom-image /usr/share/core/icons/normal/router_black.gif
type router
model router
network-config {
hostname Internet
interface eth2
ip address 10.0.4.1/24
interface eth0
ip address 10.0.2.2/24
iconcoords {455.0 91.0}
labelcoords {455.0 123.0}
interface-peer {eth0 n1}
interface-peer {eth2 n3}
custom-config {
custom-config-id service:StaticRoute
custom-command StaticRoute
files=(‘staticroute.sh’, )
custom-config {
custom-config-id service:StaticRoute:staticroute.sh
custom-command staticroute.sh
# auto-generated by StaticRoute service (utility.py)
# NOTE: this service must be customized to be of any use
# Below are samples that you can uncomment and edit.
/sbin/ip route add 10.0.0.0/24 via 10.0.2.1
/sbin/ip route add 10.0.1.0/24 via 10.0.2.1
/sbin/ip route add 172.16.2.0/24 via 10.0.4.2
/sbin/ip route add 172.16.1.0/24 via 10.0.4.2
services {IPForward StaticRoute}
custom-image /usr/share/core/icons/normal/router_black.gif
type router
model router
network-config {
hostname Company-B
interface eth2
ip address 172.16.2.1/24
interface eth1
ip address 172.16.1.1/24
interface eth0
ip address 10.0.4.2/24
iconcoords {257.0 188.0}
labelcoords {257.0 220.0}
interface-peer {eth0 n2}
interface-peer {eth1 n9}
interface-peer {eth2 n10}
custom-config {
custom-config-id service:DHCP
custom-command DHCP
files=(‘/etc/dhcp/dhcpd.conf’, )
custom-config {
custom-config-id service:DHCP:/etc/dhcp/dhcpd.conf
custom-command /etc/dhcp/dhcpd.conf
# auto-generated by DHCP service (utility.py)
# NOTE: move these option lines into the desired pool { } block(s) below
#option domain-name “test.com”;
#option domain-name-servers 10.0.0.1;
#option routers 10.0.0.1;
log-facility local6;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.127 172.16.1.254;
default-lease-time 600;
option routers 172.16.1.1;
subnet 172.16.2.0 netmask 255.255.255.0 {
range 172.16.2.127 172.16.2.254;
default-lease-time 600;
option routers 172.16.2.1;
custom-config {
custom-config-id service:StaticRoute
custom-command StaticRoute
files=(‘staticroute.sh’, )
custom-config {
custom-config-id service:StaticRoute:staticroute.sh
custom-command staticroute.sh
# auto-generated by StaticRoute service (utility.py)
# NOTE: this service must be customized to be of any use
# Below are samples that you can uncomment and edit.
#/sbin/ip route add 10.9.8.0/24 via 10.0.4.1
/sbin/ip route add 10.0.0.0/24 via 10.0.4.1
/sbin/ip route add 10.0.1.0/24 via 10.0.4.1
custom-config {
custom-config-id service:DefaultRoute
custom-command DefaultRoute
files=(‘defaultroute.sh’, )
custom-config {
custom-config-id service:DefaultRoute:defaultroute.sh
custom-command defaultroute.sh
# auto-generated by DefaultRoute service (utility.py)
#ip route add default via 10.0.4.1
#ip route add default via 172.16.1.1
#ip route add default via 172.16.2.1
services {IPForward DefaultRoute StaticRoute DHCP}
custom-image /usr/share/core/icons/normal/router_black.gif
type lanswitch
network-config {
hostname switch-A-1
iconcoords {795.0 189.0}
labelcoords {795.0 213.0}
interface-peer {e0 n1}
interface-peer {e2 n12}
type lanswitch
network-config {
hostname switch-A-2
iconcoords {569.0 292.0}
labelcoords {569.0 316.0}
interface-peer {e0 n1}
interface-peer {e4 n7}
type lanswitch
network-config {
hostname switch-B-2
iconcoords {164.0 223.0}
labelcoords {164.0 247.0}
interface-peer {e0 n3}
interface-peer {e1 n14}
node n10 {
type lanswitch
network-config {
hostname switch-B-1
iconcoords {254.0 61.0}
labelcoords {254.0 85.0}
interface-peer {e0 n3}
interface-peer {e1 n19}
node n12 {
type router
network-config {
hostname Client-A-1
interface eth0
iconcoords {890.0 190.0}
labelcoords {890.0 222.0}
interface-peer {eth0 n5}
custom-config {
custom-config-id service:DHCPClient
custom-command DHCPClient
files=(‘startdhcpclient.sh’, )
custom-config {
custom-config-id service:DHCPClient:startdhcpclient.sh
custom-command startdhcpclient.sh
# auto-generated by DHCPClient service (utility.py)
# uncomment this mkdir line and symlink line to enable client-side DNS
# resolution based on the DHCP server response.
mkdir -p /var/run/resolvconf/interface
ln -s /var/run/resolvconf/interface/eth0.dhclient /var/run/resolvconf/resolv.conf
/sbin/dhclient -nw -pf /var/run/dhclient-eth0.pid -lf /var/run/dhclient-eth0.lease eth0
services {DefaultRoute DHCPClient}
node n14 {
type router
network-config {
hostname Client-B-1
interface eth0
iconcoords {49.0 255.0}
labelcoords {49.0 287.0}
interface-peer {eth0 n9}
custom-config {
custom-config-id service:resolvconf
custom-command resolvconf
dirs=(‘/var/run/resolvconf’, )
files=(‘resolvconf.sh’, )
cmdup=(‘sh resolvconf.sh’, )
custom-config {
custom-config-id service:resolvconf:resolvconf.sh
custom-command resolvconf.sh
# Adjust the name servers accordingly and uncomment lines
# Do not use with DHCP Client if DHCP server specifies DNS address (the commands are included in DHCP client configuration script)
resolvconf –enable-updates
echo “nameserver 172.16.2.11” | resolvconf -a eth0
resolvconf -u
services {DefaultRoute DHCPClient resolvconf}
node n19 {
type router
model host
network-config {
hostname Server-B-1
interface eth0
iconcoords {67.0 60.0}
labelcoords {67.0 92.0}
interface-peer {eth0 n10}
custom-config {
custom-config-id service:HTTP
custom-command HTTP
dirs=(‘/etc/apache2’, ‘/var/run/apache2’, ‘/var/log/apache2’, ‘/var/lock/apache2’, ‘/var/www’, ‘/run/lock’, )
files=(‘/etc/apache2/apache2.conf’, ‘/etc/apache2/envvars’, ‘/var/www/index.html’, ‘pic.b64’, ‘start-apache.sh’, ‘convert-images.sh’, ‘/var/www/motto.html’, )
cmdup=(‘sh start-apache.sh’, )
custom-config {
custom-config-id service:HTTP:/var/www/motto.html
custom-command /var/www/motto.html
Our Motto
“If you are going to try go all the way” by
custom-config {
custom-config-id service:HTTP:convert-images.sh
custom-command convert-images.sh
base64 -d pic.b64 > /var/www/pic.jpg
custom-config {
custom-config-id service:HTTP:start-apache.sh
custom-command start-apache.sh
chown www-data /var/lock/apache2
chmod 755 convert-images.sh
/bin/sh convert-images.sh
apache2ctl start
custom-config {
custom-config-id service:HTTP:pic.b64
custom-command pic.b64
/9j/4AAQSkZJRgABAQEASABIAAD/4QCgRXhpZgAATU0AKgAAAAgABQEaAAUAAAABAAAASgEbAAUA
AAABAAAAUgEoAAMAAAABAAIAAAEyAAIAAAAUAAAAWodpAAQAAAABAAAAbgAAAAAAAABIAAAAAQAA
AEgAAAABMjAyMDowODowNCAwNzoyMTozNQAAA6ABAAMAAAABAAEAAKACAAMAAAABAJYAAKADAAMA
AAABAGgAAAAAAAD/4QtIaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVn
aW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5z
Ong9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjUuMCI+IDxyZGY6UkRGIHht
bG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFk
b2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1s
bnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50
IyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVD
NjE5NjYtMi4xIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wOC0wNFQwNzoyMTozNSsxMDowMCIgeG1w
Ok1ldGFkYXRhRGF0ZT0iMjAyMC0wOC0wNFQwNzoyMTozNSsxMDowMCI+IDx4bXBNTTpIaXN0b3J5
PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InByb2R1Y2VkIiBzdEV2dDpzb2Z0d2Fy
ZUFnZW50PSJBZmZpbml0eSBQaG90byAoSnVsIDMwIDIwMjApIiBzdEV2dDp3aGVuPSIyMDIwLTA4
LTA0VDA3OjIxOjM1KzEwOjAwIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpE
ZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+0ALFBo
b3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/iAmRJQ0NfUFJPRklMRQAB
AQAAAlRsY21zBDAAAG1udHJSR0IgWFlaIAfkAAgAAwATAC4AEGFjc3BBUFBMAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD21gABAAAAANMtbGNtcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAC2Rlc2MAAAEIAAAAPmNwcnQAAAFIAAAATHd0cHQAAAGUAAAAFGNo
YWQAAAGoAAAALHJYWVoAAAHUAAAAFGJYWVoAAAHoAAAAFGdYWVoAAAH8AAAAFHJUUkMAAAIQAAAA
IGdUUkMAAAIQAAAAIGJUUkMAAAIQAAAAIGNocm0AAAIwAAAAJG1sdWMAAAAAAAAAAQAAAAxlblVT
AAAAIgAAABwAcwBSAEcAQgAgAEkARQBDADYAMQA5ADYANgAtADIALgAxAABtbHVjAAAAAAAAAAEA
AAAMZW5VUwAAADAAAAAcAE4AbwAgAGMAbwBwAHkAcgBpAGcAaAB0ACwAIAB1AHMAZQAgAGYAcgBl
AGUAbAB5WFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEIAAAXe///zJQAAB5MAAP2Q///7
of///aIAAAPcAADAblhZWiAAAAAAAABvoAAAOPUAAAOQWFlaIAAAAAAAACSfAAAPhAAAtsNYWVog
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
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com