IX ルーターで route-map の設定をしてみる
単純な宛先 ip 以外の条件で経路を選択したい場合。
インターネット回線が 2本あり、通常は A回線、部署 B は B回線を使うけど、VoIP は両方とも回線 A を使う場合など。
- 部署 B は B回線 → 送信元でルート選択
- VoIP は両方とも回線 A → 部署 B を B回線に曲げるけど、VoIP は曲げない → 宛先と送信元の両方でルート選択
他にも、A部署 と B部署の通信は許可しないけど、A 部署の Webサーバだけ B部署からのアクセスを許可するとか、ややこしい条件がある場合など。(これは acl か...)
構成図
青 (左) の IP アドレスの第 3オクテット目は 1
緑 (右) の IP アドレスの第 3オクテット目は 10
traceroute で経路が見えるように Cisco の vrf で 1段増やしました。
Cisco ルーターが大きいですが、メインは IX ルータです。
機器 | デフォルトルート |
---|---|
IX | vrf-01 へ |
Cisco vrf-01 | IX へ |
Cisco vrf-10 | IX へ |
Cisco default | vrf-01 へ |
経路制御の条件
下の PC から、上の Cisco の Loopback への通信を制御します。
下の PC、青い方 10.0.1.254 から Cisco へは全て青い方を通ります。
下の PC、緑の方 10.0.10.254 から Cisco へは緑の方を通ります。
ただし、10.20.20.4 宛てのみ IX から先は青い方を通ります。
PBR を入れるまでの設定
Cisco 1921
no cdp run
no ip domain lookup
spanning-tree portfast bpduguard
hostname Cisco
vlan 1
vlan 2
vlan 10
vlan 11
interface Loopback0
ip address 10.10.10.3 255.255.255.255
interface Loopback1
ip address 10.20.20.3 255.255.255.255
interface Loopback2
ip address 10.20.20.4 255.255.255.255
interface Loopback3
ip address 10.20.20.5 255.255.255.255
ip route 0.0.0.0 0.0.0.0 10.5.1.2
ip route 192.168.10.0 255.255.255.0 10.5.10.2
interface GigabitEthernet0/0
mac-address fc5b.39c0.f82f
ip address 10.5.1.3 255.255.255.0
interface GigabitEthernet0/1
ip address 10.5.10.3 255.255.255.0
- Vlan の MAC アドレスは Gi 0/0 の MAC アドレスと同じになるので、Gi 0/0 側の MAC アドレスを変えておく
interface GigabitEthernet0/0/0
switchport mode trunk
no ip address
ip vrf vrf-01
ip route vrf vrf-01 0.0.0.0 0.0.0.0 192.168.1.1
ip route vrf vrf-01 10.10.10.0 255.255.255.0 10.5.1.3
ip route vrf vrf-01 10.20.20.0 255.255.255.0 10.5.1.3
interface GigabitEthernet0/0/2
switchport access vlan 2
no ip address
interface Vlan1
ip vrf forwarding vrf-01
ip address 192.168.1.2 255.255.255.0
interface Vlan2
ip vrf forwarding vrf-01
ip address 10.5.1.2 255.255.255.0
ip vrf vrf-10
ip route vrf vrf-10 0.0.0.0 0.0.0.0 192.168.10.1
ip route vrf vrf-10 10.10.10.0 255.255.255.0 10.5.10.3
ip route vrf vrf-10 10.20.20.0 255.255.255.0 10.5.10.3
interface GigabitEthernet0/0/3
switchport access vlan 11
no ip address
interface Vlan10
ip vrf forwarding vrf-10
ip address 192.168.10.2 255.255.255.0
interface Vlan11
ip vrf forwarding vrf-10
ip address 10.5.10.2 255.255.255.0
Cisco 1921 の Config の全体
show running-config
Cisco#show running-config
Building configuration...
Current configuration : 2547 bytes
!
! Last configuration change at 11:11:20 UTC Sat Oct 5 2024
! NVRAM config last updated at 10:13:08 UTC Fri Oct 4 2024
! NVRAM config last updated at 10:13:08 UTC Fri Oct 4 2024
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Cisco
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
!
!
no ipv6 cef
ip source-route
ip cef
!
!
!
ip vrf vrf-01
!
ip vrf vrf-10
!
!
!
no ip domain lookup
!
multilink bundle-name authenticated
!
crypto pki token default removal timeout 0
!
!
license udi pid CISCO1921/K9 sn FGL184220QJ
!
!
!
spanning-tree portfast bpduguard
!
redundancy
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.10.10.3 255.255.255.255
!
interface Loopback1
ip address 10.20.20.3 255.255.255.255
!
interface Loopback2
ip address 10.20.20.4 255.255.255.255
!
interface Loopback3
ip address 10.20.20.5 255.255.255.255
!
interface Embedded-Service-Engine0/0
no ip address
shutdown
!
interface GigabitEthernet0/0
mac-address fc5b.39c0.f82f
ip address 10.5.1.3 255.255.255.0
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 10.5.10.3 255.255.255.0
duplex auto
speed auto
!
interface GigabitEthernet0/0/0
switchport mode trunk
no ip address
!
interface GigabitEthernet0/0/1
no ip address
!
interface GigabitEthernet0/0/2
switchport access vlan 2
no ip address
!
interface GigabitEthernet0/0/3
switchport access vlan 11
no ip address
!
interface Vlan1
ip vrf forwarding vrf-01
ip address 192.168.1.2 255.255.255.0
!
interface Vlan2
ip vrf forwarding vrf-01
ip address 10.5.1.2 255.255.255.0
!
interface Vlan10
ip vrf forwarding vrf-10
ip address 192.168.10.2 255.255.255.0
!
interface Vlan11
ip vrf forwarding vrf-10
ip address 10.5.10.2 255.255.255.0
!
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!
ip route 0.0.0.0 0.0.0.0 10.5.1.2
ip route 192.168.10.0 255.255.255.0 10.5.10.2
ip route vrf vrf-01 0.0.0.0 0.0.0.0 192.168.1.1
ip route vrf vrf-01 10.10.10.0 255.255.255.0 10.5.1.3
ip route vrf vrf-01 10.20.20.0 255.255.255.0 10.5.1.3
ip route vrf vrf-10 0.0.0.0 0.0.0.0 192.168.10.1
ip route vrf vrf-10 10.10.10.0 255.255.255.0 10.5.10.3
ip route vrf vrf-10 10.20.20.0 255.255.255.0 10.5.10.3
!
!
no cdp run
!
!
!
!
!
control-plane
!
!
!
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 vty 0 4
login
transport input all
!
scheduler allocate 20000 1000
end
Cisco#
IX-2207
hostname IX-2207
ip route default 192.168.1.2
ip route 10.5.10.0/24 192.168.10.2
interface GigaEthernet0.0
ip address 10.0.1.1/24
interface GigaEthernet1.0
ip address 10.0.10.1/24
interface GigaEthernet2.0
ip address 192.168.1.1/24
interface GigaEthernet2.1
encapsulation dot1q 10
ip address 192.168.10.1/24
vlan 1 (未設定) は Gi2.0 からそのまま出ます。
vlan 10 は Gi2.1 としてタグ付きで出ていきます。
Windows
C:\>netsh int ip show int
Idx Met MTU 状態 名前
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
35 35 1500 connected 内蔵 Wi-Fi
23 5 1500 disconnected 内蔵 NIC
12 25 1500 disconnected Wi-Fi 2
24 25 1500 connected Wi-Fi 4
5 25 1500 disconnected Wi-Fi 5
37 25 1500 connected イーサネット 2
38 35 1500 connected VMware Network Adapter VMnet8
25 5000 1500 connected vEthernet (Default Switch)
41 5000 1500 connected vEthernet (WSLCore)
59 5000 1500 connected vEthernet (Default Switch (内蔵 NIC))
66 5000 1500 connected vEthernet (Default Switch (イーサネット 2))
72 5000 1500 connected vEthernet (Default Switch (VMware Network Adapter VMnet8))
83 5000 1500 connected vEthernet (Default Switch (イーサネット))
89 5000 1500 connected vEthernet (Default Switch (内蔵 Wi-Fi))
108 5000 1500 connected vEthernet (Default Switch (Wi-Fi 2))
134 5000 1500 connected vEthernet (Default Switch (Wi-Fi 4))
140 5000 1500 connected vEthernet (Default Switch (Wi-Fi 5))
146 5 1500 disconnected イーサネット 5
39 25 1500 connected イーサネット
152 5000 1500 connected vEthernet (Default Switch (イーサネット 5))
...snip...
イーサネット
イーサネット 2
に設定をするので 39
37
を設定する
(インターフェース名でも設定可能)
netsh int ip set addr 37 static 10.0.1.254 255.255.255.0
netsh int ip set addr 39 static 10.0.10.254 255.255.255.0
C:\>netsh int ip show addr 37
インターフェイスの構成 "イーサネット 2"
DHCP 有効: いいえ
IP アドレス: 10.0.1.254
サブネット プレフィックス: 10.0.1.0/24 (マスク 255.255.255.0)
インターフェイス メトリック: 25
C:\>netsh int ip show addr 39
インターフェイスの構成 "イーサネット"
DHCP 有効: いいえ
IP アドレス: 10.0.10.254
サブネット プレフィックス: 10.0.10.0/24 (マスク 255.255.255.0)
インターフェイス メトリック: 25
route add 10.10.10.0 mask 255.255.255.0 10.0.1.1
route add 10.20.20.0 mask 255.255.255.0 10.0.1.1
route add 10.10.10.0 mask 255.255.255.0 10.0.10.1
route add 10.20.20.0 mask 255.255.255.0 10.0.10.1
route-map の設定する
traceroute (route-map 設定前)
設定前の状況の確認
(10.0.10.254
側のケーブルを抜いておく)
この状態で 10.0.1.254
青 (左) から traceroute
を打つと全て 192.168.1.2
青 (左) を経由
(10.0.1.254
側のケーブルを抜いておく)
この状態で 10.0.10.254
緑 (右) から traceroute
を打つと全て 192.168.1.2
青 (左) を経由
デフォルトルート (左経由) で制御されている。
traceroute (route-map を追加 1)
10.0.10.254
緑 (右) からのトラフィックを 192.168.10.2
緑 (右) へ振る
src アドレスが 10.0.10.254
の場合は
ip access-list list_to_vrf10 permit ip src 10.0.10.0/24 dest any
route-map map_gi1 permit 20
match ip address access-list list_to_vrf10
set ip next-hop 192.168.10.2
interface GigaEthernet1.0
ip policy route-map map_gi1
全部 192.168.10.2
緑 (右) へルーティングされた
traceroute (route-map を追加 2)
10.20.20.0/24
が緑側へ振られる前に
10.20.20.4
宛てのトラフィックを 192.168.10.1
青 (左) へ振るルールを map_gi1
に追加する
さっきのを route-map map_gi1 permit 20
で書いたので、それより小さい permit 10
にして前に割り込ませる
ip access-list list_to_vrf01 permit ip src 10.0.10.0/24 dest 10.20.20.4/32
route-map map_gi1 permit 10
match ip address access-list list_to_vrf01
set ip next-hop 192.168.1.2
10.20.20.4
だけ 192.168.1.2
青 (左) へルーティングされた
最後に 10.0.10.254
緑 (右) から traceroute
を打ってルートが変わっていないこと 192.168.1.2
青 (左) 経由を確認
IX ルータの route-map 部分を再掲
ip access-list list_to_vrf01 permit ip src 10.0.10.0/24 dest 10.20.20.4/32
ip access-list list_to_vrf10 permit ip src 10.0.10.0/24 dest any
route-map map_gi1 permit 10
match ip address access-list list_to_vrf01
set ip next-hop 192.168.1.2
route-map map_gi1 permit 20
match ip address access-list list_to_vrf10
set ip next-hop 192.168.10.2
interface GigaEthernet1.0
ip policy route-map map_gi1
show running-config
IX-2207(config)# show running-config
! NEC Portable Internetwork Core Operating System Software
! IX Series IX2207 (magellan-sec) Software, Version 10.8.24, RELEASE SOFTWARE
! Compiled Dec 15-Fri-2023 14:43:11 JST #2
! Current time Oct 06-Sun-2024 20:08:08 JST
!
hostname IX-2207
timezone +09 00
!
!
ip route default 192.168.1.2
ip route 10.5.10.0/24 192.168.10.2
ip access-list list_to_vrf01 permit ip src 10.0.10.0/24 dest 10.20.20.4/32
ip access-list list_to_vrf10 permit ip src 10.0.10.0/24 dest any
!
!
!
!
!
!
!
!
!
!
!
!
!
route-map map_gi1 permit 10
match ip address access-list list_to_vrf01
set ip next-hop 192.168.1.2
!
route-map map_gi1 permit 20
match ip address access-list list_to_vrf10
set ip next-hop 192.168.10.2
!
device GigaEthernet0
!
device GigaEthernet1
!
device GigaEthernet2
!
device USB0
shutdown
!
device USB1
shutdown
!
interface GigaEthernet0.0
ip address 10.0.1.1/24
no shutdown
!
interface GigaEthernet1.0
ip address 10.0.10.1/24
ip policy route-map map_gi1
no shutdown
!
interface GigaEthernet2.0
ip address 192.168.1.1/24
no shutdown
!
interface USB-Serial0.0
encapsulation ppp
no auto-connect
no ip address
shutdown
!
interface USB-Serial1.0
encapsulation ppp
no auto-connect
no ip address
shutdown
!
interface GigaEthernet2.1
encapsulation dot1q 10 tpid 8100
auto-connect
ip address 192.168.10.1/24
no shutdown
!
interface Loopback0.0
no ip address
!
interface Null0.0
no ip address
!
IX-2207(config)#
おまけ : Windows で cmd から IP アドレスを設定する
C:\>netsh int ip show int
Idx Met MTU 状態 名前
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
35 35 1500 connected 内蔵 Wi-Fi
23 5 1500 disconnected 内蔵 NIC
...snip...
39 25 1500 connected イーサネット
netsh int ip show int
は netsh interface ipv4 show interface
の略
Index 39 が "イーサネット" なので、どちらを使っても同じインターフェースを指定できる。
C:\>netsh int show int
Admin State State Type Interface Name
-------------------------------------------------------------------------
有効 接続 専用 VMware Network Adapter VMnet8
有効 切断 専用 ASIX #1
有効 接続 専用 ASIX #2
有効 接続 専用 内蔵 Wi-Fi
有効 切断 専用 内蔵 NIC
netsh int show int
は netsh interface show interface
の省略形
こちらだと物理インターフェースのみ表示されるが Index が表示されない。 (名前の確認には使える)
netsh int ip set addr "<インターフェース名>|<インデックス番号>" static <アドレス> <マスク> <GW> <メトリック> <persistent>
実行例
netsh int ip set addr 39 static 192.168.100.10 255.255.255.0 192.168.100.254
netsh int ip set addr "イーサネット" static 192.168.100.10/24 gateway=192.168.100.254 store=active
/24 でマスクを指定すると GW は gateway=
が必要になる
store=active
を付けると再起動で設定が消える
C:\>netsh int ip show addr "<インターフェース名>|<インデックス番号>"
C:\>netsh int ip set addr 39 static 192.168.10.33 255.255.255.0 192.168.10.2 20
C:\>netsh int ip show addr 39
インターフェイスの構成 "イーサネット"
DHCP 有効: いいえ
IP アドレス: 192.168.10.33
サブネット プレフィックス: 192.168.10.0/24 (マスク 255.255.255.0)
デフォルト ゲートウェイ: 192.168.10.2
ゲートウェイ メトリック: 20
インターフェイス メトリック: 25
C:\>netsh int ip set addr "イーサネット" static 192.168.100.10/24 gate=192.168.100.254 gw=100
C:\>netsh int ip show addr 39
インターフェイスの構成 "イーサネット"
DHCP 有効: いいえ
IP アドレス: 192.168.100.10
サブネット プレフィックス: 192.168.100.0/24 (マスク 255.255.255.0)
デフォルト ゲートウェイ: 192.168.100.254
ゲートウェイ メトリック: 100
インターフェイス メトリック: 25
C:\>netsh int ip set addr 39 static 10.20.30.40/24
C:\>netsh int ip show addr 39
インターフェイスの構成 "イーサネット"
DHCP 有効: いいえ
IP アドレス: 10.20.30.40
サブネット プレフィックス: 10.20.30.0/24 (マスク 255.255.255.0)
インターフェイス メトリック: 25
コマンドラインから DHCP に設定する
C:\>netsh int ip set addr 39 dhcp
C:\>netsh int ip show addr 39
インターフェイスの構成 "イーサネット"
DHCP 有効: はい
インターフェイス メトリック: 25