仮想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]