2016-06-14 7 views
0

Я имею дело с LXC, iptables и маршрутом, и в этот момент я даже не уверен, что я делаю. Для простоты каждая политика в iptables установлена ​​в ACCEPT, а для пересылки в sysctl.conf в каждом хосте или контейнере задано значение 1.Ping через контейнер LXC

Моей целью здесь является возможность передать запрос ping через контейнер LXC, вне его хоста. Позвольте мне пояснить это:

Допустим, у меня есть клиент C, который хочет пинг сервера S, но у меня есть шлюз G между ними, и LXC контейнер L внутри G.

C (eth0 192.168 .0.3/24) < ---> (eth0 192.168.0.2/24) G (eth1 192.168.1.3/24) < ---> (eth0 192.168.1.4/24) S

затем, внутри G мы будет иметь:

(eth0 192.168.0.2/24) < ---> (virbr0 10.0.0.2/24) L (virbr1 10.0.1.3/24) < ---> (eth1 192.168.1.3/24)

Так что, в основном, я хотел бы пинговать S из C, но таким образом, чтобы запрос должен проходить через L (и, следовательно, через G), используя iptables и маршрут.

Надеюсь, вы можете мне помочь!

ответ

0

Не могли бы вы поделиться своей причиной для этого? Это для мониторинга? Маршрутизация через NAT излишне запутана.

Я предлагаю создание мостового сети, а не NAT-эд один, где:

  1. virbr0 перекрывается с eth0
  2. virbr1 перекрывается eth1

Таким образом, ваш Хост LXC может иметь IP-адрес 192.168.0.x и 192.168.1.x (т. Е. В той же подсети, что и eth0 и eth1).

Как только это будет сделано, создайте записи маршрутизации как на сервере, так и на клиенте, используя хост LXC в качестве маршрутизатора. По существу L заменяет G.

Присвоим 192.168.0.10 и 192.168.1.10 - L. Маршрутизованная сеть будет выглядеть следующим образом:

C (192.168.0.3) <--> (192.168.0.10) L (192.168.1.10) <--> S (192.168.1.4)

Позвольте мне знать, если это работает для вас, прежде чем я отправляю полный ответ. Совсем немного конфигурации.