■Cisco 1812JにPATを設定する(IPマスカレード) 普通のルータのように振る舞う最低限の設定 Client 172.31.31.0/24 --> (Fa1)172.31.31.254/32(Fa0)10.10.10.10/24 --> WAN 10.10.10.254/24 ■debian1側をClientとして172.31.31.10/24のIPを割り当て $ sudo /sbin/ifconfig eth2 172.31.31.10/24 up ■1812J側のFa1を172.31.31.254(inside)に。 R1>enable Password: R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1#show running-config | section interface FastEthernet1 interface FastEthernet1 no ip address shutdown duplex auto speed auto R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface fastEthernet 1 R1(config-if)#ip nat inside R1(config-if)#ip address 172.31.31.254 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#end R1#show running-config | section interface FastEthernet1 interface FastEthernet1 ip address 172.31.31.254 255.255.255.0 ip nat inside ip virtual-reassembly duplex auto speed auto ■ClientとFa1との疎通を確認 $ ping -c 2 172.31.31.254 PING 172.31.31.254 (172.31.31.254) 56(84) bytes of data. 64 bytes from 172.31.31.254: icmp_req=1 ttl=255 time=0.515 ms 64 bytes from 172.31.31.254: icmp_req=2 ttl=255 time=0.482 ms --- 172.31.31.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.482/0.498/0.515/0.027 ms R1#ping 172.31.31.10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.31.31.10, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms ■Fa0を10.10.10.10/32(outside)に。 R1#show running-config | section interface FastEthernet0 interface FastEthernet0 no ip address shutdown duplex auto speed auto R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface fastEthernet 0 R1(config-if)#ip nat outside R1(config-if)#ip address 10.10.10.10 255.255.255.0 R1(config-if)#no cdp enable R1(config-if)#end R1#show running-config | section interface FastEthernet0 interface FastEthernet0 ip address 10.10.10.10 255.255.255.0 ip nat outside ip virtual-reassembly duplex auto speed auto no cdp enable R1#ping 10.10.10.10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms ■debian2を10.10.10.254/24(WAN)に。 $ sudo /sbin/ifconfig eth2 10.10.10.254/24 up $ ping -c 2 10.10.10.10 PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. 64 bytes from 10.10.10.10: icmp_req=1 ttl=255 time=0.597 ms 64 bytes from 10.10.10.10: icmp_req=2 ttl=255 time=0.521 ms --- 10.10.10.10 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.521/0.559/0.597/0.038 ms ■この状態だとルーティングを設定しても到達しない。 $ sudo route add -net 10.10.10.0/24 gw 172.31.31.254 $ ping -c 2 10.10.10.254 PING 10.10.10.254 (10.10.10.254) 56(84) bytes of data. --- 10.10.10.254 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1008ms $ sudo route add -net 172.31.31.0/24 gw 10.10.10.10 $ ping -c 2 172.31.31.10 PING 172.31.31.10 (172.31.31.10) 56(84) bytes of data. --- 172.31.31.10 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1999ms ■WANという名前でoverloadを定義する。 R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#ip nat pool WAN 172.31.31.253 172.31.31.253 prefix 24 R1(config)#ip nat inside source list 7 pool WAN overload R1(config)#access-list 7 permit 172.31.31.0 0.0.0.255 R1(config)#end ■debian2のWAN側でのパケットキャプチャ WAN側にはCDPパケットが流れない。 22:30:23.725723 IP 172.31.31.10 > 10.10.10.254: ICMP echo request, id 7659, seq 1, length 64 22:30:23.725762 IP 10.10.10.254 > 172.31.31.10: ICMP echo reply, id 7659, seq 1, length 64 22:30:24.725051 IP 172.31.31.10 > 10.10.10.254: ICMP echo request, id 7659, seq 2, length 64 22:30:24.725071 IP 10.10.10.254 > 172.31.31.10: ICMP echo reply, id 7659, seq 2, length 64 ■debian1のClient側でのパケットキャプチャ Client側にもCisco製品が無ければCDPパケットは不要。頻度は1回/分 22:35:05.619283 IP 172.31.31.10 > 10.10.10.254: ICMP echo request, id 7733, seq 1, length 64 22:35:05.619906 IP 10.10.10.254 > 172.31.31.10: ICMP echo reply, id 7733, seq 1, length 64 22:35:06.620345 IP 172.31.31.10 > 10.10.10.254: ICMP echo request, id 7733, seq 2, length 64 22:35:06.621007 IP 10.10.10.254 > 172.31.31.10: ICMP echo reply, id 7733, seq 2, length 64 22:35:07.248698 22:35:17.248985 22:35:27.249263 22:35:29.585362 CDPv2, ttl: 180s, Device-ID 'R1.localdomain', length 342 22:35:37.249541 22:35:47.249820 22:35:57.250100 22:36:07.250403 22:36:17.250658 22:36:27.250938 22:36:29.587027 CDPv2, ttl: 180s, Device-ID 'R1.localdomain', length 342 ■Fa1側を一度停止 R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config-if)#shutdown R1(config-if)#end R1# May 9 23:35:20.303: %LINK-5-CHANGED: Interface FastEthernet1, changed state to administratively down May 9 23:35:21.303: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to down ■クライアント側は24bitマスクなので、IP設定を変えてみる。 $ env LANG=C /sbin/ifconfig eth2 | grep inet | awk '{print $2,$4}' addr:172.31.31.10 Mask:255.255.255.0 $ sudo /sbin/ifconfig eth2 172.31.31.11/24 up $ env LANG=C /sbin/ifconfig eth2 | grep inet | awk '{print $2,$4}' addr:172.31.31.11 Mask:255.255.255.0 $ sudo route add -net 10.10.10.0/24 gw 172.31.31.254 ■Fa1側を再開 R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface fastEthernet 1 R1(config-if)#end May 9 23:35:39.795: %LINK-3-UPDOWN: Interface FastEthernet1, changed state to up May 9 23:35:57.915: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to up ■debian1側からの確認 $ ping -c 2 10.10.10.254 PING 10.10.10.254 (10.10.10.254) 56(84) bytes of data. 64 bytes from 10.10.10.254: icmp_req=1 ttl=63 time=2.02 ms 64 bytes from 10.10.10.254: icmp_req=2 ttl=63 time=0.712 ms --- 10.10.10.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.712/1.368/2.025/0.657 ms ■debian2側からの確認 $ ping -c 2 172.31.31.11 PING 172.31.31.11 (172.31.31.11) 56(84) bytes of data. 64 bytes from 172.31.31.254: icmp_req=1 ttl=63 time=0.788 ms 64 bytes from 172.31.31.254: icmp_req=2 ttl=63 time=0.672 ms --- 172.31.31.11 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.672/0.730/0.788/0.058 ms ■debian1側にeth3を設定 $ sudo /sbin/ifconfig eth3 172.31.31.12/24 up $ ping -c 2 172.31.31.254 PING 172.31.31.254 (172.31.31.254) 56(84) bytes of data. 64 bytes from 172.31.31.254: icmp_req=1 ttl=255 time=1.61 ms 64 bytes from 172.31.31.254: icmp_req=2 ttl=255 time=0.510 ms --- 172.31.31.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.510/1.063/1.616/0.553 ms $ ping -c 2 10.10.10.254 PING 10.10.10.254 (10.10.10.254) 56(84) bytes of data. 64 bytes from 10.10.10.254: icmp_req=1 ttl=63 time=0.920 ms 64 bytes from 10.10.10.254: icmp_req=2 ttl=63 time=0.702 ms --- 10.10.10.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.702/0.811/0.920/0.109 ms ■VLAN側には172.31.30.254/24(inside)に設定 Fa2~9のインターフェイスに直接「ip nat」コマンドは使えないが、 VLANであれば使える。 R1#show running-config | section interface Vlan1 interface Vlan1 no ip address R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface vlan 1 R1(config-if)#ip nat inside R1(config-if)#ip address 172.31.30.254 255.255.255.0 R1(config)#access-list 7 permit 172.31.30.1 0.0.0.254 R1(config)#end ■debian1のeth3のIP設定を変更 $ sudo /sbin/ifconfig eth3 172.31.30.30/24 up $ sudo route add -net 10.10.10.0/24 gw 172.31.30.254 $ ping -c 2 172.31.30.254 PING 172.31.30.254 (172.31.30.254) 56(84) bytes of data. 64 bytes from 172.31.30.254: icmp_req=1 ttl=255 time=2.51 ms 64 bytes from 172.31.30.254: icmp_req=2 ttl=255 time=0.727 ms --- 172.31.30.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.727/1.619/2.512/0.893 ms $ ping -c 2 10.10.10.10 PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data. 64 bytes from 10.10.10.10: icmp_req=1 ttl=255 time=1.39 ms 64 bytes from 10.10.10.10: icmp_req=2 ttl=255 time=0.748 ms --- 10.10.10.10 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.748/1.069/1.390/0.321 ms ■debian2側にルーティング設定 $ sudo route add -net 172.31.30.0/24 gw 10.10.10.10 ■debian1側からWAN側へ。 $ ping -c 2 10.10.10.254 PING 10.10.10.254 (10.10.10.254) 56(84) bytes of data. 64 bytes from 10.10.10.254: icmp_req=1 ttl=63 time=1.59 ms 64 bytes from 10.10.10.254: icmp_req=2 ttl=63 time=1.73 ms --- 10.10.10.254 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 1.596/1.665/1.734/0.069 ms ■ここまで分かればFa1は外せる。