さくらの専用サーバにIPアドレスを追加してXenを使ってみる

先日、何を思ったか「さくらインターネット」の専用サーバをレンタルしました。



海外サーバでXenを使用したVPSを運用しているのですが、2台借りてるうちの1台がどうも調子が悪く、国内サーバへ1台差し戻そうかと思っての「さくらインターネット」です。
なぜプロックスにしなかったか?というと、単純にスペックの問題です。

そこで追加IPアドレスを取ったのですが、またこれがなんというか・・・・ゲートウェイアドレスがないという・・・・
さくらに問い合わせてみたところ「元々振られているIPアドレスのゲートウェイを使って下さい」との事・・・・う〜ん

いろんな疑問はとりあえず頭から外して、折角年間契約で借りたサーバなので、何とか有効活用を・・・と思い(いや、既に2ヶ月ほど放置状態なので・・・)、いろいろ調べて設定してみました。

結局は、Xenの仮想ネットワーク(192.168.122.xxxネットワーク)を介して、1対1NATで実ネットワークへ出て行く、という手法を取りました。

0.Xenに割り当てるグローバルIPと仮想ネットワーク用のIPを決める
 ここでは
  グローバルIP:xxx.xxx.xxx.xxx
  仮想ネットワークIP:192.168.122.2
 としておきます。

1.Xenをインストールし、仮想サーバを立ち上げる
 仮想サーバのインストール時、インストールメディアにIPアドレスを指定する場合(http経由などでのインストール)、Domain-0マシンのIPアドレスは”192.168.122.1″を指定するとスムーズ。
 この時、構築する仮想サーバのIPアドレスは”192.168.122.2″を指定してみる。

2.Xenホスト(Domain-0)上のiptablesを設定する

iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -j DNAT --to-destination 192.168.122.2
iptables -t nat -A POSTROUTING -s 192.168.122.2 -j SNAT --to-source xxx.xxx.xxx.xxx

iptables -A RH-Firewall-1-INPUT -d 192.168.122.0/255.255.255.0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A RH-Firewall-1-INPUT -s 192.168.122.0/255.255.255.0 -i virbr0 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -i virbr0 -o virbr0 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -o virbr0 -j REJECT --reject-with icmp-port-unreachable
iptables -A RH-Firewall-1-INPUT -i virbr0 -j REJECT --reject-with icmp-port-unreachable

“RH-Firewall-1-INPUT”の部分はご自身のiptables環境へ合わせて下さい。

このまま再起動すると設定が消えるので、現在の設定をファイルに書き出す。

# iptables-save > /etc/sysconfig/iptables

3.Xenホストのeth0に新たに取得したIPアドレスを割り当てる。
コマンドラインで設定

ifconfig eth0:0 inet xxx.xxx.xxx.xx netmask 255.255.255.255

但し、再起動すると設定が消えるので、設定ファイルを作成する
ファイル名:/etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.255

4.これで設定終了。

試しに、仮想サーバ上からYahooへpingを打つなり、外部との通信を行ってみて下さい。
また、仮想サーバ上にapacheをインストール・起動し、外部からhttpでアクセスしてみて下さい。もちろんiptablesの指定などは必要です。

Leave a comment

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

Webサイトのこと、WordPressのこと、何でもお問い合わせ下さい