<前頁
次頁>
<<
>>
↓
目次 (番号順
(詳細)・
回線別
(詳細)・
機能別
(詳細))
CentreCOM AR740 設定例集 2.6 #115
PPPoEインターネット接続環境におけるL2TP+IPsec LAN間接続(IP/AppleTalk。片側アドレス不定)
PPPoEでインターネットに接続している2つの拠点をL2TPで結ぶVPN構築例です。この例では、グローバルアドレス8個を固定的に割り当てられているサイトと、グローバルアドレス1個を動的に割り当てられるサイトの間をL2TPのトンネルで接続し、IPとAppleTalkを通します。さらに、L2TPトンネルをトランスポートモードIPsec(ESP)で暗号化し、インターネット上を通るデータの安全性を確保します。
Note
- IPsecを使用するには、通信データの暗号化と復号化を行うすべてのルーターに別売の暗号ボードまたは暗号・圧縮ボードを装着する必要があります。
各拠点は、ISPから次の情報を提供されているものとします。
表 1:ISPから提供された情報
|
ルーターA |
ルーターB |
PPPユーザー名 |
user@ispA |
user@ispB |
PPPパスワード |
isppasswdA |
isppasswdB |
PPPoEサービス名 |
指定なし |
指定なし |
使用できるIPアドレス |
4.4.4.0/29 |
グローバルアドレス1個を接続時に割り当て |
接続形態 |
LAN型(アドレス8個固定) |
端末型(アドレス1個不定) |
ルーターA側(LAN型アドレス8個固定)では、LAN側インターフェースをマルチホーミングして、グローバルサブネットにサーバーを、プライベートサブネットにクライアントを配置します。ルーターBは、ISPとの接続時にグローバルアドレス1個を動的に割り当てられる通常の端末型設定です。
以下、ルーターA、Bの基本設定についてまとめます。
表 2:ルーターA、Bの基本設定
|
ルーターA |
ルーターB |
WAN側物理インターフェース |
eth1 |
eth1 |
WAN側IPアドレス(1) |
Unnumbered(ppp0-0) |
動的割り当て(ppp0) |
WAN側IPアドレス(2) |
4.4.4.1/32(ppp0-1) |
− |
LAN側IPアドレス |
192.168.10.1/24(eth0-1) |
192.168.20.1/24(eth0) |
DMZ側IPアドレス |
4.4.4.2/29(eth0-0) |
− |

IPネットワーク(インターネット)上に構築するL2TP VPNの設定は次のとおりです。この例では片側のアドレスが不定なため、常にルーターBからルーターAに発呼する形になります。L2TPトンネルは、ルーターAのグローバルアドレス(4.4.4.1)とルーターBのグローバルアドレス(不定)の間に張られることになります。トンネル上に張った仮想PPPコネクション(ppp1−ppp1)はプライベートLAN間を接続するためのもので、IPとAppleTalkのパケットを通します。
ルーターAでは、WAN側(ppp0)インターフェースをマルチホーミングし、そのうちの一方(ppp0-1)にグローバルアドレスの1つを設定していますが、これはISP接続時に割り当てられるIPアドレスがネットワークアドレス(ホスト部が0のアドレス。始点アドレスとしては使用できない)であるためです。詳細は章末の「メモ」をご覧ください。
表 3:L2TP・IP・AppleTalk設定
|
ルーターA |
ルーターB |
L2TPコール名 |
remote |
remote |
L2TP終端アドレス |
4.4.4.1 |
不定(ISPから動的割り当て) |
L2TP発着優先 |
着呼優先(着呼専用) |
発呼優先 |
L2TPサーバーモード |
LAC/LNS兼用(BOTH) |
LAC/LNS兼用(BOTH) |
L2TPサーバーパスワード |
l2tpA |
− |
WAN側(ppp1)IPアドレス |
Unnumbered |
Unnumbered |
LAN側(eth0)AppleTalkネットワーク番号 |
10 |
20 |
LAN側デフォルトゾーン名 |
NetA |
NetB |
さらに、L2TPトンネルをIPsecで暗号化します。そのときの設定は次のとおりです。トランスポートモードのESPを使って、ルーター間のL2TPパケット(始点・終点UDPポート1701)だけを暗号化します。
表 4:IKEフェーズ1(ISAKMP SAのネゴシエーション)
ルーター間の認証方式 |
事前共有鍵(pre-shared key) |
IKE交換モード |
Aggressiveモード |
事前共有鍵 |
secret(文字列) |
ルーターAのID |
IPアドレス:4.4.4.1(デフォルト) |
ルーターBのID |
名前:routerb |
Oakleyグループ |
1(デフォルト) |
ISAKMPメッセージの暗号化方式 |
DES(デフォルト) |
ISAKMPメッセージの認証方式 |
SHA1(デフォルト) |
ISAKMP SAの有効期限(時間) |
86400秒(24時間)(デフォルト) |
ISAKMP SAの有効期限(Kbyte数) |
なし(デフォルト) |
起動時のISAKMPネゴシエーション |
行わない |
表 5:IKEフェーズ2(IPsec SAのネゴシエーション)
SAモード |
トランスポートモード |
セキュリティープロトコル |
ESP(暗号+認証) |
暗号化方式 |
DES |
認証方式 |
SHA1 |
IPsec SAの有効期限(時間) |
28800秒(8時間)(デフォルト) |
IPsec SAの有効期限(Kbyte数) |
なし(デフォルト) |
IPsecの適用対象IPアドレス |
4.4.4.1:1701/udp ←→ 不定:1701/udp |
インターネットとの平文通信 |
行う |

- IPsecはセキュリティーモードでないと動作しないので、同モードで管理設定を行うことのできるSecurity Officerレベルのユーザーをあらかじめ登録しておきます。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓
Note
- Security Officerのパスワードは厳重に管理してください。
- WAN側Ethernetインターフェース(eth1)上にPPPインターフェースを作成します。「OVER=eth1-XXXX」の「XXXX」の部分には、ISPから通知されたPPPoEの「サービス名」を記述します。ISPから指定がない場合は、どのサービス名タグでも受け入れられるよう、「ANY」を設定します。
CREATE PPP=0 OVER=eth1-ANY ↓
- ISPから通知されたPPPユーザー名とパスワードを指定し、接続時にIPアドレス割り当ての要求を行うように設定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。
SET PPP=0 OVER=eth1-ANY BAP=OFF IPREQUEST=ON USER=user@ispA PASSWORD=isppasswdA LQR=OFF ECHO=ON ↓
Note
- PPPoEのLAN型接続におけるWAN側(PPP)インターフェースは、厳密にはUnnumberedではありません。L2TPを使用する本例ではこのことが設定に影響を与えてきます。詳しくは章末の「メモ」をご覧ください。
Note
- ファームウェアバージョン2.6以降、「IDLE=OFF」(デフォルト)に設定されたPPPoEインターフェースでは、PPPoEセッションキープアライブ機能が働くため、リンクダウン時に自動的に再接続を試みます(リンクダウンを検出するため「ECHO=ON」の設定は必要)。そのため、以前のバージョンで使用していた自動再接続のためのインターフェーストリガーは必要なくなりました。ただし、トリガーの設定があっても問題はありません。以前の設定もそのまま使用できます。
Note
- バージョン2.6よりも前のファームウェアでPPPoEの自動再接続を行うにはインターフェーストリガーの設定が必要です。設定方法については、ご使用中のバージョンに対応したマニュアルをご覧ください。
- IPモジュールを有効にします。
- IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。
- LAN側(eth0-0)インターフェースにISPから割り当てられたグローバルアドレスのうちの1つ(4.4.4.2)を設定し、擬似的なDMZとして使用します。アドレスを8個や16個といった単位で割り当てられる場合は、ネットマスクが変則的になるので注意してください。
ADD IP INT=eth0-0 IP=4.4.4.2 MASK=255.255.255.248 ↓
- LAN側(eth0-1)インターフェースにプライベートIPアドレスを割り当て、クライアント用のサブネットとします。
ADD IP INT=eth0-1 IP=192.168.10.1 MASK=255.255.255.0 ↓
- WAN側(ppp0)インターフェースをマルチホーミングし、ppp0-0をUnnumberedに設定します。
ADD IP INT=ppp0-0 IP=0.0.0.0 ↓
- WAN側(ppp0-1)インターフェースにISPから割り当てられたグローバルアドレスの先頭アドレス(4.4.4.1)を32ビットマスクで割り当てます。デフォルトルートをこのインターフェースに向けることで、L2TPパケットの始点アドレスとしてこのアドレスが使われるようにします。
ADD IP INT=ppp0-1 IP=4.4.4.1 MASK=255.255.255.255 ↓
- デフォルトルートをppp0-1に向けて設定します。これは、ルーターAが送信するL2TPパケットの始点アドレスとして、ppp0-1のアドレスが使われるようにするためです(通常、本製品自身がパケットを送信するときは、送出インターフェースのアドレスを始点アドレスとして使います)。
ADD IP ROUTE=0.0.0.0 INT=ppp0-1 NEXTHOP=0.0.0.0 ↓
- L2TPモジュールを有効にします。
- L2TPサーバーの動作モードをBOTHにします。
ENABLE L2TP SERVER=BOTH ↓
- 他のL2TPサーバーから接続要求を受けた際の認証用パスワードを設定します。
SET L2TP PASSWORD=l2tpA ↓
- L2TPコール「remote」を作成し、L2TPの接続先情報を登録します。IPには相手ルーターのIPアドレスを指定しますが、この例ではルーターA側から接続しにいくことがないため「0.0.0.0」を指定しています。TYPEは呼の種類を示すもので、LAN間接続の場合はVIRTUALを指定します。REMOTEには、このL2TPコールに応じて相手側が起動するL2TPコール名を指定します。PRECEDENCEはL2TPの通信が同時に開始された場合に発呼・着呼のどちらを優先するかを指定します。
ADD L2TP CALL=remote IP=0.0.0.0 TYPE=VIRTUAL REMOTE=remote PRECEDENCE=IN ↓
- L2TPコールを仮想的な物理回線と見なし、その上にPPPインターフェースを作成します。OVERパラメーターにL2TPコールを指定するときは、コール名の前に「TNL-」を付けます。また、ここでは「IDLE=ON」を指定して、必要なときだけ接続するよう設定します。
CREATE PPP=1 OVER=TNL-remote IDLE=ON BAP=OFF LQR=OFF ↓
- L2TP仮想回線上のPPPインターフェース「1」をUnnumberedに設定します。このインターフェースは、両拠点のプライベートLAN同士を接続する仮想インターフェースです。
ADD IP INT=ppp1 IP=0.0.0.0 ↓
- 経路情報を設定します。ルーターBのLAN側(192.168.20.0/24)宛のパケットは、L2TP上のPPPインターフェース「1」を通じて送り出します。
ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
- AppleTalkモジュールを有効にします。
- LAN側(eth0)インターフェースにAppleTalkポートを作成します。「SEED=10」はシードルーターとして機能させるためのパラメーターで、LAN側のAppleTalkネットワーク番号を10としています。
ADD APPLETALK PORT INT=eth0 SEED=10 ↓
- LAN側ネットワークのデフォルトゾーン名を設定します。ここではNetAという名前にしています。
ADD APPLETALK ZONE=NetA PORT=1 DEFAULT ↓
- L2TP仮想回線上のPPPインターフェース(ppp1)にAppleTalkポートを作成します。「DEMAND=ON」はルーティング情報(RTMP)の交換を行わないようにするための指定です。
ADD APPLETALK PORT INT=ppp1 DEMAND=ON ↓
- スタティックルートを設定します。この例ではRTMPを使っていないため必須です。
ADD APPLETALK ROUTE=20 PORT=2 HOPS=2 ↓
- ファイアウォール機能を有効にします。
- ファイアウォールの動作を規定するファイアウォールポリシー「net」を作成します。
CREATE FIREWALL POLICY=net ↓
- ICMPパケットはPing(Echo/Echo Reply)と到達不可能(Unreachable)のみ双方向で許可します。
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
Note
- デフォルト設定では、ICMPはファイアウォールを通過できません。
- ルーターのidentプロキシー機能を無効にし、外部のメール(SMTP)サーバーなどからのident要求に対して、ただちにTCP RSTを返すよう設定します。
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
- ファイアウォールポリシーの適用対象となるインターフェースを指定します。
- LAN側(eth0-1)インターフェースをPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=eth0-1 TYPE=PRIVATE ↓
- DMZ側(eth0-0)インターフェースをPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=eth0-0 TYPE=PRIVATE ↓
- WAN側(ppp0-0)インターフェースをPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net INT=ppp0-0 TYPE=PUBLIC ↓
- WAN側(ppp0-1)インターフェースをPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net INT=ppp0-1 TYPE=PUBLIC ↓
- L2TP上のPPPインターフェース(ppp1)をPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=ppp1 TYPE=PRIVATE ↓
- LAN側(eth0-1)ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスにはppp0-1に割り当てた4.4.4.1を共用します。
ADD FIREWALL POLICY=net NAT=ENHANCED INT=eth0-1 GBLINT=ppp0-1 GBLIP=4.4.4.1 ↓
- 外部からのパケットをすべて拒否するファイアウォールの基本ルールに対し、DMZのサーバーへパケットを通すための設定を行います。
- Webサーバー(4.4.4.3のTCP80番)へのパケットは通過させます。
ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.3 PORT=80 ↓
- SMTPサーバー(4.4.4.4のTCP25番)へのパケットは通過させます。
ADD FIREWALL POLICY=net RULE=2 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.4 PORT=25 ↓
- DNSサーバー(4.4.4.4のTCP、UDP53番)へのパケットは通過させます。
ADD FIREWALL POLICY=net RULE=3 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.4 PORT=53 ↓
ADD FIREWALL POLICY=net RULE=4 AC=ALLOW INT=ppp0-1 PROTO=UDP IP=4.4.4.4 PORT=53 ↓
- 相手ルーターから受信したIKEパケット(UDP500番)がファイアウォールを通過できるように設定します。
ADD FIREWALL POLICY=net RULE=5 AC=ALLOW INT=ppp0-1 PROT=UDP GBLPO=500 GBLIP=4.4.4.1 PO=500 IP=4.4.4.1 ↓
- ローカルLANからリモートLANへのパケットにはNATをかけないように設定します。
ADD FIREWALL POLICY=net RULE=6 AC=NONAT INT=eth0-1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓
SET FIREWALL POLICY=net RULE=6 REMOTEIP=192.168.20.1-192.168.20.254 ↓
- 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットがUDPで終点IPアドレスが4.4.4.1、終点ポートが1701番(L2TPパケット)ならばNATの対象外とする」の意味になります。
ADD FIREWALL POLICY=net RULE=7 AC=NONAT INT=ppp0-1 PROT=UDP PORT=1701 IP=4.4.4.1 ENCAP=IPSEC ↓
- ここからがIPsecの設定になります。最初にISAKMP用の事前共有鍵(pre-shared key)を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret」という文字列で指定します(ルーターBと同じに設定)。
CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓
Note
- CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド(内蔵スクリーンエディター)等で設定スクリプトファイル(.CFG)にこのコマンドを記述しても無効になりますのでご注意ください。
- ルーターBとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵(鍵番号「1」)を、PEERには対向ルーターのIPアドレスを指定しますが、ここでは相手のIPアドレスが不定なのでANYを指定し、REMOTEIDで相手のIDを指定します。また、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。
CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE MODE=AGGRESSIVE REMOTEID="routerb" ↓
- IPsec通信の仕様を定義するSAスペック「1」を作成します。鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。この例ではすでにL2TPのトンネルが存在するため、デフォルトのトンネルモードは使用せずに、トランスポートモードを使用します。相手ルーターのUDP1701番ポート宛に送受信されるL2TPパケットだけを暗号化する形になります。
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA MODE=TRANSPORT ↓
- SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓
- ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット(ISAKMP)に設定します。
CREATE IPSEC POLICY="isa" INT=ppp0-1 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓
Note
- ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。
- L2TPパケットを暗号化するIPsecポリシー「L2」をPPPインターフェース「0-1」に対して作成します。鍵管理方式には「ISAKMP」を、PEERにはルーターBのIPアドレスが不定なためISAKMPの認証をパスした相手という意味の「DYNAMIC」を、BUNDLEには前の手順で作成したSAバンドルスペック「1」を指定します。また、LAD、LPORT、RNAME、LPORTで対象となるパケットの条件を指定します。RNAMEは相手のアドレスが不定なためRADの代わりに名前を指定するものです。
CREATE IPSEC POLICY="L2" INT=ppp0-1 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓
SET IPSEC POLICY="L2" LAD=4.4.4.1 LPORT=1701 RNAME="routerb" RPORT=1701 TRANSPORT=UDP ↓
- インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0-1」に対して作成します。
CREATE IPSEC POLICY="inet" INT=ppp0-1 ACTION=PERMIT ↓
Note
- インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。
- IPsecモジュールを有効にします。
- ISAKMPモジュールを有効にします。
- Security Officerレベルのユーザーでログインしなおします。
- 動作モードをセキュリティーモードに切り替えます。
ENABLE SYSTEM SECURITY_MODE ↓
Note
- セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO(Remote Security Officer)の設定を行っておいてください(本章末尾のメモを参照)。
- 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。
CREATE CONFIG=router.cfg ↓
SET CONFIG=router.cfg ↓
- IPsecはセキュリティーモードでないと動作しないので、同モードで管理設定を行うことのできるSecurity Officerレベルのユーザーをあらかじめ登録しておきます。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓
Note
- Security Officerのパスワードは厳重に管理してください。
- WAN側Ethernetインターフェース(eth1)上にPPPインターフェースを作成します。「OVER=eth1-XXXX」の「XXXX」の部分には、ISPから通知されたPPPoEの「サービス名」を記述します。ISPから指定がない場合は、どのサービス名タグでも受け入れられるよう、「ANY」を設定します。
CREATE PPP=0 OVER=eth1-ANY ↓
- ISPから通知されたPPPユーザー名とパスワードを指定し、接続時にIPアドレス割り当ての要求を行うように設定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。
SET PPP=0 OVER=eth1-ANY IPREQUEST=ON USER=user@ispB PASSWORD=isppasswdB LQR=OFF BAP=OFF ECHO=ON ↓
Note
- ファームウェアバージョン2.6以降、「IDLE=OFF」(デフォルト)に設定されたPPPoEインターフェースでは、PPPoEセッションキープアライブ機能が働くため、リンクダウン時に自動的に再接続を試みます(リンクダウンを検出するため「ECHO=ON」の設定は必要)。そのため、以前のバージョンで使用していた自動再接続のためのインターフェーストリガーは必要なくなりました。ただし、トリガーの設定があっても問題はありません。以前の設定もそのまま使用できます。
Note
- バージョン2.6よりも前のファームウェアでPPPoEの自動再接続を行うにはインターフェーストリガーの設定が必要です。設定方法については、ご使用中のバージョンに対応したマニュアルをご覧ください。
- IPモジュールを有効にします。
- IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。
- LAN側(eth0)インターフェースにIPアドレスを設定します。
ADD IP INT=eth0 IP=192.168.20.1 MASK=255.255.255.0 ↓
- WAN側(ppp0)インターフェースにIPアドレス「0.0.0.0」を設定します。ISPとの接続が確立するまで、IPアドレスは確定しません。
ADD IP INT=ppp0 IP=0.0.0.0 ↓
- デフォルトルートを設定します。
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓
- L2TPモジュールを有効にします。
- L2TPサーバーの動作モードをBOTHにします。
ENABLE L2TP SERVER=BOTH ↓
- L2TPコール「remote」を作成し、L2TPの接続先情報を登録します。IPには相手ルーターのIPアドレスを指定します。TYPEは呼の種類を示すもので、LAN間接続の場合はVIRTUALを指定します。REMOTEには、このL2TPコールに応じて相手側が起動するL2TPコール名を指定します。PRECEDENCEはL2TPの通信が同時に開始された場合に発呼・着呼のどちらを優先するかを指定します。PASSWORDには、接続先で認証を受けるためのパスワードを指定します。
ADD L2TP CALL=remote IP=4.4.4.1 TYPE=VIRTUAL REMOTE=remote PRECEDENCE=OUT PASSWORD=l2tpA ↓
- L2TPコールを仮想的な物理回線と見なし、その上にPPPインターフェースを作成します。OVERパラメーターにL2TPコールを指定するときは、コール名の前に「TNL-」を付けます。また、ここでは「IDLE=ON」を指定して、必要なときだけ接続するよう設定します。
CREATE PPP=1 OVER=TNL-remote IDLE=ON BAP=OFF LQR=OFF ↓
- L2TP仮想回線上のPPPインターフェース「1」をUnnumberedに設定します。このインターフェースは、両拠点のプライベートLAN同士を接続する仮想インターフェースです。
ADD IP INT=ppp1 IP=0.0.0.0 ↓
- 経路情報を設定します。ルーターAのLAN側(192.168.10.0/24)宛のパケットは、L2TP上のPPPインターフェース「1」を通じて送り出します。
ADD IP ROUTE=192.168.10.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
- AppleTalkモジュールを有効にします。
- LAN側(eth0)インターフェースにAppleTalkポートを作成します。「SEED=20」はシードルーターとして機能させるためのパラメーターで、LAN側のAppleTalkネットワーク番号を20としています。
ADD APPLETALK PORT INT=eth0 SEED=20 ↓
- LAN側ネットワークのデフォルトゾーン名を設定します。ここではNetBという名前にしています。
ADD APPLETALK ZONE=NetB PORT=1 DEFAULT ↓
- L2TP仮想回線上のPPPインターフェース(ppp1)にAppleTalkポートを作成します。「DEMAND=ON」はルーティング情報(RTMP)の交換を行わないようにするための指定です。
ADD APPLETALK PORT INT=ppp1 DEMAND=ON ↓
- スタティックルートを設定します。この例ではRTMPを使っていないため必須です。
ADD APPLETALK ROUTE=10 PORT=2 HOPS=2 ↓
- ファイアウォール機能を有効にします。
- ファイアウォールの動作を規定するファイアウォールポリシー「net」を作成します。
CREATE FIREWALL POLICY=net ↓
- ICMPパケットはPing(Echo/Echo Reply)と到達不可能(Unreachable)のみ双方向で許可します。
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
Note
- デフォルト設定では、ICMPはファイアウォールを通過できません。
- ルーターのidentプロキシー機能を無効にし、外部のメール(SMTP)サーバーなどからのident要求に対して、ただちにTCP RSTを返すよう設定します。
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
- ファイアウォールポリシーの適用対象となるインターフェースを指定します。
- LAN側インターフェース(eth0)をPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=eth0 TYPE=PRIVATE ↓
- WAN側インターフェース(ppp0)をPUBLIC(外部)に設定します。
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
- L2TP上のPPPインターフェース(ppp1)をPRIVATE(内部)に設定します。
ADD FIREWALL POLICY=net INT=ppp1 TYPE=PRIVATE ↓
- LAN側ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスには、ppp0のIPアドレスを使用します。
ADD FIREWALL POLICY=net NAT=ENHANCED INT=eth0 GBLINT=ppp0 ↓
- ローカルLANからリモートLANへのパケットにはNATをかけないように設定します。
ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=eth0 PROT=ALL IP=192.168.20.1-192.168.20.254 ↓
SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓
- 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットがUDPで終点ポートが1701番(L2TPパケット)ならばNATの対象外とする」の意味になります。
ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=UDP PORT=1701 ENCAP=IPSEC ↓
- ここからがIPsecの設定になります。最初にISAKMP用の事前共有鍵(pre-shared key)を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret」という文字列で指定します(ルーターAと同じに設定)。
CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓
Note
- CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド(内蔵スクリーンエディター)等で設定スクリプトファイル(.CFG)にこのコマンドを記述しても無効になりますのでご注意ください。
- ルーターAとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵(鍵番号「1」)を、PEERには対向ルーターのIPアドレスを指定します。また、自分のIPアドレスが不定なので、LOCALIDで自分のIDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう指定します。
CREATE ISAKMP POLICY="i" PEER=4.4.4.1 KEY=1 SENDN=TRUE MODE=AGGRESSIVE LOCALID="routerb" ↓
- IPsec通信の仕様を定義するSAスペック「1」を作成します。鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。この例ではすでにL2TPのトンネルが存在するため、デフォルトのトンネルモードは使用せずに、トランスポートモードを使用します。相手ルーターのUDP1701番ポート宛に送受信されるL2TPパケットだけを暗号化する形になります。
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA MODE=TRANSPORT ↓
- SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓
- ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット(ISAKMP)に設定します。
CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓
Note
- ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。
- L2TPパケットを暗号化するIPsecポリシー「L2」をPPPインターフェース「0」に対して作成します。鍵管理方式には「ISAKMP」を、PEERにはルーターAのIPアドレスを、BUNDLEには前の手順で作成したSAバンドルスペック「1」を指定します。また、LNAME、LPORT、RAD、LPORTで対象となるパケットの条件を指定します。ここでは、自分のIPアドレスが不定なので、LNAMEパラメーターで名前を指定しています。
CREATE IPSEC POLICY="L2" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=4.4.4.1 ↓
SET IPSEC POLICY="L2" LNAME="routerb" LPORT=1701 RAD=4.4.4.1 RPORT=1701 TRANSPORT=UDP ↓
- インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。
CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓
Note
- インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。
- IPsecモジュールを有効にします。
- ISAKMPモジュールを有効にします。
- Security Officerレベルのユーザーでログインしなおします。
- 動作モードをセキュリティーモードに切り替えます。
ENABLE SYSTEM SECURITY_MODE ↓
Note
- セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO(Remote Security Officer)の設定を行っておいてください(本章末尾のメモを参照)。
- 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。
CREATE CONFIG=router.cfg ↓
SET CONFIG=router.cfg ↓
■ PPPoEのLAN型接続では、IPCPネゴシエーションによって、WAN側(PPP)インターフェースにネットワークアドレス(ホスト部が0のアドレス)が割り当てられます。ネットワークアドレスはホストアドレスとしては使用できないため事実上Unnumberedと同じですが、厳密に言うと専用線接続などで使用するUnnumberedとは異なります。
ルーター自身がWAN側インターフェースからIPパケットを送出する場合を考えます。純粋なUnnumberedでは、送出インターフェースにアドレスが設定されていないため、他のインターフェースのアドレスを使用します。しかし、PPPoE LAN型の場合は、まがりなりにもWAN側インターフェースにアドレスが設定されているため、パケットの始点アドレスとして本来使用できないネットワークアドレスが使用されてしまいます。
通常は、ルーター自身がパケットを送信することがないため、このことを意識する必要はありません。しかし、IPsecを使用するときなどは、始点アドレスに有効なアドレスが使われるよう注意が必要です。これには、WAN側インターフェースをマルチホーミングし、一方に有効なアドレスを設定した上で、デフォルトルートをそちらに向ける必要があります。ここでは、ISPから4.4.4.0/29のアドレスを割り当てられているものと仮定します。
ADD IP INT=ppp0-0 IP=0.0.0.0 ↓
ADD IP INT=ppp0-1 IP=4.4.4.1 MASK=255.255.255.255 ↓
ADD IP INT=eth0-0 IP=4.4.4.2 MASK=255.255.255.248 ↓
ADD IP INT=eth0-1 IP=192.168.10.1 MASK=255.255.255.0 ↓
ADD IP ROUTE=0.0.0.0 INT=ppp0-1 NEXT=0.0.0.0 ↓
これにより、LAN側からWAN側へのパケットはppp0-1にルーティングされ、始点アドレスとして4.4.4.1が使用されるようになります。
■ ファイアウォールで遮断されたパケットのログをとるには、次のコマンドを実行します。
ENABLE FIREWALL POLICY=net LOG=DENY ↓
記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=FIRE」により、ファイアウォールが出力したログメッセージだけを表示させています。
■ インターネット側からのPING(ICMP Echo Requestパケット)を拒否するには、次のようなIPフィルターをWAN側インターフェースに設定します。この例では、「LOG=HEADER」により、フィルターで拒否したパケットをログに記録しています。
ADD IP FILTER=0 SO=0.0.0.0 PROTO=ICMP ICMPTYPE=ECHO LOG=HEADER ACTION=EXCLUDE ↓
ADD IP FILTER=0 SO=0.0.0.0 ACTION=INCLUDE ↓
SET IP INT=ppp0 FILTER=0 ↓
記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=IPFIL」により、IPフィルターが出力したログメッセージだけを表示させています。
■ セキュリティーモードに移行すると、Security OfficerレベルでルーターにTelnetログインすることができなくなります。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO(Remote Security Officer)コマンドを使ってログインを許可するホストのIPアドレスを指定しておく必要があります。
たとえば、ネットワーク192.168.10.0/24、192.168.20.0/24上のすべてのホストからSecurity OfficerレベルでのTelnetログインを許可する場合は、次のようにします。
ENABLE USER RSO ↓
ADD USER RSO IP=192.168.10.0 MASK=255.255.255.0 ↓
ADD USER RSO IP=192.168.20.0 MASK=255.255.255.0 ↓
■ セキュリティーモードでは、たとえSecurity Officerでログインした場合であっても、セキュリティーコマンドを一定期間入力しないでいると、次回セキュリティーコマンドを入力したときにパスワードの再入力を求められます。このタイムアウト値は、下記コマンドによって変更できますが、IPsecの設定を行うときは、ノーマルモードで設定を行った後、セキュリティーモードに変更することをおすすめします。
■ セキュリティー関連コマンドのタイムアウトは、次のコマンドで変更できます。SECUREDELAYパラメーターには、10〜600(秒)を指定します。デフォルトは60秒です。
SET USER SECUREDELAY=300 ↓
ルーターAのコンフィグ
[テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル(.cfg)に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓
CREATE PPP=0 OVER=eth1-ANY ↓
SET PPP=0 OVER=eth1-ANY BAP=OFF IPREQUEST=ON USER=user@ispA PASSWORD=isppasswdA LQR=OFF ECHO=ON ↓
ENABLE IP ↓
ENABLE IP REMOTEASSIGN ↓
ADD IP INT=eth0-0 IP=4.4.4.2 MASK=255.255.255.248 ↓
ADD IP INT=eth0-1 IP=192.168.10.1 MASK=255.255.255.0 ↓
ADD IP INT=ppp0-0 IP=0.0.0.0 ↓
ADD IP INT=ppp0-1 IP=4.4.4.1 MASK=255.255.255.255 ↓
ADD IP ROUTE=0.0.0.0 INT=ppp0-1 NEXTHOP=0.0.0.0 ↓
ENABLE L2TP ↓
ENABLE L2TP SERVER=BOTH ↓
SET L2TP PASSWORD=l2tpA ↓
ADD L2TP CALL=remote IP=0.0.0.0 TYPE=VIRTUAL REMOTE=remote PRECEDENCE=IN ↓
CREATE PPP=1 OVER=TNL-remote IDLE=ON BAP=OFF LQR=OFF ↓
ADD IP INT=ppp1 IP=0.0.0.0 ↓
ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
ENABLE APPLETALK ↓
ADD APPLETALK PORT INT=eth0 SEED=10 ↓
ADD APPLETALK ZONE=NetA PORT=1 DEFAULT ↓
ADD APPLETALK PORT INT=ppp1 DEMAND=ON ↓
ADD APPLETALK ROUTE=20 PORT=2 HOPS=2 ↓
ENABLE FIREWALL ↓
CREATE FIREWALL POLICY=net ↓
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
ADD FIREWALL POLICY=net INT=eth0-1 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net INT=eth0-0 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net INT=ppp0-0 TYPE=PUBLIC ↓
ADD FIREWALL POLICY=net INT=ppp0-1 TYPE=PUBLIC ↓
ADD FIREWALL POLICY=net INT=ppp1 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net NAT=ENHANCED INT=eth0-1 GBLINT=ppp0-1 GBLIP=4.4.4.1 ↓
ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.3 PORT=80 ↓
ADD FIREWALL POLICY=net RULE=2 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.4 PORT=25 ↓
ADD FIREWALL POLICY=net RULE=3 AC=ALLOW INT=ppp0-1 PROTO=TCP IP=4.4.4.4 PORT=53 ↓
ADD FIREWALL POLICY=net RULE=4 AC=ALLOW INT=ppp0-1 PROTO=UDP IP=4.4.4.4 PORT=53 ↓
ADD FIREWALL POLICY=net RULE=5 AC=ALLOW INT=ppp0-1 PROT=UDP GBLPO=500 GBLIP=4.4.4.1 PO=500 IP=4.4.4.1 ↓
ADD FIREWALL POLICY=net RULE=6 AC=NONAT INT=eth0-1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓
SET FIREWALL POLICY=net RULE=6 REMOTEIP=192.168.20.1-192.168.20.254 ↓
ADD FIREWALL POLICY=net RULE=7 AC=NONAT INT=ppp0-1 PROT=UDP PORT=1701 IP=4.4.4.1 ENCAP=IPSEC ↓
# CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓
CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE MODE=AGGRESSIVE REMOTEID="routerb" ↓
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA MODE=TRANSPORT ↓
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓
CREATE IPSEC POLICY="isa" INT=ppp0-1 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓
CREATE IPSEC POLICY="L2" INT=ppp0-1 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓
SET IPSEC POLICY="L2" LAD=4.4.4.1 LPORT=1701 RNAME="routerb" RPORT=1701 TRANSPORT=UDP ↓
CREATE IPSEC POLICY="inet" INT=ppp0-1 ACTION=PERMIT ↓
ENABLE IPSEC ↓
ENABLE ISAKMP ↓
# LOGIN secoff ↓
# ENABLE SYSTEM SECURITY_MODE ↓
|
ルーターBのコンフィグ
[テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル(.cfg)に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓
CREATE PPP=0 OVER=eth1-ANY ↓
SET PPP=0 OVER=eth1-ANY IPREQUEST=ON USER=user@ispB PASSWORD=isppasswdB LQR=OFF BAP=OFF ECHO=ON ↓
ENABLE IP ↓
ENABLE IP REMOTEASSIGN ↓
ADD IP INT=eth0 IP=192.168.20.1 MASK=255.255.255.0 ↓
ADD IP INT=ppp0 IP=0.0.0.0 ↓
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓
ENABLE L2TP ↓
ENABLE L2TP SERVER=BOTH ↓
ADD L2TP CALL=remote IP=4.4.4.1 TYPE=VIRTUAL REMOTE=remote PRECEDENCE=OUT PASSWORD=l2tpA ↓
CREATE PPP=1 OVER=TNL-remote IDLE=ON BAP=OFF LQR=OFF ↓
ADD IP INT=ppp1 IP=0.0.0.0 ↓
ADD IP ROUTE=192.168.10.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 ↓
ENABLE APPLETALK ↓
ADD APPLETALK PORT INT=eth0 SEED=20 ↓
ADD APPLETALK ZONE=NetB PORT=1 DEFAULT ↓
ADD APPLETALK PORT INT=ppp1 DEMAND=ON ↓
ADD APPLETALK ROUTE=10 PORT=2 HOPS=2 ↓
ENABLE FIREWALL ↓
CREATE FIREWALL POLICY=net ↓
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
DISABLE FIREWALL POLICY=net IDENTPROXY ↓
ADD FIREWALL POLICY=net INT=eth0 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
ADD FIREWALL POLICY=net INT=ppp1 TYPE=PRIVATE ↓
ADD FIREWALL POLICY=net NAT=ENHANCED INT=eth0 GBLINT=ppp0 ↓
ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=eth0 PROT=ALL IP=192.168.20.1-192.168.20.254 ↓
SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓
ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=UDP PORT=1701 ENCAP=IPSEC ↓
# CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓
CREATE ISAKMP POLICY="i" PEER=4.4.4.1 KEY=1 SENDN=TRUE MODE=AGGRESSIVE LOCALID="routerb" ↓
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA MODE=TRANSPORT ↓
CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓
CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓
CREATE IPSEC POLICY="L2" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=4.4.4.1 ↓
SET IPSEC POLICY="L2" LNAME="routerb" LPORT=1701 RAD=4.4.4.1 RPORT=1701 TRANSPORT=UDP ↓
CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓
ENABLE IPSEC ↓
ENABLE ISAKMP ↓
# LOGIN secoff ↓
# ENABLE SYSTEM SECURITY_MODE ↓
|
CentreCOM AR740 設定例集 2.6 #115
(C) 1997 - 2008 アライドテレシスホールディングス株式会社
PN: 613-000216 Rev.C
<前頁
次頁>
<<
>>
↑
目次 (番号順
(詳細)・
回線別
(詳細)・
機能別
(詳細))