Thursday, October 1, 2015

Ubuntu /etc/network/interfaces

mapping stanza
1
2
3
4
5
mapping <interface_name_glob>
 script <script_name>
 map <script_input1>
 map <script_input2>
 map ...

example configuration:
1
2
3
4
5
 auto eth0 eth1
 mapping eth0 eth1
     script /path/to/get-mac-address.sh
     map 11:22:33:44:55:66 lan
     map AA:BB:CC:DD:EE:FF internet

get-mac-address.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

set -e

export LANG=C

iface="$1"
mac=$(/sbin/ifconfig "$iface" | sed -n -e '/^.*HWaddr \([:[:xdigit:]]*\).*/{s//\1/;y/ABCDEF/abcdef/;p;q;}')
which=""

while read testmac scheme; do
        if [ "$which" ]; then continue; fi
        if [ "$mac" = "$(echo "$testmac" | sed -e 'y/ABCDEF/abcdef/')" ]; then which="$scheme"; fi
done

if [ "$which" ]; then echo $which; exit 0; fi
exit 1

The bold sections in the example configuration and the corresponding script show how the "map" inputs are handled.

Reference:
http://addisu.taddese.com/blog/mapping-in-linux-network-interfaces/
https://wiki.debian.org/NetworkConfiguration

No comments:

Post a Comment