Назад | Перейти на главную страницу

Как мне получить IP-пакеты, перенаправленные / маршрутизируемые в / из моей сети Infiniband

У меня две сети.

Один из них - это стандартная сеть Ethernet с IP. Вторая сеть - это Infiniband, которая в дополнение к некоторым настраиваемым протоколам может передавать IPoIB (IP поверх Infiniband).

Маршрутизатор, находящийся в этой сети, может пинговать оба хоста Infiniband с IP-адресами 10.10.10.x, а также может пинговать локальные адреса xx.xxx.79.x.

Проблема, с которой я столкнулся, заключается в том, что машины, находящиеся в сети Ethernet, не могут пинговать или получать доступ к машинам в сети Infiniband, несмотря на то, что на маршрутизаторе включена пересылка ipv4.

Можете ли вы пересылать пакеты в / из сетей IP и IPoIB Infiniband?

Как и просили, вот моя таблица маршрутизации.

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xx.xxx.66.61    0.0.0.0         UG    100    0        0 eth2
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ib0
xx.xxx.66.60    0.0.0.0         255.255.255.252 U     0      0        0 eth2
xx.xxx.79.128   0.0.0.0         255.255.255.128 U     0      0        0 bond0
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 bond0

eth2 - это общедоступный Интернет, bond0 - это частная LAN, ib0 - это сеть infiniband. Этот компьютер является маршрутизатором по умолчанию для обеих сетей.

Примечание: эта ссылка предполагает, что это возможно. http://www.spinics.net/lists/linux-rdma/msg06784.html Хотя впоследствии я установил это на тестовой машине со старым оборудованием DDR и до сих пор вижу, что это не работает. Вы также не можете подключать устройства ib0


Обновление и ответ.

Проблема, с которой я столкнулся, на самом деле была связана с маршрутизацией. Так что да, это работает. В моей конкретной настройке у некоторых хостов были карты Infiniband и Ethernet в одной сети. Таким образом, ответы отправлялись обратно на клиентский пинг по другому маршруту. Ответ в Linux - настроить фильтрация обратного пути.

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2

Тогда это работает.

Ваши маршруты настроены правильно.

Убедитесь, что хосты в сети Infiniband используют этот маршрутизатор в качестве шлюза по умолчанию или что их шлюз по умолчанию имеет маршрут для префикса вашей локальной сети Ethernet, настроенный через этот маршрутизатор.

Также убедитесь, что на маршрутизаторе отсутствуют какие-либо правила брандмауэра, которые препятствовали бы подключению, и что вы не пытаетесь выполнить NAT (в этом случае в этом нет необходимости; ограничение IP-адресов RFC1918 заключается в том, что вы не можете объявить их в общедоступном Интернете, не говоря уже о том, что вы не можете использовать их внутри вместе с маршрутизируемыми IP-адресами). В этом случае, если вы хотите, чтобы IP-адреса Infiniband имели доступ в Интернет, вам следует преобразовать их через NAT на пограничном шлюзе.

Похоже, что этот маршрутизатор на самом деле может быть вашим пограничным шлюзом. Если это так и вы используете NAT для обеспечения доступа в Интернет для подсети RFC1918, вам следует добавить -j RETURN rules в начале ваших цепочек по умолчанию для предварительной и последующей маршрутизации NAT, где источником является адрес RFC1918, а местом назначения является одна из других ваших подсетей, чтобы предотвратить возникновение NAT в этом случае. В качестве альтернативы только SNAT эти пакеты с выходным интерфейсом eth2 и адресом источника RFC1918.

Вы также можете проверить настройки MTU на своих интерфейсах, хотя это не должно вызывать проблем с размером пинга по умолчанию. MTU должен быть установлен на самый большой размер пакета, который интерфейс может пересылать на носителе уровня 2 без потери пакетов. Если он слишком низкий, это также может вызвать проблемы с подключением. Типичное значение для Ethernet - 1500 байт.

Помимо этого, конечно, вы можете пересылать пакеты между IP-сетями независимо от среды уровня 2, благодаря многоуровневой модели. Большая часть Интернета действительно работает именно так (подумайте о кабельных модемах, которые представляют собой DOCSIS уровня 2 для Ethernet-мостов, а также подумайте обо всех модульных маршрутизаторах Cisco с интерфейсами MPLS и Ethernet, а также о миллиардах других типов устройств).

Для этого не нужен мост.

Также не стоит использовать route из net-tools, потому что он стар как время и не имеет многих функций (таких как правильная идентификация вашего маршрута черной дыры для глобального вещания как такового). Вместо этого используйте ip route из iproute2.