macvlan을 통해 네트워크 네임스페이스를 인터페이스 장치에 바인딩하는 방법

macvlan을 통해 네트워크 네임스페이스를 인터페이스 장치에 바인딩하는 방법

다음 명령을 사용하여 새 네트워크 네임스페이스를 네트워크 장치에 연결하려고 합니다.

# create macvlan and associate it to network device in bride mode
ip link add macvlan1 link dev1 type macvlan mode bridge

# create new netwrok namespace
ip netns add net1

# associate the macvlan to the nbew namespace
ip link set macvlan1 netns net1

# set macvlan to up
ip netns exec net1 ifconfig macvlan1 up

새 네임스페이스에서 ping을 시도하면 "연결: 네트워크에 연결할 수 없음" 오류가 반환됩니다.


편집하다:

ip addr show dev1:
4: dev1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 68:05:ca:8e:82:d8 brd ff:ff:ff:ff:ff:ff
inet 192.168.65.107/24 brd 192.168.65.255 scope global dynamic dev1
   valid_lft 490223sec preferred_lft 490223sec
inet6 fe80::d257:2f1:9c21:3a13/64 scope link 
   valid_lft forever preferred_lft forever

ip route:
default via 192.168.65.1 dev dev1  proto static  metric 100 
default via 25.25.40.1 dev ethernet0  metric 1000 
25.25.40.0/24 dev ethernet0  proto kernel  scope link  src 25.25.40.143 
169.254.0.0/16 dev dev1  scope link  metric 1000 
192.168.1.4 via 192.168.65.1 dev dev1  proto dhcp  metric 100 
192.168.65.0/24 dev dev1  proto kernel  scope link  src 192.168.65.107  metric 100 

답변1

xterm네트워크 네임스페이스에서 시작하는 것이 좋습니다 ip netns exec .... 이렇게 하면 입력 시간이 많이 절약됩니다.

네임스페이스 에서 볼 수 있듯이 ip -n net1 link list네트워크 인터페이스는 macvlan1( 및 lo)입니다. 그렇다면 당신이 해야 할 일은

ip -n net1 addr add 192.168.65.100/24 dev macvlan1

(그 전에 link set macvlan1 up). 이 점에 유의하시기 바랍니다~해야 한다192.168.65.100/24경로는 네트워크 네임스페이스 에 자동으로 추가되지만 macvlan1다음 명령을 사용하여 확인하세요.

ip -n net1 route

이제 기본 네트워크 네임스페이스에서 ping을 수행할 수 있습니다(유형이 "브리지"이므로).

ping 192.168.65.100

같은 방식으로 새 네임스페이스에서 기본 네트워크 네임스페이스 인터페이스를 ping할 수 있어야 합니다.

ip netns exec net1 ping 192.168.65.107

192.168.65.100이 모든 것은 네트워크의 다른 장치에서 주소를 사용하지 않는다고 가정합니다 . 그렇지 않으면 흥미로운 일이 발생할 수 있습니다.

관련 정보