もやし日誌

日記のようなもの

Cisco C841M-4X-JSECを買ってみた話とハマった点

Cisco StartシリーズのC841M-4X-JSECが1万円ちょっとで衝動買いしてしまったので自宅のネットワーク機器のリプレースをしました。
Ciscoのネットワーク機器を触るのは初めてで、コンフィグ等いろいろ慣れない点があり思いっきりハマってしまい1日無駄にした点もあったのでメモとして残しておきます。

設定項目

ハマったポイント

ipv6 cefが有効になっているとipv6の外向きの通信がなぜか50%ぐらいパケットロスする

supportforums.cisco.com どうやらIOS側のipv6 CEFのバグ疑惑があるので、no ipv6 cefで回避。ちなみにipv4のCEFに関しては問題ありませんでした。

ipv6環境にてWindows Updateが走らなくなる

Windows Updateのログを確認するとアップデートを配信しているCDNに繋げなくてエラーになっている模様。
(正確には接続は確立できるが、それ以降の通信がまったくできない状態になる)
確認するとPMTUD Black Holeにより通信できなくなっていたようなので、ルーター側でTCP MSS Clampingをすることにより解決しました。
本来ならICMPv6パケット(Packet too bigメッセージ)が送出され、MSS値が調整されるはずですが、このパケットがフィルタされてしまい届かないことによりこのような現象が起こることがあるようです。
TCPの場合、3way handshakeの段階で自分が受け取れる最大のセグメントサイズを通知することが出来るので、Dialerインタフェース側に通知する設定を加えることで解決しました。

interface Dialer2
 ipv6 mtu 1454
 ipv6 tcp adjust-mss 1394

ルーターがWAN側からのping要求に対して応答しないようにZone Based Firewallを調整したはずなのに応答してしまう

下記のコンフィグのように、外→内のルールでping要求をdropするようにしていますが、何故かルーターpingの要求に対して応答してしまうようになっていました。

ip access-list extended v4acldeny
 permit icmp any any echo
!
ipv6 access-list v6acldeny
 permit icmp any any echo-request
!
class-map type inspect match-any pub-priv-deny-cmap
 match access-group name v4acldeny
 match access-group name v6acldeny
!
policy-map type inspect pub-priv-policy
 class type inspect pub-priv-deny-cmap
  drop
 class type inspect pub-priv-cmap
  inspect 
 class class-default
  drop
!
zone-pair security pub-priv source public destination private
 service-policy type inspect pub-priv-policy
!

ルーター本体はselfに属するので、以下のコンフィグを追加することで解決。

zone-pair security pub-pub source public destination self
 service-policy type inspect pub-priv-policy

native vlanに指定したVLANがスイッチ側でタグを付けると使えない(疎通しない)

(当たり前なのかもしれませんが) untaggedに指定したVLANはタグ付きで使用することはできないようです。
(いくらスイッチ側でタグを付けようがルーター側で破棄されるようです)

デフォルト設定ではVLAN1がuntaggedに設定されるので、VLAN1を使わないようにして対処しました。

コンフィグ

hostname akane
!
!
logging buffered 51200 warnings
!
!
ip dhcp excluded-address 192.168.0.1
ip dhcp excluded-address 192.168.3.1
!
ip dhcp pool vlan2-dhcp
 network 192.168.0.0 255.255.255.0
 default-router 192.168.0.1 
 dns-server 8.8.8.8 8.8.4.4 
!
ip dhcp pool vlan3-dhcp
 network 192.168.3.0 255.255.255.0
 default-router 192.168.3.1 
 dns-server 8.8.8.8 8.8.4.4 
!
!
!
no ip domain lookup
ip domain name akane.local
ip cef
ipv6 source-route
ipv6 flowset
ipv6 unicast-routing
no ipv6 cef
ipv6 dhcp pool vlan2-dhcpv6
 dns-server 2001:4860:4860::8888
 dns-server 2001:4860:4860::8844
!
!
!
flow record nbar-appmon
 match ipv4 source address
 match ipv4 destination address
 match application name
 match interface output
 match ipv6 source address
 match ipv6 destination address
 match interface input
 collect counter bytes
 collect counter packets
 collect timestamp absolute first
 collect timestamp absolute last
 collect application http host
!
!
flow monitor application-mon
 cache timeout active 60
 record nbar-appmon
!
!
!
!
vtp mode transparent
username matsuri privilege 15 secret 5 hogepassword
!
redundancy
!
!
!
!
!
vlan 2-3 
no cdp run
!
!
class-map type inspect match-any pub-priv-deny-cmap
 match access-group name v4acldeny
 match access-group name v6acldeny
class-map type inspect match-any priv-pub-cmap
 match protocol tcp
 match protocol udp
 match protocol ident
 match protocol icmp
class-map type inspect match-any pub-priv-cmap
 match access-group name v4alist
 match access-group name v6alist
!
policy-map type inspect priv-pub-policy
 class type inspect priv-pub-cmap
  inspect 
 class class-default
  drop
policy-map type inspect pub-priv-policy
 class type inspect pub-priv-deny-cmap
  drop
 class type inspect pub-priv-cmap
  inspect 
 class class-default
  drop
!
zone security public
zone security private
zone-pair security priv-pub source private destination public
 service-policy type inspect priv-pub-policy
zone-pair security pub-priv source public destination private
 service-policy type inspect pub-priv-policy
zone-pair security pub-pub source public destination self
 service-policy type inspect pub-priv-policy
! 
!
!
!
!
bridge crb
!
!
!
!
interface GigabitEthernet0/0
 switchport mode trunk
 no ip address
!
interface GigabitEthernet0/1
 switchport trunk native vlan 2
 switchport mode trunk
 no ip address
!
interface GigabitEthernet0/2
 switchport trunk native vlan 2
 switchport mode trunk
 no ip address
!
interface GigabitEthernet0/3
 switchport trunk native vlan 2
 switchport mode trunk
 no ip address
!
interface GigabitEthernet0/4
 no ip address
 duplex auto
 speed auto
 bridge-group 1
 bridge-group 1 input-type-list 200
!
interface GigabitEthernet0/5
 no ip address
 duplex auto
 speed auto
 ipv6 dhcp client pd ngnprefix
 pppoe enable group global
 pppoe-client dial-pool-number 2
 pppoe-client dial-pool-number 1
 bridge-group 1
!
interface Vlan1
 no ip address
!
interface Vlan2
 ip address 192.168.0.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 zone-member security private
 no autostate
 ipv6 address ocnprefix ::1:1/64
 ipv6 enable
 ipv6 nd other-config-flag
 ipv6 nd ra interval 10
 ipv6 dhcp server vlan2-dhcpv6
 ipv6 virtual-reassembly in
!
interface Vlan3
 ip address 192.168.3.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 zone-member security private
 no autostate
!
interface Dialer1
 mtu 1454
 ip address negotiated
 ip flow monitor application-mon input
 ip flow monitor application-mon output
 ip nat outside
 ip virtual-reassembly in
 zone-member security public
 encapsulation ppp
 ip tcp adjust-mss 1414
 dialer pool 1
 dialer idle-timeout 0
 dialer-group 1
 ppp authentication chap callin
 ppp chap hostname hogehoge@hoge.ne.jp
 ppp chap password 0 hogehogepassword
 ppp ipcp dns request accept
 no cdp enable
!
interface Dialer2
 mtu 1454
 no ip address
 ip flow monitor application-mon input
 ip flow monitor application-mon output
 zone-member security public
 encapsulation ppp
 ip tcp adjust-mss 1414
 dialer pool 2
 dialer idle-timeout 0
 dialer-group 2
 ipv6 address autoconfig
 ipv6 enable
 ipv6 mtu 1454
 no ipv6 nd ra suppress
 ipv6 tcp adjust-mss 1394
 ipv6 dhcp client pd hint ::/0
 ipv6 dhcp client pd ocnprefix
 ipv6 virtual-reassembly in
 ppp authentication chap callin
 ppp chap hostname hogehoge@ipv6.hoge.ne.jp
 ppp chap password 0 hogehogepassword
 ppp ipcp dns request accept
 no cdp enable
!
ip forward-protocol nd
ip http server
ip http upload enable path flash:
ip http upload overwrite
ip http access-class 1
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
!
!
ip nat inside source list 1 interface Dialer1 overload
ip nat inside source static tcp 192.168.0.110 443 interface Dialer1 443
ip nat inside source list 2 interface Dialer1 overload
ip route 0.0.0.0 0.0.0.0 Dialer1 permanent
ip ssh version 2
!
ip access-list extended v4acldeny
 permit icmp any any echo
ip access-list extended v4alist
 permit tcp any host 192.168.0.110 eq 443
!
dialer-list 1 protocol ip permit
dialer-list 2 protocol ipv6 permit
ipv6 route ::/0 Dialer2
!
!
access-list 1 permit 192.168.0.0 0.0.0.255
access-list 2 permit 192.168.3.0 0.0.0.255
access-list 23 permit 10.10.10.0 0.0.0.127
access-list 200 deny   0x86DD 0x0000
access-list 200 permit 0x0000 0xFFFF
!
ipv6 access-list v6acldeny
 permit icmp any any echo-request
!
ipv6 access-list v6alist
 permit icmp any any
bridge 1 protocol ieee
!
 vstack
!
line con 0
 login local
 no modem enable
 length 0
line vty 0 4
 access-class 1 in
 privilege level 15
 login local
 length 0
 transport input telnet ssh
line vty 5 15
 access-class 1 in
 privilege level 15
 login local
 length 0
 transport input telnet ssh
!
scheduler allocate 20000 1000
!
end