Cisco ASA5505によるPPPoE+NAT(PAT)
20131001

概要
 外部ネットワークに接続するマシンは複数台存在し、外部公開用サーバーも存在する。
 マニュアルNAT及びオートNATの複合構成とする

 ASA5505の利点
  柔軟なNATを構成出来る。
   マニュアルNAT→AutoNAT→マニュアルNAT(オプション設定時) の順で処理が可能
  Ciscoの通常ルーターよりPPPoE及びNAT処理が得意である。(スループットなどに影響)
  容易にセキュリティを確保可能
   デフォルトでTCPの代行受信などのセキュリティ機能が動作しています。
  VPNが得意であり、拠点間構成やAnyConnnectを使用出来る。
 ASA5505の欠点
  ライセンスがないと各種VPNの使用が制限される。
  同じくライセンスがないとインターフェース(SVI)が2個+DMZしか設定出来ない。
   デフォルトでは、「LAN側」「WAN側」「WAN側間のみ許可のLAN側」となり、
   回線が複数使用可能であっても制限されてしまいます。
   他にもホスト数制限などがいっぱい。
  ルーテッドポートが使えない。
   同価格帯のrouter(892J等)では、スイッチポート及びルーテッドポートが使用可
  Cisco 892Jほど見た目がかっこよくない。
環境
 IOS : 8.4(5) ※8.3以前ではNATの記述が違います
    9.1(2)
 WAN側インターフェース
  name : outside
  Vlan : 100
  port : Ethernet0/0

 LAN側インターフェース
  name : inside
  Vlan : 1(デフォルトなのでポートアサイン不要)
  port : Ethernet0/0以外の全て(no shut忘れない)
  ip range : 192.168.0.0/24
  SVI : 192.168.0.1

 公開サーバー
  IPアドレス : 192.168.0.3
  TCP : 80
  UDP : 49152〜57344

その他補足
 Zoneのセキュリティレベルにより、トラックは下記の動作となる。
  inside(高)→outside(低) 全て許可
  outside(低)→inside(高) ACLで許可されているもの以外は拒否

 NATの動作は一般的な流れとし、以下動作で実装
  マニュアルNAT(サーバー用の静的NAT)→オートNAT(その他PC用のPAT)

 完成Configであり、実際は以下の順番に入れないと入らない
  インターフェース名設定→VPDN設定→ACL作成→オブジェクト作成
  nameifとvpdn辺りが事前に必要なだけで多少は順不同

注意事項
 Ciscoの現行routerとは違い、ダイヤラーインターフェースの設定はありません。

 NTT西日本のフレッツ・光プレミアムの場合、以下の設定を行わないと正常に動作しません。
 関西地区の方はご注意ください。
  MTUを1438
  MSSを1398

 今回は関西地区の設定で行っております。
 「フレッツ・光プレミアム」以外の方は以下の設定を参照
  MTUを1454
  MSSを1414
具体的なコンフィグは以下の通り
interface Ethernet0/0
switchport access vlan 100
!
interface Vlan1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Vlan100
nameif outside
security-level 0
pppoe client vpdn group PPPOE-VPDN
ip address pppoe setroute
!
object service WEB
service tcp source eq www
object service PT-R
service udp source range 49152 57344
object network PAT-NET
subnet 192.168.0.0 255.255.255.0
object network SV-NAT
host 192.168.0.3
!
access-list SV-ACL extended permit tcp any any eq www
access-list SV-ACL extended permit udp any any range 49152 57344
!
mtu inside 1500
mtu outside 1438
!
nat (inside,outside) source static SV-NAT interface service WEB WEB
nat (inside,outside) source static SV-NAT interface service P-R P-R
!
object network PAT
nat (inside,outside) dynamic interface
!
access-group SV-ACL in interface outside
!
sysopt connection tcpmss 1398
!
vpdn group PPPOE-VPDN request dialout pppoe
vpdn group PPPOE-VPDN localname ユーザ名
vpdn group PPPOE-VPDN ppp authentication chap
vpdn username ユーザ名 password パスワード
#WAN側物理interface
#WAN側VLANの設定 LAN側ポートはVLAN1とする為、100に。

#LAN側論理interface
#インターフェース(Zone)名の指定 insideと定義
#このZoneに最大のセキュリティレベルを設定する(insideのデフォルト)
#このVLANに対するASA(SVI)のIPアドレス及びサブネットマスク

#WAN側論理interface
#インターフェース名(Zone)の指定 outsideと定義
#このZoneに最低のセキュリティレベルを設定する(outsideのデフォルト)
#PPPoEを使用する。vpdn設定と紐付いています。
#PPPoEで取得したIP情報を元にルーティングテーブルを作成します。

#オブジェクト設定
#TCPポートwww(80)のサービスの名前をWEBとする(NAT用)
#オブジェクト設定
#UDPポート49152-57344のサービスの名前をP-Rとする(NAT用)
#オブジェクト設定
#IP192.168.0.0/24ネットワークの名前をPAT-NETとする(NAT用)
#オブジェクト設定
#192.168.0.3をSV-NATとする(NAT用)

#ACL設定 ACLの記述方法を参照
#ポートを変換してもACLで許可しなければサービスに繋がりません。

#LAN側のMTU設定(デフォルト値)
#WAN側のMTU設定(「フレッツ・光プレミアム」以外の方は1454)

#マニュアルNAT設定 先ほど定義したサービスオブジェクトを、
#サーバー用のネットワークオブジェクトに設定

#Auto Nat設定
#PATの定義

#ACLをWAN側インターフェースのin方向に割り当て

#WAN側のMSS設定(「フレッツ・光プレミアム」以外の方は1414)

#VPDN(PPPoE)設定
#認証時のユーザー名指定
#PPP認証をCHAPに設定
#認証時のユーザー名指定及びパスワード指定

最後に
 ZONEがある為にinspection機能が要らないと考えがちですが、一応inspectルールを定義して下さい。
 デフォルトでは有効ですが、各自用途に合わせて設定(別途ページ作成予定)

以上