仮想tapに直接IP指定しりゃいいじゃん
訂正-Packetixのローカルブリッジ設定
以下、めんどくさい方法w
Packetixのローカルブリッジ設定で
Linuxサーバに生えるtapに接続出来ない?
のでブリッジすることでそれを回避してみます。
仮想HUBにアドレスを振ることは出来るのですが、
そのIPアドレスにアクセスしてもサーバの内部アドレスではないので、
SSHもなにも繋がらないです。。。
ちなみに、SecureNATを外してDHCPだけ動かさないと
IPSec/L2TPは繋がらなかった。
Packetix
ブリッジ先・・・dummy0(実際にはtap_dummy0)
仮想HUB・・・192.168.255.254
DHCPサーバ・・・192.168.255.0/24
Linux(Debian)
ブリッジ名・・・br_packet
追加するインターフェイス・・・tap_dummy0(これがブリッジ先の名前)
インターフェイスブリッジの追加編集
vi /etc/network/interfaces
auto br_packet
iface br_soft inet static
address 192.168.255.1
network 192.168.255.0
netmask 255.255.255.0
broadcast 192.168.255.255
gateway 192.168.255.1
pre-up /usr/bin/vpnserver/vpnserver start
bridge_ports tap_dummy0
post-down /usr/bin/vpnserver/vpnserver stop
bridge_stp off
pre-upで先に挙げないとtapが作成されず、
Packetixの起動に失敗します。
これがPacketixのtapとブリッジされて
サーバの内部アドレス192.168.255.1にアクセス出来るようになります。
起動スクリプト
#!/bin/sh
# Packetix daemon.
#
### BEGIN INIT INFO
# Provides:Packetix
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 99
# Default-Stop: 0 1 6
# chkconfig: 2345 99 01
# description: PacketiX
### END INIT INFO
DAEMON=/usr/bin/vpnserver/vpnserver
LOCK=/var/opt/vpnserver/server.lock
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 3
/sbin/brctl addif br_packet tap_dummy0
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 3
/sbin/brctl addif br_packet tap_dummy0
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
どうも、起動した直後ではtapが生えず、
ブリッジ作成が失敗してしまうので、
sleep 3で時間差を作りました。
これがキモ
/sbin/brctl addif br_packet tap_dummy0
ブリッジがうまく行っているかは
# brctl show bridge name bridge id STP enabled interfaces br_soft 8000.00acx7x1x1x0 no tap_dummy0
interfaceにtapデバイスがあればOK。
IPアドレスは
# ifconfig
br_packet Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.255.1 Bcast:192.168.255.255 Mask:255.255.255.0
こんな感じでIPアドレスが見えるはず
このままだと停止時にエラー
Currently running processes (pstree):
init-+-rc---startpar---sendsigs---pstree
|-rsyslogd---3*[{rsyslogd}]
`-vpnserver---41*[{vpnserver}]
[FAILfailed.ng all remaining processes...
するので
あとはこれをランレベル0(停止)、6(再起動)
/etc/rc.0/K01vpnserver
/etc/rc.6/K01vpnserver
にリンクを張っておけばOK。
[tegaki]難しいなぁ[/tegaki]