Нет маршрута к хосту только для внешнего IP-адреса класса C
Запущенный экземпляр VM на вычислительном узле может получить доступ ко всем внешним интернет-сайтам, кроме IP-адресов C-класса. Контроллер и вычислительные узлы были успешно установлены в соответствии с руководством по свободному стеку на Ubuntu.
[root @ vm3 ~] # wget http://www.sina.com.cn/ Решение www.sina.com.cn... 202.108.33.60 Подключение к www.sina.com.cn|202.108.33.60|:80... не удалось: нет маршрута к хосту.
Тем не менее, к внешним IP-адресам A-CLass и B-класса можно получить доступ успешно:
[root@vm3 ~]# wget http://www.163.com Resolving www.163.com... 60.207.246.98, 124.202.166.57 Connecting to www.163.com|60.207.246.98|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: “index.html.1”
Интерфейсы виртуальной машины:
[root @ vm3 ~] # ifconfig eth1 Link encap: Ethernet HWaddr FA: 16: 3E: 57: 1B: 57
адрес inet:192.168.0.215 Bcast:255.255.255.255 Маска:192.0.0.0 inet6 адрес: fe80::f816:3eff:fe57:1b57/64 Область действия: соединение UP BROADCAST RUNNING MULTICAST MTU:1450 Метрика: 1 пакеты RX:46213 ошибки: 0 отброшено: 0 переполнений: 0 кадр: 0 пакетов TX:42118 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий:0 txqueuelen:1000 байтов RX:13492902 (12,8 МиБ) байтов TX:39875879 (38,0 МиБ)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:58630 errors:0 dropped:0 overruns:0 frame:0 TX packets:58630 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:44931488 (42.8 MiB) TX bytes:44931488 (42.8 MiB) virbr0 Link encap:Ethernet HWaddr 52:54:00:D2:F5:28 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Маршруты на ВМ:
[root@vm3 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.169.254 192.168.0.200 255.255.255.255 UGH 0 0 0 eth1 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.0.0.0 0.0.0.0 192.0.0.0 U 1 0 0 eth1 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
Я создал общедоступную сеть, с которой запускается виртуальная машина. Публичная сеть - 192.168.0.0/24, а частная - 10.0.0.0/24. контроллер: 192.168.0.12/10.0.0.11 вычислить: 192.168.0.10/10.0.0.31
Если я добавлю маршрут для 202.108.33.60 явно, wget может работать:
Маршрут добавить 202.108.33.60 гв 192.168.0.1
[root@vm3 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 202.108.33.60 192.168.0.1 255.255.255.255 UGH 0 0 0 eth1 169.254.169.254 192.168.0.200 255.255.255.255 UGH 0 0 0 eth1 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.0.0.0 0.0.0.0 192.0.0.0 U 1 0 0 eth1 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
Кто-нибудь знает причину или дает какую-то помощь по устранению этой проблемы? Большое спасибо!
1 ответ
После нескольких дней анализа и раскопок я обнаружил, что причиной является запись маршрута "192.0.0.0 0.0.0.0 192.0.0.0 U 1 0 0 eth1", которая отфильтрует все IP-адреса C-Class как LAN(соседнюю сеть) и иногда www.sina.com.cn является таким хозяином. После того, как я изменил это, как показано ниже, www.sina.com.cn можно получить доступ.
192.0.0.0 0.0.0.0 255.0.0.0 U 1 0 0 eth1