네임스페이스 내에서 ppp0을 생성하도록 pppd를 얻으려면 어떻게 해야 합니까?

네임스페이스 내에서 ppp0을 생성하도록 pppd를 얻으려면 어떻게 해야 합니까?

나는 간단한 pppoe 연결을 가지고 있으며 잘 작동합니다. 간단한

# pon my-isp

장치 를 만듭니다 ppp0.

나는 다음과 같은 네임스페이스를 정의했습니다.

ip netns add physical

그러나 이후에

ip netns exec physical pon my-isp

ppp0전역 네임스페이스나 네임스페이스에서 생성되지 않았습니다 physical.

언급된 네임스페이스 내에서 ppp0을 어떻게 얻을 수 있나요?

답변1

아이디어:

1) pon기본 네임스페이스에 장치를 생성한 다음 physical프로세스를 .Script로 이동해 보겠습니다.

2) pon그냥 스크립트를 보면 을 호출하는데요 pppd. 스크립트를 복사해서 을 netns exec호출하는 데 사용되도록 수정 pppd하면 문제가 해결되는지 확인하세요. Hauke가 말했듯이 네임스페이스에는 PPPoE 장치가 필요합니다. 네임스페이스로 수행하려는 작업에 따라 veth 쌍이 필요할 수도 있고 필요하지 않을 수도 있습니다.

편집하다

정확한 설정을 모르기 때문에(모든 ppp 및 pppoe 구성 파일이 설명에 누락되어 있음) PPPoE를 통해 두 네임스페이스를 연결하는 간단한 설정을 시도했습니다. 예상한 대로 pppd네임스페이스에서 시작하면 ppp0장치가 해당 네임스페이스에 나타나므로 구성에 어떤 문제가 있는지 실제로 알 수 없습니다.

다음을 테스트합니다(루트로).

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 스크립트 설정 방식에 문제가 있는 것입니다. 작동하지 않으면 다른 문제가 있는 것입니다.

관련 정보