Changes between Initial Version and Version 1 of TipAndDoc/VM/network/route


Ignore:
Timestamp:
Jun 26, 2009 4:21:49 AM (15 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TipAndDoc/VM/network/route

    v1 v1  
     1[[PageOutline]] 
     2 
     3 = static route = 
     4 * see also wiki:TipAndDoc/network/iproute 
     5 
     6 * wiki:TipAndDoc/network/vmtest#networkmap のネットワークを使用 
     7  
     8 = centos-inner = 
     9 * see wiki:TipAndDoc/network/vmtest/ping#centos-inner-ubuntu-outer 
     10  
     11 * 10.0.0.0/16に対するルートを設定するだけでよい 
     12 
     13 == 失敗例 == 
     14 * GWを指定しない例 
     15 
     16 * centos-inner ~]$ sudo route add -net 10.0.0.0/16 dev eth1 
     17 * centos-inner ~]$ route 
     18{{{ 
     19Kernel IP routing table 
     20Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
     21192.168.50.0    *               255.255.255.0   U     0      0        0 eth0 
     2210.2.0.0        *               255.255.0.0     U     0      0        0 eth2 
     2310.0.0.0        *               255.255.0.0     U     0      0        0 eth1 
     2410.1.0.0        *               255.255.0.0     U     0      0        0 eth1 
     25169.254.0.0     *               255.255.0.0     U     0      0        0 eth2 
     26default         192.168.50.1    0.0.0.0         UG    0      0        0 eth0 
     27}}} 
     28 * centos-inner ~]$ ping 10.0.0.10 -c 1 
     29{{{ 
     30PING 10.0.0.10 (10.0.0.10) 56(84) bytes of data. 
     31From 10.1.0.110 icmp_seq=1 Destination Host Unreachable 
     32 
     33--- 10.0.0.10 ping statistics --- 
     341 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms 
     35}}} 
     36 
     37 * ルート削除 
     38   * centos-inner ~]$ sudo route del -net 10.0.0.0/16 dev eth1 
     39 
     40 == 正しい設定 == 
     41 * GWを指定 
     42 
     43 * centos-inner ~]$ sudo route add -net 10.0.0.0/16 gw 10.1.0.254 dev eth1 
     44 * centos-inner ~]$ route 
     45{{{ 
     46Kernel IP routing table 
     47Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
     48192.168.50.0    *               255.255.255.0   U     0      0        0 eth0 
     4910.2.0.0        *               255.255.0.0     U     0      0        0 eth2 
     5010.0.0.0        10.1.0.254      255.255.0.0     UG    0      0        0 eth1 
     5110.1.0.0        *               255.255.0.0     U     0      0        0 eth1 
     52169.254.0.0     *               255.255.0.0     U     0      0        0 eth2 
     53default         192.168.50.1    0.0.0.0         UG    0      0        0 eth0 
     54}}} 
     55 * centos-inner ~]$ ip route 
     56{{{ 
     57192.168.50.0/24 dev eth0  proto kernel  scope link  src 192.168.50.110 
     5810.2.0.0/16 dev eth2  proto kernel  scope link  src 10.2.0.110 
     5910.0.0.0/16 via 10.1.0.254 dev eth1 
     6010.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.0.110 
     61169.254.0.0/16 dev eth2  scope link 
     62default via 192.168.50.1 dev eth0 
     63}}} 
     64 
     65 * 同じ作用を持つコマンド例 
     66   * sudo route add -net 10.0.0.0/16 gw 10.1.0.254 
     67   * sudo route add -net 10.0.0.0 netmask 255.255.0.0 gw 10.1.0.254 
     68   * sudo ip route add 10.0.0.0/16 via 10.1.0.254 
     69     * => wiki:TipAndDoc/network/iproute 
     70 
     71 === 結果 === 
     72 * centos-inner ~]$ ping 10.0.0.10 -c 1 
     73{{{ 
     74PING 10.0.0.10 (10.0.0.10) 56(84) bytes of data. 
     7564 bytes from 10.0.0.10: icmp_seq=1 ttl=63 time=7.59 ms 
     76 
     77--- 10.0.0.10 ping statistics --- 
     781 packets transmitted, 1 received, 0% packet loss, time 0ms 
     79rtt min/avg/max/mdev = 7.595/7.595/7.595/0.000 ms 
     80}}} 
     81   1. centos-inner:eth1 
     82{{{ 
     8323:30:59.173104 IP 10.1.0.110 > 10.0.0.10: ICMP echo request, id 36879, seq 1, length 64 
     8423:30:59.177896 IP 10.0.0.10 > 10.1.0.110: ICMP echo reply, id 36879, seq 1, length 64 
     85}}} 
     86   1. ubuntu-router:eth1 
     87{{{ 
     8823:30:59.228193 IP 10.1.0.110 > 10.0.0.10: ICMP echo request, id 36879, seq 1, length 64 
     8923:30:59.231724 IP 10.0.0.10 > 10.1.0.110: ICMP echo reply, id 36879, seq 1, length 64 
     90}}} 
     91   1. ubuntu-router:eth0 
     92{{{ 
     9323:30:59.229467 IP 10.1.0.110 > 10.0.0.10: ICMP echo request, id 36879, seq 1, length 64 
     9423:30:59.231524 IP 10.0.0.10 > 10.1.0.110: ICMP echo reply, id 36879, seq 1, length 64 
     95}}} 
     96   1. ubuntu-outer:eth1 
     97{{{ 
     9823:30:59.230167 IP 10.1.0.110 > 10.0.0.10: ICMP echo request, id 36879, seq 1, length 64 
     9923:30:59.230345 IP 10.0.0.10 > 10.1.0.110: ICMP echo reply, id 36879, seq 1, length 64 
     100}}} 
     101 
     102 === 不十分な点 === 
     103 * パケットの往路と復路が異なったまま 
     104   * see also wiki:TipAndDoc/network/vmtest/ping#ubuntu-outerrouterubuntu-inner-AB 
     105   * iprouteでruleを設定しないと解決できない 
     106 
     107 * ubuntu-outer <=(router)=> centos-inner 
     108 
     109 * パケット経路 
     110   1. ubuntu-outer:eth1 
     111   1. router:eth0 
     112   1. router:eth2 
     113   1. centos-inner:eth2 
     114   1. centos-inner:eth1 
     115   1. router:eth1 
     116   1. router:eth0 
     117   1. ubuntu-outer:eth1 
     118 
     119 * ubuntu-outer:~$ ping 10.2.0.110 -c 1 
     120{{{ 
     121PING 10.2.0.110 (10.2.0.110) 56(84) bytes of data. 
     12264 bytes from 10.2.0.110: icmp_seq=1 ttl=63 time=3.79 ms 
     123 
     124--- 10.2.0.110 ping statistics --- 
     1251 packets transmitted, 1 received, 0% packet loss, time 0ms 
     126rtt min/avg/max/mdev = 3.792/3.792/3.792/0.000 ms 
     127}}} 
     128   1. ubuntu-outer:eth1 
     129{{{ 
     13003:31:52.084210 IP 10.0.0.10 > 10.2.0.110: ICMP echo request, id 14881, seq 1, length 64 
     13103:31:52.087987 IP 10.2.0.110 > 10.0.0.10: ICMP echo reply, id 14881, seq 1, length 64 
     132}}} 
     133   1. ubuntu-router:eth0 
     134{{{ 
     13503:31:52.086225 IP 10.0.0.10 > 10.2.0.110: ICMP echo request, id 14881, seq 1, length 64 
     13603:31:52.088104 IP 10.2.0.110 > 10.0.0.10: ICMP echo reply, id 14881, seq 1, length 64 
     137}}} 
     138   1. ubuntu-router:eth2 
     139{{{ 
     14003:31:52.086987 IP 10.0.0.10 > 10.2.0.110: ICMP echo request, id 14881, seq 1, length 64 
     141}}} 
     142   1. centos-inner:eth2 
     143{{{ 
     14403:31:51.922144 IP 10.0.0.10 > 10.2.0.110: ICMP echo request, id 14881, seq 1, length 64 
     145}}} 
     146   1. centos-inner:eth1 
     147{{{ 
     14803:31:51.924352 IP 10.2.0.110 > 10.0.0.10: ICMP echo reply, id 14881, seq 1, length 64 
     149}}} 
     150   1. ubuntu-router:eth1 
     151{{{ 
     15203:31:52.088093 IP 10.2.0.110 > 10.0.0.10: ICMP echo reply, id 14881, seq 1, length 64 
     153}}} 
     154 
     155 = centos-outer = 
     156 * 上記のようにcentos-inner側のみ設定しても、centos-outerのGW設定が正しくないので通信できない 
     157   * centos-inner -> 10.0.0.20(centos-outer) 
     158     * 100% packet loss 
     159 
     160 * centos-outer ~]$ sudo route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.0.0.254 
     161 * centos-outer ~]$ route 
     162{{{ 
     163Kernel IP routing table 
     164Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
     165192.168.40.0    *               255.255.255.0   U     0      0        0 eth0 
     16610.0.0.0        *               255.255.0.0     U     0      0        0 eth1 
     16710.1.0.0        10.0.0.254      255.255.0.0     UG    0      0        0 eth1 
     168169.254.0.0     *               255.255.0.0     U     0      0        0 eth1 
     169default         192.168.40.1    0.0.0.0         UG    0      0        0 eth0 
     170}}} 
     171 * centos-inner ~]$ ping 10.0.0.20 -c 1 
     172{{{ 
     173PING 10.0.0.20 (10.0.0.20) 56(84) bytes of data. 
     17464 bytes from 10.0.0.20: icmp_seq=1 ttl=63 time=11.2 ms 
     175 
     176--- 10.0.0.20 ping statistics --- 
     1771 packets transmitted, 1 received, 0% packet loss, time 0ms 
     178rtt min/avg/max/mdev = 11.297/11.297/11.297/0.000 ms 
     179}}} 
     180   1. centos-inner:eth1 
     181{{{ 
     18202:37:22.195583 IP 10.1.0.110 > 10.0.0.20: ICMP echo request, id 36626, seq 1, length 64 
     18302:37:22.201576 IP 10.0.0.20 > 10.1.0.110: ICMP echo reply, id 36626, seq 1, length 64 
     184}}} 
     185   1. ubuntu-router:eth1 
     186{{{ 
     18702:37:22.301243 IP 10.1.0.110 > 10.0.0.20: ICMP echo request, id 36626, seq 1, length 64 
     18802:37:22.310362 IP 10.0.0.20 > 10.1.0.110: ICMP echo reply, id 36626, seq 1, length 64 
     189}}} 
     190   1. ubuntu-router:eth0 
     191{{{ 
     19202:37:22.304480 IP 10.1.0.110 > 10.0.0.20: ICMP echo request, id 36626, seq 1, length 64 
     19302:37:22.310159 IP 10.0.0.20 > 10.1.0.110: ICMP echo reply, id 36626, seq 1, length 64 
     194}}} 
     195   1. centos-outer:eth1 
     196{{{ 
     19702:37:22.012423 IP 10.1.0.110 > 10.0.0.20: ICMP echo request, id 36626, seq 1, length 64 
     19802:37:22.013349 IP 10.0.0.20 > 10.1.0.110: ICMP echo reply, id 36626, seq 1, length 64 
     199}}} 
     200 
     201 * 同様に、10.2.0.0/16側のルート設定も必要 
     202   * ubuntu-inner-AB:~$ ping 10.0.0.20 -c 1 => loss 
     203     1. centos-outer:eth1 
     204{{{ 
     20502:41:53.171490 IP 10.2.0.30 > 10.0.0.20: ICMP echo request, id 9759, seq 1, length 64 
     206}}} 
     207     1. centos-outer:eth0 
     208{{{ 
     20902:41:53.172303 IP 10.0.0.20 > 10.2.0.30: ICMP echo reply, id 9759, seq 1, length 64 
     210}}} 
     211   * centos-outer ~]$ sudo route add -net 10.2.0.0/16 gw 10.0.0.254 
     212   * centos-outer ~]$ route 
     213{{{ 
     214Kernel IP routing table 
     215Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
     216192.168.40.0    *               255.255.255.0   U     0      0        0 eth0 
     21710.2.0.0        10.0.0.254      255.255.0.0     UG    0      0        0 eth1 
     21810.0.0.0        *               255.255.0.0     U     0      0        0 eth1 
     21910.1.0.0        10.0.0.254      255.255.0.0     UG    0      0        0 eth1 
     220169.254.0.0     *               255.255.0.0     U     0      0        0 eth1 
     221default         192.168.40.1    0.0.0.0         UG    0      0        0 eth0 
     222}}} 
     223   * centos-outer ~]$ ip route 
     224{{{ 
     225192.168.40.0/24 dev eth0  proto kernel  scope link  src 192.168.40.20 
     22610.2.0.0/16 via 10.0.0.254 dev eth1 
     22710.0.0.0/16 dev eth1  proto kernel  scope link  src 10.0.0.20 
     22810.1.0.0/16 via 10.0.0.254 dev eth1 
     229169.254.0.0/16 dev eth1  scope link 
     230default via 192.168.40.1 dev eth0 
     231}}} 
     232   * これで正常に通信できるようになる 
     233 
     234 = static route + IP MASQUERADE = 
     235 * see also wiki:TipAndDoc/network/vmtest/masquerade#needroute 
     236 
     237 * centos-outer ~]$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
     238   * これでWANと通信できるようになる 
     239   * ubuntu-inner-AB:~$ ping 202.12.27.33 -c 1 
     240{{{ 
     241PING 202.12.27.33 (202.12.27.33) 56(84) bytes of data. 
     24264 bytes from 202.12.27.33: icmp_seq=1 ttl=238 time=16.5 ms 
     243 
     244--- 202.12.27.33 ping statistics --- 
     2451 packets transmitted, 1 received, 0% packet loss, time 0ms 
     246rtt min/avg/max/mdev = 16.543/16.543/16.543/0.000 ms 
     247}}} 
     248 
     249 == DNS == 
     250 * /etc/resolv.conf 
     251{{{ 
     252nameserver 130.158.XY.ZZ5 
     253nameserver 130.158.XY.ZZ6 
     254}}} 
     255 
     256 * 何故か名前解決できない 
     257 * ubuntu-router:~$ ping www.coins.tsukuba.ac.jp -c 1 
     258{{{ 
     259ping: unknown host www.coins.tsukuba.ac.jp 
     260}}} 
     261   * ubuntu-router:eth0 
     262{{{ 
     26303:00:02.915007 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ5 unreachable - admin prohibited, length 77 
     26403:00:02.918149 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ6 unreachable - admin prohibited, length 77 
     26503:00:02.920515 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ5 unreachable - admin prohibited, length 77 
     26603:00:02.922796 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ6 unreachable - admin prohibited, length 77 
     26703:00:02.925276 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ5 unreachable - admin prohibited, length 77 
     26803:00:02.928189 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ6 unreachable - admin prohibited, length 77 
     26903:00:07.924515 IP 10.0.0.20 > 10.0.0.254: ICMP host 130.158.XY.ZZ6 unreachable - admin prohibited, length 77 
     270}}} 
     271 * centos-outer ~]$ sudo iptables -L 
     272{{{ 
     273Chain INPUT (policy ACCEPT) 
     274target     prot opt source               destination 
     275RH-Firewall-1-INPUT  all  --  anywhere             anywhere 
     276 
     277Chain FORWARD (policy ACCEPT) 
     278target     prot opt source               destination 
     279RH-Firewall-1-INPUT  all  --  anywhere             anywhere 
     280 
     281Chain OUTPUT (policy ACCEPT) 
     282target     prot opt source               destination 
     283 
     284Chain RH-Firewall-1-INPUT (2 references) 
     285target     prot opt source               destination 
     286ACCEPT     all  --  anywhere             anywhere 
     287ACCEPT     icmp --  anywhere             anywhere            icmp any 
     288ACCEPT     esp  --  anywhere             anywhere 
     289ACCEPT     ah   --  anywhere             anywhere 
     290ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns 
     291ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp 
     292ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp 
     293ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
     294ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
     295REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
     296}}} 
     297   * おそらくreject-with icmp-host-prohibitedがネックなのだが、とりあえずfilterをflushして対応(FW無効と同義なので注意) 
     298   * centos-outer ~]$ sudo iptables -F 
     299     * centos-outer ~]$ sudo iptables -L 
     300{{{ 
     301Chain INPUT (policy ACCEPT) 
     302target     prot opt source               destination 
     303 
     304Chain FORWARD (policy ACCEPT) 
     305target     prot opt source               destination 
     306 
     307Chain OUTPUT (policy ACCEPT) 
     308target     prot opt source               destination 
     309 
     310Chain RH-Firewall-1-INPUT (0 references) 
     311target     prot opt source               destination 
     312}}} 
     313   * これで名前解決も出来るようになった 
     314   * ubuntu-inner-BB:~$ host M.ROOT-SERVERS.NET. 
     315{{{ 
     316M.ROOT-SERVERS.NET has address 202.12.27.33 
     317M.ROOT-SERVERS.NET has IPv6 address 2001:dc3::35 
     318}}}