Packetixのローカルブリッジ設定

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.