blob: fbeef40bf5b4b746418cc29a3bedd4fe310bc0bb [file] [log] [blame]
#!/bin/bash
# Create the host networks for the VLAN prototype.
# Runs as root.
# Use at your own risk.
create_interface() {
bridge="$(printf cvd-v${1}br-%02d $2)"
tap="$(printf cvd-${1}vlan-%02d $2)"
gateway="${3}.$((4*$2 - 3))"
network="${3}.$((4*$2 - 4))/30"
netmask="255.255.255.252"
dhcp_range="${3}.$((4*$2 - 2)),${3}.$((4*$2 - 2))"
/sbin/brctl addbr "${bridge}"
/sbin/brctl stp "${bridge}" off
/sbin/brctl setfd "${bridge}" 0
/sbin/ifconfig "${bridge}" "${gateway}" netmask "${netmask}" up
iptables -t nat -A POSTROUTING -s "${network}" -j MASQUERADE
dnsmasq \
--strict-order \
--except-interface=lo \
--interface="${bridge}" \
--listen-address="${gateway}" \
--bind-interfaces \
--dhcp-range="${dhcp_range}" \
--conf-file="" \
--pid-file=/var/run/cuttlefish-dnsmasq-"${bridge}".pid \
--dhcp-leasefile=/var/run/cuttlefish-dnsmasq-"${bridge}".leases \
--dhcp-no-override
ip link add link cvd-net-01 name "${tap}" type vlan id ${4}
/sbin/ifconfig "${tap}" 0.0.0.0 up
/sbin/brctl addif "${bridge}" "${tap}"
}
ip tuntap add dev cvd-net-01 mode tap group cvdnetwork
ifconfig cvd-net-01 0.0.0.0 up
create_interface w 1 192.168.93 11
create_interface m 1 192.168.94 12
create_interface i 1 192.168.95 13