No Image

さくらの専用サーバに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を設定する
[bash]
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
[/bash]
“RH-Firewall-1-INPUT”の部分はご自身のiptables環境へ合わせて下さい。
このまま再起動すると設定が消えるので、現在の設定をファイルに書き出す。
[bash]
# iptables-save > /etc/sysconfig/iptables
[/bash]
3.Xenホストのeth0に新たに取得したIPアドレスを割り当てる。
コマンドラインで設定
[bash]
ifconfig eth0:0 inet xxx.xxx.xxx.xx netmask 255.255.255.255
[/bash]
但し、再起動すると設定が消えるので、設定ファイルを作成する
ファイル名:/etc/sysconfig/network-scripts/ifcfg-eth0:0
[bash]
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.255
[/bash]
4.これで設定終了。
試しに、仮想サーバ上からYahooへpingを打つなり、外部との通信を行ってみて下さい。
また、仮想サーバ上にapacheをインストール・起動し、外部からhttpでアクセスしてみて下さい。もちろんiptablesの指定などは必要です。

Share this post