読者です 読者をやめる 読者になる 読者になる

SIP-nat成功っぽい

iptables

backporsの2.6.18の中身を見ると、どうもnetfilterにSIP
モジュールが存在するようです。
しかし、そのままインストールしようとすると、backportsのくせに
いろいろ依存関係のエラーが発生しました。
しかたないので、ヘッダーとソースをインストールして、
自分でコンパイルすることにしました。
まず、backportsをapt-lineに書き加えます。

deb http://backports.mithril-linux.org/ sarge-backports main contrib non-free
deb-src http://backports.mithril-linux.org/ sarge-backports main contrib non-fre
e

それから2.4.18のカーネルヘッダとカーネルソースをインストールします。
私の環境はamd64なのでそのカーネルヘッダになります。

apt-get update
apt-get install linux-headers-2.6.18-3-amd64
apt-get install linux-source-2.6.18

そうすると、/usr/srcにlinux-source-2.6.18.tar.bz2ができるので
展開します。

cd /usr/src
tar xjfv inux-source-2.6.18.tar.bz2

カーネルを構築します。kernel-packageが入っていない場合は入れておきます。

apt-get install kernel-package
cd linux-source-2.6.18
cp ../linux-headers-2.6.18-3-amd64/.config .config
make oldconfig
make-kpkg kernel-image

これで/usr/srcにkernel-image-2.6.18_10.00.Custom_amd64.deb
できます。これをインストールします。

cd ..
dpkg -i kernel-image-2.6.18_10.00.Custom_amd64.deb

これだけだとinitrdを作ってくれないようなので作成し、update-grubを実行します。
いつのまにmkinitrdからmkinitramfsに入れ替わったんだろ。。。?

mkinitramfs 2.6.18 -o /boot/initrd.img-2.6.18
update-grub

これでリブートし、インストールした2.6.18でブートします。

modprobe ip_conntrack_sip ip_nat_sip

ブート成功したら上のコマンドでSIP-natが使えるようになります。
ルールとしては内側から外側に行くパケットに関しては
sipのモジュールをmodprobeして組み込むだけでいけます。
外から内側に入れるパケットに関してはNATのルールの追加がルータマシンに必要です。

iptables -t nat -A PREROUTING -d 220.157.xxx.xxx -i ppp0 -p udp --dport 5060 -j DNAT --to 192.168.1.xxx

上はまだ実験最後まで成功していないのですが、いけるでしょう。^^;
UDPの5060だけでSIPの電話は出来るようです。