■Debian jessieでifup/ifdownでPROMISCを指定してみる。
$ lsb_release -d
Description: Debian GNU/Linux 8.3 (jessie)
■下記のどちらでもinterfaceに対してPROMISCを指定することが出来る。
$ sudo ip link set eth1 promisc on up; \
ip link show eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff
$ sudo ip link set eth1 promisc off down; \
ip link show eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff
$ sudo ifconfig eth1 promisc up; \
/sbin/ifconfig eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
eth1 Link encap:イーサネット ハードウェアアドレス XX:XX:XX:XX:c2:e3
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 メトリック:1
RXパケット:54 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:186 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:4385 (4.2 KiB) TXバイト:18144 (17.7 KiB)
$ sudo ifconfig eth1 -promisc down; \
/sbin/ifconfig eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
eth1 Link encap:イーサネット ハードウェアアドレス XX:XX:XX:XX:c2:e3
BROADCAST MULTICAST MTU:1500 メトリック:1
RXパケット:54 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:196 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:4385 (4.2 KiB) TXバイト:19478 (19.0 KiB)
■真面目に[ip]コマンドで置き換えるとしたら。
$ sudo ip addr add 172.16.16.89/24 dev eth1
$ sudo ip link set eth1 promisc on
$ sudo ip link set eth1 up
$ ip link show eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff
$ sudo ip link set eth1 promisc off
$ sudo ip link set eth1 down
$ ip link show eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff
■ifup/ifdownスクリプトのup/downオプションで書くとすると。
ifconfigはipコマンドに置き換えられる方向なので、
両方書いておくがipコマンドの方しか使わない。
また、IPの指定はifconfigと違ってipコマンドの場合は、upの後ろに書いてもダメな様子。
ということで、以下に落ち着いた。
$ sudo grep -A 14 "^auto eth1" /etc/network/interfaces
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 172.16.16.89
netmask 255.255.255.0
network 172.16.16.0
broadcast 172.16.16.255
up ip link set eth1 promisc on
down ip link set eth1 promisc off
■ifup/ifdown結果は以下。
$ sudo ifup eth1; \
ip a list eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff
inet 172.16.16.89/24 brd 172.16.16.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20a:79ff:fe9a:c2e3/64 scope link tentative
valid_lft forever preferred_lft forever
$ sudo ifdown eth1; \
ip a list eth1 | sed -e 's/[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:[0-9a-e][0-9a-e]:/XX:XX:XX:XX:/g'
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether XX:XX:XX:XX:c2:e3 brd ff:ff:ff:ff:ff:ff