LoginSignup
2
2

More than 1 year has passed since last update.

nuroでciscoルータを使った(memo)

Last updated at Posted at 2021-10-01

2021/10/07現在、CiscoルータはただのVPNゲートウェイとしか機能しない設定にしました。

はじめに

御存知の通り、nuroでONUを提供してもらうためには、法人契約しかなく。。。

  • WLAN無効
  • DMZ設定
  • DHCPv4無効

などなどしてなんとか使うのが一般的です。どうにかしてAliexpressとかからいいのを探してきても、なかなか1GE+4FEとか、IPv6未対応とか、設定いじってもbridgeできなかったり、もう諦めてHG8045Qを使ってもいい感じにできないか、と自分なりに煮詰めた設定をメモしておきます。

環境

  • nuroマンション+4
  • HG8045Q
  • Cisco 2911(Service Module: SM-ES3G-16-P@Cisco c3560e)

構成

                   +-----------------------------------------------+
                   | Cisco 2911                                    |
                   |        g0/0: IPv4 StaticADDR, NAPT outside    |
+-------+ (VLAN10) |    brigde 1: g0/1(IPv6 traffic only), vlan10  |
|clinets|----------| bridge BVI1: IPv4 NAPT inside                 |
+-------+          |              IPv6 DHCPv6-PD client            |
IPv4:              |              IPv6 unicastADDR (use PD prefix) |
 DHCP from C2911   +-----------------------------------------------+
IPv6:                       g0/0                     g0/1
 configure from               |                        |  PathThrough(nd, ra)
  HG8045Qs RA       IPv4 DMZ  |                        |  DHCPv6(DNS)
                              |                        |  DHCPv6-PD(/64 prefix)
                             LAN1                     LAN2
                           +-------------------------------+
                           | HG8045Q                       |
                           |  IPv4: DHCP disabled          |
                           |        DMZ = C2911 g0/0 ADDR  |
                           |  IPv6: ??????                 |
                           |  WLAN: OFF                    |
                           +-------------------------------+
                                           |
                                           | G-PON
                                           |
                                        +------+
                                        | nuro |
                                        +------+

苦労したところ

IPv4はだましだましなんとかできるのですが、IPv6がクセモノです。

HG8045Q側設定

IPv6 > LANアドレス設定

  • ルータ広告を有効にする
  • DHCPv6サーバを有効にする
  • リソース割り当てモード: 手動
  • アドレス/プレフィックスの割り当て方法: SLAAC
  • その他の情報の割り当て方法: DHCPv6
  • ULAモード: 無効

リソース割り当てモードは自動にするとどうなるか検証してませんが、なんとなく雰囲気でDHCPv6でアドレス配布されるの嫌なので手動
ULAモードについては、自動でも手動でも使い物になりませんでしたので、無効にしています。

Cisco側設定

孤高なるCisco様に倣って、書いていきます。

version 15.7
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname c2911
!
boot-start-marker
boot-end-marker
!
no aaa new-model
!
no ip dhcp conflict logging
ip dhcp excluded-address 192.168.0.251 192.168.0.254
!
ip dhcp pool LAN
 network 192.168.0.0 255.255.255.0
 default-router 192.168.0.254
 dns-server 192.168.0.254
!
ip dhcp pool raspi4
 host 192.168.0.250 255.255.255.0
 client-identifier 01dc.a632.cc14.2d
 bootfile ""
 next-server 192.168.0.253
 default-router 192.168.0.254
 dns-server 192.168.0.254
 option 43 ascii "Raspberry Pi Boot"
!
no ip domain lookup
ip domain name hogehoge.com
ip inspect name SPI icmp
ip inspect name SPI tcp
ip inspect name SPI udp
ip cef
ipv6 unicast-routing
ipv6 inspect name SPI icmp
ipv6 inspect name SPI tcp
ipv6 inspect name SPI udp
ipv6 cef
!
multilink bundle-name authenticated
!
license udi pid CISCO2911/K9 sn XXXXXXXXXXX
hw-module sm 1
!
vtp version 2
!
redundancy
bridge-domain 1
!
bridge irb
!
interface Embedded-Service-Engine0/0
 no ip address
 shutdown
!
interface GigabitEthernet0/0
 ip address 192.168.200.2 255.255.255.0
 ip nat outside
 ip inspect SPI out
 ip virtual-reassembly in
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 no ip address
 duplex auto
 speed auto
 bridge-group 1
 bridge-group 1 input-type-list 200
 bridge-group 1 output-type-list 200
!
interface GigabitEthernet0/2
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface GigabitEthernet1/0
 ip address 192.168.201.1 255.255.255.0
!
interface GigabitEthernet1/1
 switchport mode trunk
 no ip address
!
interface Vlan1
 no ip address
!
interface Vlan10
 no ip address
 bridge-group 1
!
interface BVI1
 ip address 192.168.0.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 ipv6 address nuroPrefix ::DEAD:BEEF:F000:8AAA/64
 ipv6 nd autoconfig default-route
 ipv6 dhcp client pd nuroPrefix rapid-commit
 ipv6 inspect SPI in
!
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!
ip dns view default
 dns forwarding
 dns forwarder 192.168.200.1
 dns forwarder 8.8.8.8
ip dns view-list dns-view
 view default 10
  restrict source access-group 1
ip dns server view-group dns-view
ip dns server
ip nat inside source list 1 interface GigabitEthernet0/0 overload
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 192.168.200.1
ip ssh version 2
!
access-list 1 permit 192.168.0.0 0.0.0.255
access-list 200 permit 0x86DD 0x0000
!
control-plane
!
bridge 1 protocol ieee
bridge 1 route ip
!
line con 0
line aux 0
line 2
 no activation-character
 no exec
 transport preferred none
 transport output pad telnet rlogin lapb-ta mop udptn v120 ssh
 stopbits 1
line 67
 no activation-character
 no exec
 transport preferred none
 transport input all
 transport output pad telnet rlogin lapb-ta mop udptn v120 ssh
 stopbits 1
 flowcontrol software
line vty 0 4
 login local
 transport input ssh
 transport output all
!
scheduler allocate 20000 1000
!
end
ipv6 unicast-routing
IPv6ルーティングをするためのおまじない。
ipv6 inspect name SPI xxx
IPv6のいわゆるステートフルパケットインスペクション(SPI)の対象について宣言。
ipv6 cef
IPv6を早くするおまじない。
bridge irb
ONUからのDHCPv6-PDによるPrefixDelegationが効かないので、もう最終手段としてIPv6パケットをブリッジするブリッジタイプを宣言します。irb以外にもある。
bridge-group 1
このインターフェースをBridge1のグループにする。パケットはBVIというインターフェースに流れる。ちなみにこれを入れるとインターフェースにアドレス等設定しても意味がなくなる。
bridge-group 1 [input,output]-type-list 200
特定のパケットのみBridgeに流すように設定する。
interface BVI1
bridge groupの番号に応じたパケットが集まってくるところ
ipv6 address nuroPrefix ::DEAD:BEEF:F000:8AAA/64
このインターフェースのIPv6アドレスを、DHCPv6-PDで降ってくるPrefixと、インターフェースIDで設定する。ちなみにここを nuroPrefix ::1:dead:beef:f000:8aaa/64にしても全く無視して、自身が持っているサブネットはこれしかないとばかりonuは言ってくる。あなたはPDで/56持ってきました!っていってるんですけどねぇ!
ipv6 nd autoconfig default-route
お近くのルータさんを見かけたら、そいつをデフォルトゲートウェイとしてくれる。
ipv6 dhcp client pd nuroPrefix rapid-commit
使えないonuに対して、DHCPv6-PDでPrefixをよこしてくださいと言う。しかも急かす。
ipv6 inspect SPI in
これを入れておくと、ルータを経由するパケット全てに対してSPIで防御してくれる。
access-list 200 permit 0x86DD 0x0000
先述のbridgeに入ってくるパケットの種別を指定する。 0x86DDがIPv6。
bridge 1 protocol ieee
bridgeのおまじない
bridge 1 route ip
bridgeをipルーティングするためのおまじない

この設定に落ち着いた経緯

ルータはIPsecの拠点間VPNセンターとして機能させる上で、IPv6を使ったIPv4トンネルを掘りたいので、IPv6アドレスを持ちつつ、クライアントも問題なくv4v6のデュアルスタックで問題なく通信させるには、この設定しか思いつかず。。

Cisco歴が3年ほどで、特に資格や勉強をしているわけではないので、Google先生の知識に付け焼刃的設定になっているかもしれませんが、実際に不自由ないので、こんな感じです。

あと、IPv4とIPv6で一本ずつケーブルを引くことで、各バージョンごとで1Gbpsのスループットを期待できます。現在の混在環境では1Gbps以上のスループットが出ることがあり(fast.comで1Gbpsでた)、なにげにbondingみたいになったことでスループットが上がりました。嬉しい誤算。

せめてもBridgeモードの解放を望みます

いろいろ試そうとすると、ベンダ設定が邪魔をしてくるのが不満です。
ONU単体とか、SFP+のスイッチも持っているので、XG-PON SFP+ ONUの提供も期待してたりします。
だめですか??

問題発生(2021/10/02追記)

  • Windowsで、brideされたONUのRAによるデフォルトゲートウェイ、Ciscoからのデフォルトゲートウェイと2つ配られて不安定になる模様。
  • Androidも同じような挙動担っている感じがする
  • MacはCiscoのデフォルトゲートウェイしか見ていない

解決法

  1. ONUのRAを止める
  2. 一応、ONUのULAモードを自動にしておく
  3. Cisco# sh ipv6 dhcp intで、Reachable via addressがONUのULAなので、メモしておく。
  4. Cisco(config)# int bvi1で、no ipv6 nd autoconfig default-routeする。ONUからRAが来ないので意味無し。
  5. Cisco(config)# ipv6 route ::/0 bvi1 ONU_ULA

すると、みんなルータを向いてくれる。

結局意味がなかった。無駄記事かも。

まあ、Prefixに応じた固定IPv6アドレスが設定できる分いいか。

config
no ip domain lookup
ip cef
ipv6 unicast-routing
!
ipv6 cef
!
bridge-domain 1
!
bridge irb
!
interface GigabitEthernet0/1
 no ip address
 duplex auto
 speed auto
 bridge-group 1
 bridge-group 1 input-type-list 200
 bridge-group 1 output-type-list 200
!
interface Vlan10
 no ip address
 bridge-group 1
!
interface BVI1
 ip address 192.168.0.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 ipv6 address nuroPrefix ::DEAD:BEEF:15:F00D/64
 ipv6 nd autoconfig default-route
 ipv6 nd ra suppress all
 ipv6 dhcp client pd nuroPrefix
!
access-list 200 permit 0x86DD 0x0000
!
bridge 1 protocol ieee
bridge 1 route ip
!
end

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2