本記事について
本記事では、Cisco システムズ社のファイアウォール製品 Firepower について、アドレス変換技術である NAT の基礎知識と設定方法を記載します。なお、ここでは ASA OS を搭載した Firepower を対象としています。
対象環境
本記事の内容は、以下の機器にて動作確認した結果に基づいて作成されています。
- Firepower 1010
- ASA Version 9.20(3)13
Cisco 機器でも機種ごとに NAT の仕様は異なる
Cisco 機器の NAT についてインターネット上で情報を検索すると、「Cisco 機器」と一括りにして NAT の設定方法を説明しているページも見つかります。
しかし、Cisco 機器の中にもルータ、ファイアウォール、FWSM、Nexus 等、NAT を設定できる機種はいくつかあり、機種によって NAT の仕様や設定方法が異なります。
特に、ルータとファイアウォールはネットワーク構築において良く利用されますが、NAT の仕様はそれぞれ異なるため良くあるルータの NAT に関する知識に基づいてファイアウォールの NAT を設計した場合、不適切な設計をしてしまう場合あります。ルータとファイアウォールでは別々に NAT の仕様を理解する必要があります。
Firepower (ASA) における NAT に関する基礎知識
双方向 NAT とは
これは Cisco ルータの NAT とも共通の知識ですが、スタティック NAT については双方向の 性質を持ちます。双方向の性質とは、送信元と宛先のどちら側から通信を開始してもアドレス変換が適用されるという性質のことです。
Cisco のルータやファイアウォールにおいては NAT の設定は基本的に送信元 NAT として設定されます。ここでは変換される前のアドレスを「実 IP」、変換された後のアドレスを「NAT IP」と表現することにします。
以下画像のネットワーク構成を考えます。中間に位置する Firepower では左側の端末から発信されたパケットについて 送信元アドレスを 10.1.254.100 から 10.2.0.100 に変換するスタティック NAT が設定されています。この場合、右側の端末で受信したパケットでは送信元アドレスが 10.2.0.100 になっています。

同じ構成で、今度は右側の端末から左側の端末へ通信を開始する場合を考えます。右側の端末から見ると左側の端末のアドレスは 10.2.0.100 のため、右側の端末は NAT IP である 10.2.0.100 宛に通信を開始します。すると Firepower では設定されている送信元 NAT とは逆方向に宛先アドレスの変換を行い、宛先が 10.2.0.100 から 10.1.254.100 に変換されます。

このように双方向 NAT では送信元 NAT の NAT IP 宛に宛先側から通信が開始された場合でも(宛先) NAT が適用されます。
この双方向の性質から、Cisco のルータや Firepower (ASA) で宛先 NAT を実現したい場合は逆方向の送信元 NAT を設定することになります。
Twice NAT とは
Twice NAT とは、NAT 対象の通信について送信元アドレスと宛先アドレスの両方を変換するような NAT です。
以下画像のネットワーク構成を考えます。中央に位置する Firepower では、宛先が 10.1.0.100 で送信元が 10.1.254.100 の場合に、宛先を 10.2.254.100、送信元を 10.2.0.100 に変換するTwice NAT が設定されています。

Twice NAT により左側の端末から 10.1.0.100 宛に通信を行った場合、Firepower にて宛先・送信元の両方が変換され、右側の端末が受信したパケットでは宛先が 10.2.254.100、送信元が 10.2.0.100 になっています。
2 種類の NAT 設定
Firepower (ASA) における NAT 設定には以下の 2 種類があります。
- ネットワークオブジェクトNAT
- 別名「オートNAT」
- ネットワークオブジェクト設定内のパラメータとして設定される NAT
- 通信の送信元、宛先の両方について別々に適用チェックが行われる
- Twice NAT
- 別名「マニュアルNAT」
- グローバル階層で独立して設定されるNAT
- 送信元と宛先の組み合わせごとに別の NAT IP を設定できるなど、柔軟な設定ができる一方、複雑になるため管理が難しい
- 1つのパケットに対しては最初に条件に合致した1つの Twice NAT ルールのみが適用され、それ以降のルールは評価されない
NAT の適用順序
Firepower (ASA) における NAT には適用順序があります。NAT ルールは決まった順序で一つずつ適用・不適用が評価され、最初に条件に合致する NAT ルールが見つかった時点で NAT の結果が確定され、それより後の NAT ルールは評価されません。この仕様は ACL の仕様と似ています。
Firepower (ASA) の NAT はその設定種別に以下のようにセクション分けされ順序付けされます。
- セクション1: Twice NAT (after-auto オプション無し)
- セクション内の NAT ルールの順序はコンフィグでの表示順と一致する
- セクション2: ネットワークオブジェクトNAT
- セクション内の NAT ルールは次のルールに従い自動で順序付けされる
- ①スタティックNAT
- ①より小さいレンジを先に、②より小さなIPアドレスを先に、③オブジェクト名のアルファベット昇順
- ②ダイナミックNAT
- ①より小さいレンジを先に、②より小さなIPアドレスを先に、③オブジェクト名のアルファベット昇順
- ①スタティックNAT
- セクション内の NAT ルールは次のルールに従い自動で順序付けされる
- セクション3: Twice NAT (after-auto オプション有り)
- セクション内の NAT ルールの順序はコンフィグでの表示順と一致する
セクション1→セクション2→セクション3の順に評価されます。
ACL と NAT の適用順序
ACL と NAT の適用順序は以下の通りです。
- 宛先 NAT の適用
- 宛先 NAT が適用される場合、宛先アドレスについて NAT IP から実 IP への変換が行われます
- ACL の適用
- 宛先・送信元ともに実 IP を用いて ACL の評価が行われます
- 送信元 NAT の適用
- 送信元 NAT が適用される場合、送信元アドレスについて実 IP から NAT IP への変換が行われます
この適用順序から、ACL 設定で指定する宛先・送信元アドレスは共に実 IP にする必要があるといえます。
スタティック送信元 NAT の設定方法
スタティック送信元 NAT の設定方法について説明します。
ここでは例として以下のネットワーク構成を想定し、左側(inside)の端末から右側(outside)の端末への通信について Firepower でスタティック送信元 NAT を実装することを考えます。

- inside 側端末
- 実 IP: 10.1.254.100
- NAT IP: 10.2.0.100
またこのスタティック送信元 NAT 設定を行うことにより以下画像の逆方向の宛先 NAT も実装されることになります。

ネットワークオブジェクト NAT で設定する場合
ネットワークオブジェクト NAT でスタティック送信元 NAT を設定する場合、ネットワークオブジェクト内のパラメータとして NAT 設定を行います。
設定コマンドは以下です。
- object network <オブジェクト名>
- host <実 IP>
- nat (<入力nameif>,<出力nameif>) static <NAT IP> [service <tcp|udp> <実port> <NAT port>]
- <実 IP>: NAT 対象の実 IP アドレスを指定
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- <NAT IP>: NAT 対象の NAT IP を指定。アドレスを入力か、ネットワークオブジェクト名での指定が可能
- [service <tcp|udp> <実port> <NAT port>]: オプション。ポート変換を行う場合のみ指定
- <実port>: 実ポート番号
- <NAT port>: 変換後ポート番号
- サービスを指定した場合、サービスまで一致していることが NAT 適用の条件となる
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- <実 IP>: inside側端末の実 IP 10.2.254.100
- <入力nameif>: inside
- <出力nameif>: outside
- <NAT IP>: 10.2.0.100
この場合の設定コマンドは以下の通りです。
object network laptop_10.1.254.100
host 10.1.254.100
nat (inside,outside) static 10.2.0.100
なお、設定後のコンフィグ表示としては以下のように NAT 設定は分離されて表示されます。
object network laptop_10.1.254.100
host 10.1.254.100
object network laptop_10.1.254.100
nat (inside,outside) static 10.2.0.100
Twice NAT (マニュアルNAT) で設定する場合
Twice NAT (マニュアルNAT) でスタティック送信元 NAT を設定する場合、グローバル階層で以下のコマンドで NAT 設定を行います。
- nat (<入力nameif>,<出力nameif名>) [after-auto] [<line>] source static <実IPオブジェクト> <NATIPオブジェクト>
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- [after-auto]: オプション。NATセクション3に追加したい場合は指定する
- [<line>]: オプション。NATの挿入位置を数値で指定する。指定しない場合、一番下の位置に追加される
- <実IPオブジェクト>: NAT 対象の実 IP をネットワークオブジェクトで指定
- <NATIPオブジェクト>: NAT 対象のNAT IP をネットワークオブジェクトで指定
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- <入力nameif>: inside
- <出力nameif名>: outside
- [after-auto]: ここでは指定しないことにします
- [<line>]: ここでは既存の Twice NAT 設定が無い状態で設定追加すると想定します。この場合 line の考慮は不要ですが、例として一番上に挿入する想定で「1」を指定します
- <実IPオブジェクト>: inside側端末の実 IP 10.1.254.100 を設定したオブジェクト
- <NATIPオブジェクト>: 10.2.0.100 を設定したオブジェクト
まず、<実IPオブジェクト> と <NATIPオブジェクト> を以下のように設定します。
object network laptop_10.1.254.100
host 10.1.254.100
object network nat_10.2.0.100
host 10.2.0.100
次にグローバル階層で以下の Twice NAT 設定を行います。
nat (inside,outside) 1 source static laptop_10.1.254.100 nat_10.2.0.100
Twice NAT の設定方法 (送信元・宛先の同時変換)
送信元・宛先アドレスを同時に変換する Twice NAT の設定方法について説明します。
ここでは例として以下のネットワーク構成を想定し、左側(inside)の端末から右側(outside)の端末への通信について Firepower でスタティックの Twice NAT を実装することを考えます。

- inside 側端末
- 実 IP: 10.1.254.100
- NAT IP: 10.2.0.100
- outside 側端末
- 実 IP: 10.2.254.100
- NAT IP: 10.1.0.100
この Twice NAT の適用条件は以下になります。
- 宛先が 10.1.0.100 であること
- 送信元が 100.1.254.100 であること
またこのスタティックの Twice NAT 設定を行うことにより以下画像の逆方向の通信に対する Twice NAT も実装されることになります。

この逆方向の Twice NAT の適用条件は以下になります。
- 宛先が 10.2.0.100 であること
- 送信元が 100.2.254.100 であること
ネットワークオブジェクト NAT で設定する場合
ネットワークオブジェクト NAT で Twice NAT を実装する場合、inside 側端末・outside 側端末のアドレスの両方に対してネットワークオブジェクト NAT を設定します。
まず inside 側端末の実 IP 10.1.254.100 を NAT IP 10.2.0.100 に変換するためのネットワークオブジェクト NAT を以下の通り設定します。
object network laptop_10.1.254.100
host 10.1.254.100
nat (inside,outside) static 10.2.0.100
次に outside 側端末の実 IP 10.2.254.100 を NAT IP 10.1.0.100 に変換するためのネットワークオブジェクト NAT を以下の通り設定します。
object network laptop_10.2.254.100
host 10.2.254.100
nat (outside,inside) static 10.1.0.100
以上で設定は完了です。
Twice NAT (マニュアルNAT) で設定する場合
Twice NAT (マニュアルNAT) でスタティックの Twice NAT を設定する場合、グローバル階層で以下のコマンドで NAT 設定を行います。
- nat (<入力nameif>,<出力nameif名>) [after-auto] [<line>] source static <実IPオブジェクト> <NATIPオブジェクト> destination static <NATIPオブジェクト> <実IPオブジェクト> [service <NATサービスオブジェクト> <実サービスオブジェクト>]
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- [after-auto]: オプション。NATセクション3に追加したい場合は指定する
- [<line>]: オプション。NATの挿入位置を数値で指定する。指定しない場合、一番下の位置に追加される
- <実IPオブジェクト>: NAT 対象の<source/destination>の実 IP をネットワークオブジェクトで指定
- <NATIPオブジェクト>: NAT 対象の<source/destination>の NAT IP をネットワークオブジェクトで指定
- [service <NATサービスオブジェクト> <実サービスオブジェクト>]: オプション。宛先ポート変換を行う場合のみ指定
- <NATサービスオブジェクト>: NAT後のサービスをサービスオブジェクトで指定
- <実サービスオブジェクト>: NAT前のサービスをサービスオブジェクトで指定
Twice NAT にする場合 Twice NAT のコマンド構文で destination を指定しますが、destination を指定した場合、送信元アドレスが指定した実IP、宛先アドレスが指定したNAT IP [、宛先サービスが指定したNAT後サービス] の場合にのみ Twice NAT の対象となります。
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- <入力nameif>: inside
- <出力nameif名>: outside
- [after-auto]: ここでは指定しないことにします
- [<line>]: ここでは既存の Twice NAT 設定が無い状態で設定追加すると想定します。この場合 line の考慮は不要ですが、例として一番上に挿入する想定で「1」を指定します
- source
- <実IPオブジェクト>: inside側端末の実 IP 10.1.254.100 を設定したオブジェクト
- <NATIPオブジェクト>: inside側端末の NAT IP 10.2.0.100 を設定したオブジェクト
- destination
- <NATIPオブジェクト>: outside側端末のNAT IP 10.1.0.100 を設定したオブジェクト
- <実IPオブジェクト>: outside側端末の実 IP 10.2.254.100 を設定したオブジェクト
まず、<実IPオブジェクト> と <NATIPオブジェクト> を以下のように設定します。
object network laptop_10.1.254.100
host 10.1.254.100
object network laptop_10.2.254.100
host 10.2.254.100
object network nat_10.2.0.100
host 10.2.0.100
object network nat_10.1.0.100
host 10.1.0.100
次にグローバル階層で以下の Twice NAT 設定を行います。
nat (inside,outside) 1 source static laptop_10.1.254.100 nat_10.2.0.100 destination static nat_10.1.0.100 laptop_10.2.254.100
ダイナミック NAT・PAT による Twice NAT
送信元はダイナミック NAT またはダイナミック PAT を行い、宛先についてはスタティック NAT を行うことができます。このためには、上で説明した Twice NAT 設定の source 部分を以下で説明するダイナミック NAT・PAT の設定構文に変えて設定してください。
ダイナミック NAT の設定方法
ダイナミック NAT の設定方法について説明します。
ここでは例として以下のネットワーク構成を想定し、左側(inside)の端末セグメントから右側(outside)の端末への通信について Firepower でダイナミック NAT を実装することを考えます。

- inside 側端末セグメント
- 実 IP: 10.1.254.0/24
- NAT IP: 10.2.0.100
ネットワークオブジェクト NAT で設定する場合
ネットワークオブジェクト NAT でダイナミック NAT を設定する場合、ネットワークオブジェクト内のパラメータとして NAT 設定を行います。
設定コマンドは以下です。
- object network <オブジェクト名>
- subnet <実ネットワークアドレス> <サブネットマスク>
- nat (<入力nameif>,<出力nameif>) dynamic <NAT POOL>
- subnet <実ネットワークアドレス> <サブネットマスク> : NAT 対象の実 IP アドレスネットワーク
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- <NAT POOL>: NAT 対象の NAT IP を指定。アドレスを入力か、ネットワークオブジェクト名での指定が可能
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- subnet <実ネットワークアドレス> <サブネットマスク> : inside側端末のセグメント 10.1.254.0/24
- <入力nameif>: inside
- <出力nameif>: outside
- <NAT POOL>: NAT IP 10.2.0.100 を設定したネットワークオブジェクト nat_10.2.0.100
この場合の設定コマンドは以下の通りです。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
nat (inside,outside) dynamic nat_10.2.0.100
なお、設定後のコンフィグ表示としては以下のように NAT 設定は分離されて表示されます。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
object network net_10.1.254.0_24
nat (inside,outside) dynamic nat_10.2.0.100
Twice NAT (マニュアルNAT) で設定する場合
Twice NAT (マニュアルNAT) でダイナミック NAT を設定する場合、グローバル階層で以下のコマンドで NAT 設定を行います。
- nat (<入力nameif>,<出力nameif名>) [after-auto] [<line>] source dynamic <実IPオブジェクト> <NAT POOL>
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- [after-auto]: オプション。NATセクション3に追加したい場合は指定する
- [<line>]: オプション。NATの挿入位置を数値で指定する。指定しない場合、一番下の位置に追加される
- <実IPオブジェクト>: NAT 対象の実 IP をネットワークオブジェクトで指定
- <NAT POOL>: NAT IP POOL をネットワークオブジェクトで指定
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- <入力nameif>: inside
- <出力nameif名>: outside
- [after-auto]: ここでは指定しないことにします
- [<line>]: ここでは既存の Twice NAT 設定が無い状態で設定追加すると想定します。この場合 line の考慮は不要ですが、例として一番上に挿入する想定で「1」を指定します
- <実IPオブジェクト>: inside側端末のセグメント 10.1.254.0/24 を設定したオブジェクト
- <NATIPオブジェクト>: 10.2.0.100 を設定したオブジェクト
まず、<実IPオブジェクト> と <NAT POOL> を以下のように設定します。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
object network nat_10.2.0.100
host 10.2.0.100
次にグローバル階層で以下の Twice NAT 設定を行います。
nat (inside,outside) source dynamic net_10.1.254.0_24 nat_10.2.0.100
ダイナミック PAT の設定方法
ポート変換も行うダイナミック PAT の設定方法について説明します。
ここでは例として以下のネットワーク構成を想定し、左側(inside)の端末セグメントから右側(outside)の端末への通信について Firepower でダイナミック PAT を実装することを考えます。

- inside 側端末セグメント
- 実 IP: 10.1.254.0/24
- NAT IP: 10.2.0.100
ネットワークオブジェクト NAT で設定する場合
ネットワークオブジェクト NAT でダイナミック PAT を設定する場合、ネットワークオブジェクト内のパラメータとして NAT 設定を行います。
設定コマンドは以下です。
- object network <オブジェクト名>
- subnet <実ネットワークアドレス> <サブネットマスク>
- nat (<入力nameif>,<出力nameif>) dynamic pat-pool <NAT POOL>
- subnet <実ネットワークアドレス> <サブネットマスク> : NAT 対象の実 IP アドレスネットワーク
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- pat-pool: このキーワードを指定することでダイナミック PAT になる
- <NAT POOL>: NAT 対象の NAT IP を指定。アドレスを入力か、ネットワークオブジェクト名での指定が可能
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- subnet <実ネットワークアドレス> <サブネットマスク> : inside側端末のセグメント 10.1.254.0/24
- <入力nameif>: inside
- <出力nameif>: outside
- <NAT POOL>: NAT IP 10.2.0.100 を設定したネットワークオブジェクト nat_10.2.0.100
この場合の設定コマンドは以下の通りです。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
nat (inside,outside) dynamic pat-pool nat_10.2.0.100
なお、設定後のコンフィグ表示としては以下のように NAT 設定は分離されて表示されます。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
object network net_10.1.254.0_24
nat (inside,outside) dynamic pat-pool nat_10.2.0.100
Twice NAT (マニュアルNAT) で設定する場合
Twice NAT (マニュアルNAT) でダイナミック PAT を設定する場合、グローバル階層で以下のコマンドで NAT 設定を行います。
- nat (<入力nameif>,<出力nameif名>) [after-auto] [<line>] source dynamic <実IPオブジェクト> pat-pool <NAT POOL>
- <入力nameif>: NAT 対象通信が入力されるインターフェースを nameif の名前で指定
- <出力nameif名>: NAT 対象通信が出力されるインターフェースを nameif の名前で指定
- [after-auto]: オプション。NATセクション3に追加したい場合は指定する
- [<line>]: オプション。NATの挿入位置を数値で指定する。指定しない場合、一番下の位置に追加される
- <実IPオブジェクト>: NAT 対象の実 IP をネットワークオブジェクトで指定
- pat-pool: このキーワードを指定することでダイナミック PAT になる
- <NAT POOL>: NAT IP POOL をネットワークオブジェクトで指定
本記事のネットワーク構成例の場合、各パラメータは以下になります。
- <入力nameif>: inside
- <出力nameif名>: outside
- [after-auto]: ここでは指定しないことにします
- [<line>]: ここでは既存の Twice NAT 設定が無い状態で設定追加すると想定します。この場合 line の考慮は不要ですが、例として一番上に挿入する想定で「1」を指定します
- <実IPオブジェクト>: inside側端末のセグメント 10.1.254.0/24 を設定したオブジェクト
- <NAT POOL>: 10.2.0.100 を設定したオブジェクト
まず、<実IPオブジェクト> と <NAT POOL> を以下のように設定します。
object network net_10.1.254.0_24
subnet 10.1.254.0 255.255.255.0
object network nat_10.2.0.100
host 10.2.0.100
次にグローバル階層で以下の Twice NAT 設定を行います。
nat (inside,outside) source dynamic net_10.1.254.0_24 pat-pool nat_10.2.0.100
Twice NAT (マニュアルNAT) の設定順序に注意
上の方の NAT の適用順序のところで説明したように、Firepower (ASA) の NAT 設定には適用順序があり、一番最初に条件に合致した NAT ルールによって結果が確定します。
Twice NAT (マニュアルNAT) については設定順序を間違うと、適用されることのない死に設定となり想定通り NAT されないということが起こり得ます。
Twice NAT の設定順序は基本的には以下の通りにすることを推奨します。
- destination 指定のある static Twice NAT
- ①service 指定のある Twice NAT
- ②service 指定のない Twice NAT
- destination 指定のある dynamic Twice NAT
- ①service 指定のある Twice NAT、source の実IPのレンジが小さい順
- ②service 指定のない Twice NAT、source の実IPのレンジが小さい順
- destination 指定の無い static Twice NAT
- destination 指定の無い dynamic Twice NAT
- source の実IPのレンジが小さい順
また、スタティック NAT には双方向性があるため、反対方向の NAT が意図せずに適用されるということも起こり得るため注意してください。
- nat (inside,outside) source static A B
- nat (outside,inside) source static C D destination static B A
という2つの Twice NAT 設定があった場合、①の source 部分のアドレスと②の destination 部分のアドレスが重複しているため、②に該当する通信は①にも該当します。①→②の順で Twice NAT が設定されている場合、②は適用されることのない死に設定になります。
参考資料



Firepower 関連記事一覧
- 基礎知識
- スマートライセンス
- NAT
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!

【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント