PPPoEのLAN型固定Prefixで/29などをISPから払い出された際、ネットワークアドレスやブロードキャストアドレスも含む、全てのGlobalIPを使い切る方法となります。
1.構成
今回の例では、ISPから25.0.0.16/29のLAN型固定Prefixを払い出された想定でConfigを作成しています。
ルータを2台構成としています。
- PPPoE終端+StaticNATをするルータ=RT13
- 本来GlobalIPを割り当てたいルータ=RT03
回線はフレッツ光ネクストを使用しており、複数のISPとLAN型固定Prefixの契約して試行しましたが、いずれも成功しています。
四の五の説明するより、Configを見てもらった方が早いと思います。
2.RT13のConfig
! hostname RT13 ! interface GigabitEthernet0 switchport access vlan 10 no ip address ! interface GigabitEthernet8 no ip address duplex auto speed auto pppoe enable group global pppoe-client dial-pool-number 1 ! interface Vlan10 ip address 192.168.10.1 255.255.255.0 ip nat inside ip virtual-reassembly in ip tcp adjust-mss 1414 ! interface Dialer1 mtu 1492 ip unnumbered Vlan10 ip mtu 1454 ip nat outside ip virtual-reassembly in encapsulation ppp dialer pool 1 dialer-group 1 ppp authentication chap callin ppp chap hostname ユーザ名 ppp chap password パスワード ppp pap refuse ppp ipcp route default no cdp enable ! ip nat inside source static 192.168.10.16 25.0.0.16 ! dialer-list 1 protocol ip permit ! access-list 1 permit any ! end !
PPPoE終端の設定はおなじみですが、異なる点は1対1のStaticNATをしている点です。
3.RT03のConfig
! hostname RT03 ! interface GigabitEthernet0 switchport access vlan 20 no ip address ! interface GigabitEthernet8 ip address 192.168.10.16 255.255.255.0 ip nat outside ip virtual-reassembly duplex auto speed auto ! interface Vlan20 ip address 192.168.20.1 255.255.255.0 ip nat inside ip virtual-reassembly ! ! ip route 0.0.0.0 0.0.0.0 192.168.10.1 ! ip nat pool GIP 192.168.10.16 192.168.10.16 netmask 255.255.255.0 ip nat inside source list 1 pool GIP overload ! access-list 1 permit 192.168.20.0 0.0.0.255 ! end
RT03では、G8をWAN側インターフェースとしていますが、GlobalIPではなく、RT13のStaticNATで設定したPrivateIPをインターフェースに設定し、そのIP(=192.168.10.16)でoverloadさせてしまいます。
4.RT13のRoutingテーブルとNATテーブル
RT13#show ip a route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 1.1.1.1 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 1.1.1.1 1.1.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Dialer1 192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.10.0/24 is directly connected, Vlan10 L 192.168.10.1/32 is directly connected, Vlan10 RT13#show ip nat translations Pro Inside global Inside local Outside local Outside global tcp 25.0.0.16:2598 192.168.10.16:2598 23.219.39.17:80 23.219.39.17:80 tcp 25.0.0.16:2599 192.168.10.16:2599 77.234.41.34:80 77.234.41.34:80 tcp 25.0.0.16:2600 192.168.10.16:2600 77.234.42.50:80 77.234.42.50:80
DefaultRouteのNexthopが1.1.1.1となっていますが、ppp ipcp route defaultの設定により、ISPとのPPPoEセッション時にネゴっているため、PPPoEを張るたびに変化します。
ちなみに、
ip route 0.0.0.0 0.0.0.0 Dialer1
とした場合、
CEFが使用されない(Fastスイッチングになってしまう)らしいので、ppp ipcp route defaultを使用しています。
5.RT03のRoutingテーブルとNATテーブル
RT03#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 192.168.10.1 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 192.168.10.1 192.168.10.0/24 is subnetted, 1 subnets C 192.168.10.0 is directly connected, GigabitEthernet8 C 192.168.20.0/24 is directly connected, Vlan20 RT03#show ip nat translations Pro Inside global Inside local Outside local Outside global tcp 192.168.10.16:2598 192.168.20.10:2598 23.219.39.17:80 23.219.39.17:80 tcp 192.168.10.16:2599 192.168.20.10:2599 77.234.41.34:80 77.234.41.34:80 tcp 192.168.10.16:2600 192.168.20.10:2600 77.234.42.50:80 77.234.42.50:80
RT13がGlobalIPにNAT変換してくれるので、RT03は192.168.10.16をGlobalIPと見立ててPATしているだけです。
6.補足
Vlan10に複数のルータやサーバを追加していきたい場合、RT13で以下のように設定してください。
ip nat inside source static 192.168.10.17 25.0.0.17
ip nat inside source static 192.168.10.18 25.0.0.18
・・・
ip nat inside source static 192.168.10.23 25.0.0.23 ←ブロードキャストアドレスも可
ISP側ルータのRoutingテーブル上、25.0.0.16/29のNexthopがPPPoEクライアント側に向いているため、25.0.0.16(ネットワークアドレス)や25.0.0.23(ブロードキャストアドレス)を使用したとしても、25.0.0.16/29の範囲に入っていれば、当然RT13側に戻してくれます。
以上です。
7.最後に
以下のサイトを参考にさせて頂きました。
技術的な解説が詳細に記載されており、最初拝読させて頂いたときは完全に目から鱗でした。
milestone-of-se.nesuke.com
今までは、RT03に相当する機器でDefaultRouteのNexthopが必要という理由だけで、盲目的にRT13のVLAN10に相当するインターフェースでGlobalIPを付与しておりました。しかし、上記サイトを読んだ結果、GlobalIPを浪費してしまっていたんだな、と猛省しました。。。
ちなみに以前、本Blogで紹介した
metonymical.hatenablog.com
の構成で、
試しにIPSecやTunnnelインターフェース上でBGPピアを張ってみましたが、正常に疎通確認が取れました。
また、RT13がGlobalIPを持っていないため、ちょっとセキュア(?)になっている点がとても気に入っており、まずはラボで利用してみて商用稼働できるかを見極めていきたいなと考えています。