Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Beeline-интернет в контейнере lxc  (Прочитано 880 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Beeline-интернет в контейнере lxc
« : 04 Ноября 2014, 20:10:50 »
Приветствую!
Вводная:
В качестве сервера стоит нетбук на атоме. Трудится непокладая рук - раздает интернеты от билайна в WiFi, XBMC, торренты, шары, VPN, LAMP и тд.
Когда первоначально настраивал - не осилил xl2tpd, и интернеты подключаются через богомерзкий NM.
Идея:
Недавно проникся идеей виртуализации, вкурил LXC. Поднял несколько контейнеров - отлично работает. Перенес туда VPN, веб-сервер и  тд.
Теперь очень хочу перенести в отдельный контейнер роутинг - благо, с легкостью физические интерфейсы прокидываются. Соответственно, хочется обойтись без NM.
И, слава виртуализации, я без особого геммороя смог играться с контейнером как пожелаю, не опасаясь за хост. Это позволило раскурить xl2tpd - и ура - тунель устанавливается!
Проблема:
Пинги идут, домены резолвятся - но интернета нету. То есть ping ya.ru - работает, а вот wget ya.ru - зависает на "ожидание ответа".
Была такая проблема изначально при настройке NM - пролечил правилами Iptables, вот такими:
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu
-A OUTPUT -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu
Так же поиграл с mtu - от 1400 до 1500 - ноль эмоций.
Куда еще копать - хз, гуглинг - ничего не дает, даже не особо понятно как запрос делать.
Хочется поставить эксперимент и на хостовой машине нативно подключится - но боюсь сломать работающее - недопустимо.
Прошу совета, куда покопать можно.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #1 : 05 Ноября 2014, 00:16:01 »
Когда первоначально настраивал - не осилил xl2tpd, и интернеты подключаются через богомерзкий NM.
Это чем же он богомерзкий, объясните пожалуйста.

P.S.
Роутинг оставьте там, где интерфейсы физически находятся. Не надо создавать себе проблемы на ровном месте.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #2 : 06 Ноября 2014, 08:10:50 »
Богомерзок он как минимум тем, что настраивать его только из гуя можно. А я гном снес, да.
А интерфейсы нативно пробрасываются в контейнер, они там "физически" после проброса и находятся.
Я кчтати поэкспериминтировал на хосте - ровно та же проблема. Так что все же хочу ее решить и от нм отказаться.
Мне бы хоть направление, куда копать - а то совсем турик. Пробовал вайршарк, но моих знаний явно не хватает для анализа пакетов :(

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #3 : 06 Ноября 2014, 17:27:25 »
Богомерзок он как минимум тем, что настраивать его только из гуя можно.
Можно и из консоли. А для управления уже настроенными интерфейсами даже есть родной nmcli.

Цитировать
А интерфейсы нативно пробрасываются в контейнер, они там "физически" после проброса и находятся.
Ещё раз, для непонятливых: хост УЖЕ является маршрутизатором для контейнеров.

Цитировать
Я кчтати поэкспериминтировал на хосте - ровно та же проблема. Так что все же хочу ее решить и от нм отказаться.
Показывайте iptables-save полностью.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #4 : 06 Ноября 2014, 22:22:22 »
nmcli - это я знаю. Но он пригоден только для nmcli con up/down, разве нет?
Как хост маршрутизирует интерфейс, если он его не видит в принципе? Это не виртуалка же, это контейнер. Разве не прав?
Iptables хоста:
# Generated by iptables-save v1.4.12 on Thu Nov  6 22:18:17 2014
*filter
:INPUT ACCEPT [485748:42106903]
:FORWARD ACCEPT [2188:119839]
:OUTPUT ACCEPT [36132558:33707059340]
:fail2ban-ssh - [0:0]
-A INPUT -p ipv6 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
-A OUTPUT -p ipv6 -j ACCEPT
-A fail2ban-ssh -j RETURN
COMMIT
# Completed on Thu Nov  6 22:18:18 2014
# Generated by iptables-save v1.4.12 on Thu Nov  6 22:18:18 2014
*nat
:PREROUTING ACCEPT [481640:38915536]
:INPUT ACCEPT [469548:38276582]
:OUTPUT ACCEPT [357997:32047919]
:POSTROUTING ACCEPT [38601:10224716]
-A PREROUTING -d XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 10.0.3.2:1723
-A PREROUTING -d XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.3.3:80
-A PREROUTING -d XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.3.3:443
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
-A POSTROUTING -d 10.0.3.2/32 -p tcp -m tcp --dport 1723 -j SNAT --to-source XXX.XXX.XXX.XXX
-A POSTROUTING -d 10.0.3.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source XXX.XXX.XXX.XXX
-A POSTROUTING -d 10.0.3.3/32 -p tcp -m tcp --dport 443 -j SNAT --to-source XXX.XXX.XXX.XXX
COMMIT
# Completed on Thu Nov  6 22:18:18 2014
# Generated by iptables-save v1.4.12 on Thu Nov  6 22:18:18 2014
*mangle
:PREROUTING ACCEPT [26786702:6042666140]
:INPUT ACCEPT [25516817:5008545267]
:FORWARD ACCEPT [1264313:1033077559]
:OUTPUT ACCEPT [36144085:33708778132]
:POSTROUTING ACCEPT [37417943:34743883622]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu
-A OUTPUT -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Thu Nov  6 22:18:18 2014

Iptables роутера делал идентичными (не орать про дыры - это временный вариант на время настройки, дабы ничего не мешало).
ppp0 - собственно l2tp тоннель к провайдеру.
10.0.3.0/24 - подсеть контейнеров.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #5 : 06 Ноября 2014, 23:37:09 »
Вы будете удивлены…
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Using_the_NetworkManager_Command_Line_Tool_nmcli.html

Пользователь решил продолжить мысль 06 Ноября 2014, 23:41:00:
-A POSTROUTING -d 10.0.3.2/32 -p tcp -m tcp --dport 1723 -j SNAT --to-source XXX.XXX.XXX.XXX
-A POSTROUTING -d 10.0.3.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source XXX.XXX.XXX.XXX
-A POSTROUTING -d 10.0.3.3/32 -p tcp -m tcp --dport 443 -j SNAT --to-source XXX.XXX.XXX.XXX

Вот этих правил я не понимаю. Скорее всего, они не нужны.

Пользователь решил продолжить мысль 06 Ноября 2014, 23:45:30:
-A INPUT -p ipv6 -j ACCEPT

На сколько я знаю, IPv6 трафик вообще не попадает в iptables.

Вместо conntrack/ctstate следует использовать state. Это одно и то же уже чёрт знает сколько времени, и state является предаочтительным (conntrack/ctstate - алиасы, которые могут быть выпилены в будущих релизах).

-A fail2ban-ssh -j RETURN
Бессмысленное правило, RETURN является действием по умолчанию для кастом цепочек.

А так, проблем в правилах не вижу, нужно исследовать систему полностью. Мершрутизация, пересылка…
« Последнее редактирование: 06 Ноября 2014, 23:45:30 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #6 : 07 Ноября 2014, 00:16:34 »
Ух ты, не совсем богомерзок! Спасибо!
Правила - нат соответствующих сервисов в контейнеры.
Сам я в ipt  не очень пока разбираюсь, делал по манам.
ipv6 - артефакт от настройки radvd, оно все в ip6tables
route получаю от провайдера, таблица при НМ и нативном подключении идентична.
Может tcpdump поможет? Мне в силу отсутствия знаний он не сильно помог, но чую, там можно найти ответ.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #7 : 07 Ноября 2014, 00:39:32 »
Нат у вас 5 строчками выше. А этих правил я не понимаю. Они подменяют адреса на какие-то другие. Неправильные.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Beeline-интернет в контейнере lxc
« Ответ #8 : 07 Ноября 2014, 01:22:17 »
В 14.04 nmcli уже умеет создавать и редактировать подключения?
Или начиная с 14.10?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #9 : 07 Ноября 2014, 01:38:27 »
Понятия не имею. Да и при чём тут нумерация релизов Ubuntu?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #10 : 08 Ноября 2014, 17:51:56 »
А может о моей проблеме?
Куда смотреть то?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #11 : 08 Ноября 2014, 18:14:39 »
Спойлер в конце первого поста https://forum.ubuntu.ru/index.php?topic=107492.0
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн pe4enbk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #12 : 08 Ноября 2014, 22:24:45 »
Для раздачи знаний мне хватает.
ПРоблема то в другом - тоннель есть, пинг есть - интернета нет.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Beeline-интернет в контейнере lxc
« Ответ #13 : 08 Ноября 2014, 22:58:36 »
Рад за вас.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.165 секунд. Запросов: 26.