blob: fbeef40bf5b4b746418cc29a3bedd4fe310bc0bb [file] [log] [blame]
Cody Schuffelenea55d4b2018-09-07 15:17:58 -07001#!/bin/bash
2
3# Create the host networks for the VLAN prototype.
4# Runs as root.
5# Use at your own risk.
6
7create_interface() {
8 bridge="$(printf cvd-v${1}br-%02d $2)"
9 tap="$(printf cvd-${1}vlan-%02d $2)"
10 gateway="${3}.$((4*$2 - 3))"
11 network="${3}.$((4*$2 - 4))/30"
12 netmask="255.255.255.252"
13 dhcp_range="${3}.$((4*$2 - 2)),${3}.$((4*$2 - 2))"
14
15 /sbin/brctl addbr "${bridge}"
16 /sbin/brctl stp "${bridge}" off
17 /sbin/brctl setfd "${bridge}" 0
18 /sbin/ifconfig "${bridge}" "${gateway}" netmask "${netmask}" up
19
20 iptables -t nat -A POSTROUTING -s "${network}" -j MASQUERADE
21
22 dnsmasq \
23 --strict-order \
24 --except-interface=lo \
25 --interface="${bridge}" \
26 --listen-address="${gateway}" \
27 --bind-interfaces \
28 --dhcp-range="${dhcp_range}" \
29 --conf-file="" \
30 --pid-file=/var/run/cuttlefish-dnsmasq-"${bridge}".pid \
31 --dhcp-leasefile=/var/run/cuttlefish-dnsmasq-"${bridge}".leases \
32 --dhcp-no-override
33
34 ip link add link cvd-net-01 name "${tap}" type vlan id ${4}
35 /sbin/ifconfig "${tap}" 0.0.0.0 up
36 /sbin/brctl addif "${bridge}" "${tap}"
37}
38
39ip tuntap add dev cvd-net-01 mode tap group cvdnetwork
40ifconfig cvd-net-01 0.0.0.0 up
41
42create_interface w 1 192.168.93 11
43create_interface m 1 192.168.94 12
44create_interface i 1 192.168.95 13