Engage1 Anycast Setup¶
Overview¶
The purpose of the Anycast setup is to allow compute nodes belonging to some arbitrary number of independent clusters to access their nearest Intel Cache Server via a fixed IP address.
In addition, if a cache server fails, the nodes will be redirected to a ‘backup’ cache server without perceiving the difference.
The network was configured based on this document prepared by Rob Montgomery at Brocade.
The configuration steps below are from that document, although IP addresses and VLAN #’s have been changed to reflect the actual implementation
VLAN Reservations¶
The following VLANs are reserved for use in the Anycast setup
VLAN | Description | Devices |
---|---|---|
2000 | Cache Transit VLAN | All RBridges and Cache Nodes |
2001-2032 | Cache Node VLANs | One per cache node + RBridge pair |
2100-2699 | Compute VLANs | Every RBridge; one per compute cluster |
The Cache Node Vlans are assigned by adding 2000 to the cabinet number of the RBridge and its cache node. So, RBridge-7 + Cache Node 7 are on VLAN 2007.
There are only 24 racks in the pod, but for now extra VLANS have been blocked off in case of expansion into the BU pod.
IP space allocations¶
Every IP in the Anycast network must be contained in 10.128.0.0/9.
- 10.192.1.0/30 (VLANS 2007,2008,2009,2010)
- Every cache node is accessible to compute nodes at 10.192.1.1/30 on its individual Cache Node Vlan.
- Each switch has interface on a distinct Cache Node Vlan with IP 10.192.1.2/30
- 10.224.1.0/24 (VLAN 2000)
- IPs are assigned statically on the Cache Transit VLAN:
IP | Assignment |
---|---|
10.224.1.1 | Ve 2000 Fabric Virtual Gateway |
10.224.1.7 | RBridge-7 Ve 2000 |
10.224.1.8 | RBridge-8 Ve 2000 |
10.224.1.9 | RBridge-9 Ve 2000 |
10.224.1.28 | RBridge-104 Ve 2000 |
10.224.1.10 | RBridge-10 Ve 2000 |
10.224.1.107 | Cache-c07 eth5.2000 |
10.224.1.108 | Cache-c08 eth5.2000 |
10.224.1.109 | Cache-c09 eth5.2000 |
10.224.1.110 | Cache-c10 eth5.2000 |
10.224.1.254 | DHCP server |
*Note: the Cache server IPs on eth5.2000 are assigned statically via the DHCP server. See the DHCP server config for more info.
The last octet should be 100 + rack number of the cache server.
25-28 should be used as the ‘rack number’ of switches 101-104 respectively, if this becomes needed*
*IPs and VLANs ending in 25, 26, 27, and 28 on the various networks should be assigned to RBridges 101, 102, 103, and 104 respectively, because they are located in Row 4, Cabinets 2 and 4, and using the cabinet numbers would cause overlap with RBridges 2 and 4.
We do not expect to use these 4 switches in the main Anycast setup but they may be used for testing or hosting additional infrastructure.*
- 10.128.X.Y/23 (COMPUTE VLANS)
- Each compute VLAN has an individual /23 IP space. They are assigned in the following pattern:
VLAN | IP Space |
---|---|
2100 | 10.128.0.0/23 |
2101 | 10.128.2.0/23 |
2102 | 10.128.4.0/23 |
2103 | 10.128.6.0/23 |
2104 | 10.128.8.0/23 |
2105 | 10.128.10.0/23 |
2106 | 10.128.12.0/23 |
2107 | 10.128.14.0/23 |
2108 | 10.128.16.0/23 |
2109 | 10.128.18.0/23 |
2227 | 10.128.254.0/23 |
2228 | 10.129.0.0/23 |
2355 | 10.129.254.0/23 |
2356 | 10.130.0.0/23 |
2483 | 10.130.254.0/23 |
2484 | 10.131.0.0/23 |
2611 | 10.131.254.0/23 |
2612 | 10.132.0.0/23 |
2699 | 10.132.174.0/23 |
On each of these VLANs, the first 32 IPs and the last 16 IPs are reserved. Switches should always be assigned an IP of the following pattern:
- 10.X.Y.Z where the letters stand for the following:
- X.Y The appropriate subnet for the VLAN (lower half)
- Z The cabinet number of the switch (except for 101-104, which will use 25-28 respectively)
For example, RBridge-7 has the following IPs:
- VLAN 2100 : 10.128.0.7
- VLAN 2101 : 10.128.2.7
- VLAN 2102 : 10.128.4.7
…etc
Virtual fabric gateway configuration¶
The mac address of the gateway is arbitrary, but should be a private mac address.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# router fabric-virtual-gateway
RBridge-101(conf-router-fabric-virtual-gateway)# address-family ipv4
RBridge-101(conf-address-family-ipv4)# no enable
RBridge-101(conf-address-family-ipv4)# gateway-mac-address 0204.0204.0204
RBridge-101(conf-address-family-ipv4)# gratuitous-arp timer 60
RBridge-101(conf-address-family-ipv4)# accept-unicast-arp-request
RBridge-101(conf-address-family-ipv4)# enable
RBridge-101(conf-address-family-ipv4)# end
RBridge-101#
Static Routes¶
Each switch also needs a static route to a backup cache server. Static routes have an administrative distance of 1 by default, so they it will only be used if all direct connections are exhausted.
This means if the cache server fails, the relevant interface must be disabled on the directly connected switch before the static route can be used and failover can take place.
The backup topology is currently:
RBridge-7 ---> RBridge-9 ---> RBridge-10 ---> RBridge-8 ---> RBridge-7
which was determined based on the physical topology of the switches. As more switches are added to the setup, the backup topology should be altered.
The following configuration steps must be performed on each switch with a cache server directly connected. Config steps for two switches are shown.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# rbridge-id 7
RBridge-101(config-rbridge-id-1)# ip route 0.0.0.0/0 10.224.1.104
RBridge-101(config-rbridge-id-1)# ip route 10.192.1.0/30 10.224.1.9
RBridge-101(config-rbridge-id-1)# top
RBridge-101(config)# rbridge-id 8
RBridge-101(config-rbridge-id-2)# ip route 0.0.0.0/0 10.224.100.104
RBridge-101(config-rbridge-id-2)# ip route 10.192.1.0/30 10.224.1.7
RBridge-101(config-rbridge-id-2)# end
If the compute vlan is expected to handle outgoing traffic, each switch also needs a default route to the edge router (assuming this network will handle outgoing traffic).
In that case, the static route supplied to the nodes by the dhcp server can be a default route to the edge router.
Cache Transit Vlan¶
The Cache Transit Vlan is on Vlan 2000.
First we create the Vlan :
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface vlan 2000
RBridge-101(config-Vlan-2000)# name anycast_Cache_Transit
RBridge-101(config-Vlan-2000)# end
RBridge-101#
Next, create a Virtual Ethernet Interface on each switch in the setup. The config below should be repeated for each switch, and each switch should have its own IP (see the table above).
Config for switches 7 and 8 are shown in the example.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# rbridge-id 7
RBridge-101(config-rbridge-id-7)# interface ve 2000
RBridge-101(config-rbridge-Ve-2000)# ip address 10.224.1.7/24
RBridge-101(config-rbridge-Ve-2000)# no shutdown
RBridge-101(config-rbridge-Ve-2000)# top
RBridge-101(config)# rbridge-id 8
RBridge-101(config-rbridge-id-8)# interface ve 2000
RBridge-101(config-rbridge-Ve-2000)# ip address 10.224.1.8/24
RBridge-101(config-rbridge-Ve-2000)# no shutdown
RBridge-101(config-rbridge-Ve-2000)# end
RBridge-101#
Configure the Fabric Virtual Gateway interface. Attach all the switches which you created Ve 2000 in the previous step.
In the example, switches 7 and 8 are attached.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface ve 2000
RBridge-101(config-Ve-2000)# attach rbridge-id add 7
RBridge-101(config-Ve-2000)# attach rbridge-id add 8
RBridge-101(config-Ve-2000)# ip fabric-virtual-gateway
RBridge-101(config-ip-fabric-virtual-gw)# gateway-address 10.224.1.1/24
# see * below for omitted step here
RBridge-101(config-ip-fabric-virtual-gw)# gratuitous-arp timer 15
RBridge-101(config-ip-fabric-virtual-gw)# hold-time 30
RBridge-101(config-ip-fabric-virtual-gw)# enable
RBridge-101(config-ip-fabric-virtual-gw)# end
RBridge-101#
The original instructions from Rob included this step here:
RBridge-101(config-ip-fabric-virtual-gw)# load-balancing-disable
But this causes all traffic to get forwarded to the designated ARP router for the gateway, which in turn means that all traffic to the cache node IP ends up at the cache node under that router, which is definitely not desired behavior.
Cache Node VLANs¶
A separate VLAN must be created for each cache node. The VLAN number should be 2000 + cabinet number of the cache node.
This cabinet number is also used in the hostname of the cache node and as the RBridge-ID of the TOR switch.
So for example, cache-c07-01 is in cabinet 7, its TOR swich is RBridge-7, and its Cache Node VLAN is 2007.
In the example, cache transit vlans are created for cache nodes 7 and 8.
Create the VLANS:
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface vlan 2007
RBridge-101(config-Vlan-2007)# name anycast_Cache-C07
RBridge-101(config-Vlan-2007)# top
RBridge-101(config)# interface vlan 2008
RBridge-101(config-Vlan-2008)# name anycast_Cache-C08
RBridge-101(config-Vlan-2008)# end
RBridge-101#
Configure the Virtual Ethernet interfaces that connect to each VLAN. Notice that the IP is the same on every virtual interface.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# rbridge-id 7
RBridge-101(config-rbridge-id-7)# interface ve 2007
RBridge-101(config-rbridge-Ve-2007)# ip address 10.192.1.2/30
RBridge-101(config-rbridge-Ve-2007)# no shutdown
RBridge-101(config-rbridge-Ve-2007)# top
RBridge-101(config)# rbridge-id 8
RBridge-101(config-rbridge-id-8)# interface ve 2008
RBridge-101(config-rbridge-Ve-2008)# ip address 10.192.1.2/30
RBridge-101(config-rbridge-Ve-2008)# no shutdown
RBridge-101(config-rbridge-Ve-2008)# end
RBridge-101#
Connect each Cache Server to the approriate VLANs**¶
For each Cache Node, the individual Cache Node VLAN and the Cache Transit VLAN should be added added to the relevant port on the switch.
In the current setup the cache nodes have two 40Gb connections to the TOR switch.
The first, in port 51, is an access mode port reserved for Ceph traffic.
We should add the correct VLAN to the trunk port 52 on each switch.
This is shown for RBridges 7 and 8.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface fortygigabitethernet 7/0/52
RBridge-101(conf-if-fo-7/0/52)# switchport
RBridge-101(conf-if-fo-7/0/52)# switchport mode trunk
RBridge-101(conf-if-fo-7/0/52)# switchport trunk allowed vlan add 2000
RBridge-101(conf-if-fo-7/0/52)# switchport trunk allowed vlan add 2007
RBridge-101(conf-if-fo-7/0/52)# no shutdown
RBridge-101(conf-if-fo-7/0/52)# top
RBridge-101(config)# interface fortygigabitethernet 8/0/52
RBridge-101(conf-if-fo-8/0/52)# switchport
RBridge-101(conf-if-fo-8/0/52)# switchport mode trunk
RBridge-101(conf-if-fo-8/0/52)# switchport trunk allowed vlan add 2000
RBridge-101(conf-if-fo-8/0/52)# switchport trunk allowed vlan add 2008
RBridge-101(conf-if-fo-8/0/52)# no shutdown
RBridge-101(conf-if-fo-8/0/52)# end
RBridge-101#
Compute VLANs¶
Each individual physical or virtual compute cluster will have its own VLAN.
We have reserved VLANs 2100-2699 for this purpose, but currently only VLANs 2100-2109 are configured.
The infrastructure cannot support more than about 600 simultaneous clusters.
The configuration is shown is for Vlan 2100 and 2101, but should be done for each compute vlan that is to be made available.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface vlan 2100
RBridge-101(config-Vlan-2100)# name anycast_Compute_2100
RBridge-101(config-Vlan-2100)# top
RBridge-101(config)# interface vlan 2101
RBridge-101(config-Vlan-2101)# name anycast_Compute_2101
RBridge-101(config-Vlan-2101)# end
RBridge-101#
Create the Virtual Ethernet Interfaces. Each switch has a unique IP address on each interfacd.
These should be assigned in the pattern described in the IP Space section above.
The ip dhcp relay address points to a DHCP server which is configured to serve all the subnets used by compute vlans.
These config steps should be performed on every switch. The example shows config for RBridges 7 and 8.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# rbridge-id 7
RBridge-101(config-rbridge-id-7)# interface ve 2100
RBridge-101(config-rbridge-Ve-2100)# ip address 10.128.0.7/23
RBridge-101(config-rbridge-Ve-2100)# ip dhcp relay address 10.224.1.254
RBridge-101(config-rbridge-Ve-2100)# no shutdown
RBridge-101(config-rbridge-Ve-2100)# exit
RBridge-101(config-rbridge-id-7)# interface ve 2101
RBridge-101(config-rbridge-Ve-2101)# ip address 10.128.2.7/23
RBridge-101(config-rbridge-Ve-2101)# ip dhcp relay address 10.224.1.254
RBridge-101(config-rbridge-Ve-2101)# no shutdown
RBridge-101(config-rbridge-Ve-2101)# top
RBridge-101(config)# rbridge-id 8
RBridge-101(config-rbridge-id-7)# interface ve 2100
RBridge-101(config-rbridge-Ve-2100)# ip address 10.128.0.8/23
RBridge-101(config-rbridge-Ve-2100)# ip dhcp relay address 10.224.1.254
RBridge-101(config-rbridge-Ve-2100)# no shutdown
RBridge-101(config-rbridge-Ve-2100)# exit
RBridge-101(config-rbridge-id-2)# interface ve 2101
RBridge-101(config-rbridge-Ve-2101)# ip address 10.128.2.8/23
RBridge-101(config-rbridge-Ve-2101)# ip dhcp relay address 10.224.1.254
RBridge-101(config-rbridge-Ve-2101)# no shutdown
RBridge-101(config-rbridge-Ve-2101)# end
RBridge-101#
Create the Fabric Virtual Gateway for the compute VLANs, and attach all switches.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface ve 2100
RBridge-101(config-Ve-2100)# attach rbridge-id add 7
RBridge-101(config-Ve-2100)# attach rbridge-id add 8
RBridge-101(config-Ve-2100)# ip fabric-virtual-gateway
RBridge-101(config-ip-fabric-virtual-gw)# gateway-address 10.128.0.1/23
RBridge-101(config-ip-fabric-virtual-gw)# load-balancing-disable
RBridge-101(config-ip-fabric-virtual-gw)# gratuitous-arp timer 15
RBridge-101(config-ip-fabric-virtual-gw)# hold-time 30
RBridge-101(config-ip-fabric-virtual-gw)# enable
RBridge-101(config-ip-fabric-virtual-gw)# exit
RBridge-101(config-Ve-2100)# interface ve 2101
RBridge-101(config-Ve-2101)# attach rbridge-id add 7
RBridge-101(config-Ve-2101)# attach rbridge-id add 8
RBridge-101(config-Ve-2101)# ip fabric-virtual-gateway
RBridge-101(config-ip-fabric-virtual-gw)# gateway-address 10.128.3.1/23
RBridge-101(config-ip-fabric-virtual-gw)# load-balancing-disable
RBridge-101(config-ip-fabric-virtual-gw)# gratuitous-arp timer 15
RBridge-101(config-ip-fabric-virtual-gw)# hold-time 30
RBridge-101(config-ip-fabric-virtual-gw)# enable
RBridge-101(config-ip-fabric-virtual-gw)# end
RBridge-101#
Connecting Compute Nodes to switches¶
In general, this task should be handled by HIL. However, this is the procedure if you are doing it manually for testing purposes.
For these examples, assume 3 physical nodes connected to ports 1, 2, and 3 respectively on RBridge-7.
Physical node #1 will be part of a physical compute cluster using vlan 2100, and we wish this compute VLAN to be the native VLAN:
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface tengigabitethernet 7/0/1
RBridge-101(conf-if-te-7/0/1)# switchport
RBridge-101(conf-if-te-7/0/1)# switchport mode trunk
RBridge-101(conf-if-te-7/0/1)# switchport trunk native-vlan 2100
RBridge-101(conf-if-te-7/0/1)# no switchport trunk tag native-vlan
#(optional) if other vlans are needed:
RBridge-101(conf-if-te-7/0/1)# switchport trunk allowed vlan add XXXX
RBridge-101(conf-if-te-1/0/1)# no shutdown
RBridge-101(conf-if-te-1/0/1)# end
RBridge-101#
Physical node #2 will be part of a physical compute cluster on vlan 2101, but it won’t be the native vlan:
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface tengigabitethernet 7/0/2
RBridge-101(conf-if-te-7/0/2)# switchport
RBridge-101(conf-if-te-7/0/2)# switchport mode trunk
RBridge-101(conf-if-te-7/0/2)# switchport trunk allowed vlan add 2101
RBridge-101(conf-if-te-7/0/2)# no shutdown
RBridge-101(conf-if-te-7/0/2)# end
RBridge-101#
Physical node #3 will host virtual compute nodes which could be part of any cluster.
We attach all possible vlans (in this case, 2100-2109) to it. Appropriate bridging will need to be configured on the node itself,
which will depend on the method being used to deploy virtual clusters.
That configuration is beyond the scope of this page.
RBridge-101# configure terminal
Entering configuration mode terminal
RBridge-101(config)# interface tengigabitethernet 7/0/3
RBridge-101(conf-if-te-7/0/3)# switchport
RBridge-101(conf-if-te-7/0/3)# switchport mode trunk
RBridge-101(conf-if-te-7/0/3)# switchport trunk allowed vlan add 2100-2109
RBridge-101(conf-if-te-7/0/3)# no shutdown
RBridge-101(conf-if-te-7/0/3)# end
RBridge-101#
DHCP setup¶
The DHCP server is running on moc-services and can be reached from moc-services at 10.13.66.14
.
It also has an IP of 10.224.1.254 on the Cache Transit VLAN.
It is configured to:
- give static IPs to the cache servers on the Cache Transit VLAN.
- give random IPs to phyisical or virtual compute nodes on the compute vlans.
- push a static route to the physical and virtual compute nodes which directs 10.128.0.0/9 traffic to the gateway of the compute vlan, where it can be routed to cache servers as appropriate.
Currently, VLANS 2100-2109 are configured for DHCP. As more VLANs are added to the cluster, they will need to be added to /etc/dhcpd.conf
.
# In/etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
log-facility local7;
# Enable classless static routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
## CACHE TRANSIT VLAN (2000)
## network 10.224.1.0/24
# No random DHCP on this network
subnet 10.224.1.0 netmask 255.255.255.0 {
}
# static IPs for Cache Servers
host cache-c07-01 {
option host-name "cache-c07-01";
hardware ethernet 68:05:ca:33:ff:10;
fixed-address 10.224.1.107;
}
host cache-c08-01 {
option host-name "cache-c08-01";
hardware ethernet 68:05:ca:33:fe:b0;
fixed-address 10.224.1.108;
}
host cache-c09-01 {
option host-name "cache-c09-01";
hardware ethernet 68:05:ca:34:04:90;
fixed-address 10.224.1.109;
}
host cache-c10-01 {
option host-name "cache-c10-01";
hardware ethernet 68:05:ca:33:fe:d0;
fixed-address 10.224.1.110;
}
## COMPUTE VLAN 2100
## network 10.128.0.0/23
subnet 10.128.0.0 netmask 255.255.254.0 {
range 10.128.0.32 10.128.1.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.1.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 0, 1, 10, 128, 0, 1;
#option routers 10.128.0.1;
}
## COMPUTE VLAN 2101
## network 10.128.2.0/23
subnet 10.128.2.0 netmask 255.255.254.0 {
range 10.128.2.32 10.128.3.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.3.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 2, 1, 10, 128, 2, 1;
#option routers 10.128.2.1;
}
## COMPUTE VLAN 2102
## network 10.128.4.0/23
subnet 10.128.4.0 netmask 255.255.254.0 {
range 10.128.4.32 10.128.5.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.5.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 4, 1, 10, 128, 4, 1;
#option routers 10.128.4.1;
}
## COMPUTE VLAN 2103
## network 10.128.6.0/23
subnet 10.128.6.0 netmask 255.255.254.0 {
range 10.128.6.32 10.128.7.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.7.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 6, 1, 10, 128, 6, 1;
#option routers 10.128.6.1;
}
## COMPUTE VLAN 2104
## network 10.128.8.0/23
subnet 10.128.8.0 netmask 255.255.254.0 {
range 10.128.8.32 10.128.9.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.9.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 8, 1, 10, 128, 8, 1;
#option routers 10.128.8.1;
}
## COMPUTE VLAN 2105
## network 10.128.10.0/23
subnet 10.128.10.0 netmask 255.255.254.0 {
range 10.128.10.32 10.128.11.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.11.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 10, 10, 128, 10, 1;
## COMPUTE VLAN 2105
## network 10.128.10.0/23
subnet 10.128.10.0 netmask 255.255.254.0 {
range 10.128.10.32 10.128.11.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.11.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 10, 10, 128, 10, 1;
#option routers 10.128.10.1;
}
## COMPUTE VLAN 2106
## network 10.128.12.0/23
subnet 10.128.12.0 netmask 255.255.254.0 {
range 10.128.12.32 10.128.13.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.13.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 12, 1, 10, 128, 12, 1;
#option routers 10.128.13.1;
}
## COMPUTE VLAN 2107
## network 10.128.14.0/23
subnet 10.128.14.0 netmask 255.255.254.0 {
range 10.128.14.32 10.128.15.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.15.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 14, 1, 10, 128, 14, 1;
#option routers 10.128.14.1;
}
## COMPUTE VLAN 2108
## network 10.128.16.0/23
subnet 10.128.16.0 netmask 255.255.254.0 {
range 10.128.16.32 10.128.17.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.17.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 16, 1, 10, 128, 16, 1;
#option routers 10.128.4.1;
}
## COMPUTE VLAN 2109
## network 10.128.18.0/23
subnet 10.128.18.0 netmask 255.255.254.0 {
range 10.128.18.32 10.128.19.240;
option subnet-mask 255.255.254.0;
option broadcast-address 10.128.19.255;
option rfc3442-classless-static-routes 9, 10, 128, 10, 128, 18, 1, 10, 128, 18, 1;
#option routers 10.128.18.1;
}