Как заставить pppd создать ppp0 внутри пространства имен?

. или source сообщает оболочке о необходимости выполнения самого сценария, а не раскачивает вложенную оболочку, чтобы запустить ее.

Это позволяет сценарию изменять среду оболочки.

Например, если имеется сценарий, устанавливающий определенные переменные среды или определяющий псевдонимы, то он запускается без . определит эти вещи в субоболочке, и они исчезнут, когда субоболочка завершится. Запуск с . определит их в текущей оболочке.

2
29.04.2018, 18:20
1 ответ

Идеи:

1 )Пусть ponсоздаст устройство в пространстве имен по умолчанию, а затем переместит его в physical. Скриптируйте процесс.

2)pon— это просто скрипт, если вы на него посмотрите, он вызывает pppd. Скопируйте скрипт, измените его так, чтобы он использовал netns execдля вызова pppd. Посмотрите, решит ли это проблему. Как сказал Хауке, вам нужно устройство PPPoE в пространстве имен. Пара veth может быть необходимой, а может и не быть, в зависимости от того, что вы хотите делать с пространством имен.

Редактировать

Я не знаю вашей точной настройки (все файлы конфигурации ppp и pppoe отсутствуют в описании ), поэтому я попробовал упрощенную настройку, которая соединяет два пространства имен через PPPoE. Как и ожидалось, запуск pppdв пространстве имен приводит к появлению устройства ppp0в этом пространстве имен, поэтому я действительно не знаю, что пошло не так в вашей конфигурации.

Проверьте следующее (от имени пользователя root):

ip netns add ns1
ip netns add ns2
ip link add veth1 type veth peer name veth2
ip link set veth1 addr 52:54:00:00:00:01
ip link set veth2 addr 52:54:00:00:00:02
ip link set veth1 netns ns1
ip link set veth2 netns ns2
ip -n ns1 link set lo up
ip -n ns1 link set veth1 up
ip -n ns2 link set lo up
ip -n ns2 link set veth2 up    
ip netns exec ns1 pppd pty '/usr/sbin/pppoe -I veth1 -e 1:52:54:00:00:00:02 -m 1412' noaccomp nopcomp asyncmap 000a0008 noauth nocrtscts xonxoff local maxfail 0 192.168.36.1:192.168.36.2
ip netns exec ns2 pppd pty '/usr/sbin/pppoe -I veth2 -e 1:52:54:00:00:00:01 -m 1412' noaccomp nopcomp asyncmap 000a0008 noauth nocrtscts xonxoff local maxfail 0 192.168.36.2:192.168.36.1

Теперь запустите два xtermsв пространстве имен как пользователь username, чтобы вы могли посмотреть конфигурацию, протестировать с помощью pingи т. д. (Мне нравится иметь цветной фон для этого, чтобы я знал, что есть что):

ip netns exec ns1 su -c "xterm -bg yellow &" username
ip netns exec ns2 su -c "xterm -bg lime &" username

Если это работает, что-то в способе, которым ваши сценарии PPPoE -настраивают вещи, мешает. Если это не работает, что-то еще не так.

0
27.01.2020, 22:32

Теги

Похожие вопросы