frame-relay上にて OSPFv3 とフィルタリング(traffic-filter)





条件
・上記ネットワーク図に沿うように ipv6 アドレスを設定してください。
・すべての ipv6 インターフェースにて OSPFv3 を有効にしてください。
・R3 から R4 へ向かうトラフィックは シリアルリンク(R5 s1/1 - R4 s1/1)を通るようにしてください。
またシリアルリンクが down となった場合は frame-relay リンクを使用するようにしてください。
・R4にて FEC0:CC1E:1:38::/64 からの通信を拒否するよう設定してください。


まずは、ipv6 アドレッシングをするところまで設定しちゃいます。

R3
ipv6 unicast-routing

interface Serial1/0
 ipv6 address FEC0:CC1E:1:35::3/64
 frame-relay map ipv6 2001:CC1E:1:35::5 305 broadcast

interface lo0
 ipv6 address FEC0:CC1E:1:38::3/64

R4
ipv6 unicast-routing

interface Serial1/0
 ipv6 address FEC0:CC1E:1:45::4/64
 frame-relay map ipv6 2001:CC1E:1:45::5 405 broadcast

interface lo0
 ipv6 address FEC0:CC1E:1:4::4/64

R5
ipv6 unicast-routing

interface s1/0.35 point-to-point
ipv6 address FEC0:CC1E:1:35::5/64
frame-relay interface-dlci 503

interface s1/0.45 point-to-point
ipv6 address FEC0:CC1E:1:45::5/64
frame-relay interface-dlci 504

というかんじですね。


で、次に OSPFv3 も設定しちゃいます。

R3
ipv6 router ospf 1
router-id 3.3.3.3

int s1/0
ipv6 ospf 1 area 0
ipv6 address FE80::3 link-local
frame-relay map ipv6 FE80::5 305
ipv6 ospf network pointo-to-point

int lo0
ipv6 ospf 1 area 0

R4
ipv6 router ospf 1
router-id 4.4.4.4

int s1/0
ipv6 ospf 1 area 0
ipv6 address FE80::4 link-local
frame-relay map ipv6 FE80::5 405
ipv6 ospf network point-to-point

int lo0
ipv6 ospf 1 area 0

R5
ipv6 router ospf 1
router-id 5.5.5.5

int s1/0.35 point-to-point
ipv6 ospf 1 area 0
ipv6 ospf network point-to-point

int s1/0.45 point-to-point
ipv6 ospf 1 area 0
ipv6 ospf network point-to-point

s1/1
ipv6 ospf 2 area 0


というかんじで追加します。
ipv6 の場合も router-id は 32bit 設定となります。ipv4 の場合はインターフェースに設定されて
いるアドレスから自動設定されますが、ipv6 アドレスのみの場合は router-id コマンドで手動設定
してあげる必要があります。設定していない状態でインターフェースで ospfv3 を有効化すると
下記のように警告がでます。

R3(config)#int s1/0
R3(config-if)#ipv6 ospf 1 area 0
R3(config-if)#
*Oct 12 08:12:41.383: %OSPFv3-4-NORTRID: OSPFv3 process 1 could not pick a router-id,
please configure manually


また、ospfv3はネイバーとの hello にリンクローカルアドレスを使用します。
リンクローカルアドレスは自動で設定されますが、frame-relay 上では map を追加してやる必要が
あるので、リンクローカルを手動で設定します。抜粋すると下記の感じ。

R4
s1/0
FE80::4 link-local
frame-relay map ipv6 FE80::5 405

R5
s1/0.45 point-to-point
FE80::5 link-local
frame-relay map ipv6 FE80::4 504


デバッグを見るとリンクローカルを使用して hello されているのがわかります。
*Oct 13 09:20:38.309: OSPFv3: Rcv hello from 4.4.4.4 area 0 from Serial1/0.45 FE80::4 interface ID 5
*Oct 13 09:20:38.309: OSPFv3: End of hello processing
*Oct 13 09:20:38.313: OSPFv3: Rcv hello from 4.4.4.4 area 0 from Serial1/1 FE80::C801:8FF:FE10:0 interface ID 6
*Oct 13 09:20:38.317: OSPFv3: End of hello processing
*Oct 13 09:20:44.065: OSPFv3: Rcv hello from 3.3.3.3 area 0 from Serial1/0.35 FE80::3 interface ID 5
*Oct 13 09:20:44.069: OSPFv3: End of hello processing


次に下記の条件です。 ・R3 から R4 へ向かうトラフィックは シリアルリンク(R5 s1/1 - R4 s1/1)を通るようにしてください。
またシリアルリンクが down となった場合は frame-relay リンクを使用するようにしてください。

R5からR4へのリンクとしては s1/0.45 と s1/1 があります。どちらも 1.544Mbps(cost 64) のシリアルラインなので
ロードバランスされた状態です。

R5#sh ipv6 route ospf
O FEC0:CC1E:1:4::4/128 [110/64]
via FE80::C801:8FF:FE10:0, Serial1/1
via FE80::4, Serial1/0.45

で、frame-relay じゃないほうを優先させるには cost 値の変更ですね。どちらも cost 64 なので、
R5 s1/0.45 の cost を 65 以上に設定してあげます。

R5
s1/0.45 point-to-point
ipv6 ospf cost 1000


R5#sh ipv6 ospf int s1/0.45
Serial1/0.45 is up, line protocol is up
  Link Local Address FE80::5, Interface ID 16
  Area 0, Process ID 1, Instance ID 0, Router ID 5.5.5.5
  Network Type POINT_TO_POINT, Cost: 1000
  Transmit Delay is 1 sec, State POINT_TO_POINT,
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:08
  Index 1/2/2, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 2, maximum is 3
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 4.4.4.4
  Suppress hello for 0 neighbor(s)


これで、ルーティングを見てみると s1/1 のルートだけになったことがわかります。

R5#sh ipv6 route ospf
O FEC0:CC1E:1:4::4/128 [110/64]
via FE80::C801:8FF:FE10:0, Serial1/1

また、R5 s1/1 を shutdown すると、、、

R5#sh ipv6 route ospf
O FEC0:CC1E:1:4::4/128 [110/1000]
via FE80::4, Serial1/0.45

cost 1000 で s1/0.45 のルートが浮き上がってきました。


次に最後の条件。
・R4にて FEC0:CC1E:1:38::/64 からの通信を拒否するよう設定してください。

これは、アクセスリストを R4 s1/0 と s1/1 の in側に設定するようにします。

R4
ipv6 access-list DENY_ROUTE
deny ipv6 FEC0:CC1E:1:38::/64 any
permit ipv6 any any

int s1/0
ipv6 traffic-filter DENY_ROUTE in

int s1/1
ipv6 traffic-filter DENY_ROUTE in


Serial1/1 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C801:8FF:FE10:0
  Global unicast address(es):
    FEC0:CC1E:1:4455::4, subnet is FEC0:CC1E:1:4455::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::5
    FF02::1:FF00:4
    FF02::1:FF10:0
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  Input features: ACL
  Inbound access list DENY_ROUTE
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  Hosts use stateless autoconfig for addresses.


R3 から ping を打ってみると、アクセスリストを適用していない状態では、
飛びますが、、

R3#ping FEC0:CC1E:1:4::4 sou lo0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:CC1E:1:4::4, timeout is 2 seconds:
Packet sent with a source address of FEC0:CC1E:1:38::3
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/66/80 ms

アクセスリスト適用後だと拒否されていることがわかります。

R3#ping FEC0:CC1E:1:4::4 sou lo0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:CC1E:1:4::4, timeout is 2 seconds:
Packet sent with a source address of FEC0:CC1E:1:38::3
AAAAA
Success rate is 0 percent (0/5)


更新日:2012/10/14
TOPに戻る