내 시나리오는 다음과 같습니다.
단일 가상 머신에 연결된 단일 가상 네트워크에 연결된 고유한 고정 공용 및 개인 IP(IPv4)가 있는 두 개의 서로 다른 네트워크 인터페이스가 있습니다. eth1
보조 네트워크 인터페이스인 를 자체 네트워크 네임스페이스에 할당한 다음 해당 네임스페이스를 사용하여 MySQL 데이터베이스에 정보를 보내는 Python 애플리케이션을 실행하고 싶습니다 .
기본적으로 저는 이러한 애플리케이션 중 두 개를 단일 VM에서 동시에 실행하고 싶지만 데이터베이스가 두 개의 서로 다른 공용 IP 주소로부터 쿼리를 받을 수 있도록 별도의 네임스페이스 내에서 실행하려고 합니다. 네임스페이스를 사용하는 것이 제가 찾을 수 있는 최선의 선택이었습니다. 저는 Python 비트를 정렬했지만(netns용 Python 래퍼를 사용하고 있습니다) 네임스페이스의 이름 서버라고 생각하는 것에 어려움을 겪고 있습니다.
네임스페이스를 생성하기 위해 다음 명령을 실행하고 있습니다.
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
그런 다음 ping을 시도했는데 google.com
다음 오류가 발생했습니다.
ping: google.com: Temporary failure in name resolution
나는 내가 뭔가를 놓치고 있다는 것을 알고 있으며 네트워킹에 관해서는 큰 멍청하다는 것을 인정할 것입니다. 어떤 도움이라도 주시면 감사하겠습니다.
참고로: 저는 이 모든 것에 Azure 클라우드 서비스를 사용하고 있습니다. 두 네트워크 인터페이스 모두의 DNS 서버가 다음으로 설정되어 있습니다.가상 네트워크에서 상속IP 전달이 비활성화됩니다. 가상 네트워크의 주소 공간은 을 사용하는 10.0.0.0/24
기본 인터페이스( eth0
) 10.0.0.4
와 을 사용하는 보조 인터페이스( eth1
) 입니다 10.0.0.5
.
편집하다: 네트워크 라우팅을 이해하는 데 점점 익숙해지는 것 같은데, 또 다른 오류가 발생합니다.
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
>> sudo ip netns exec 001 ip addr add 10.0.0.5/24 dev eth1
의 기본 게이트웨이는 eth0
이므로 동일한 가상 네트워크를 공유하므로 의 기본 게이트웨이를 동일한 주소로 10.0.0.1
설정한다고 가정했습니다 .eth1
>> sudo ip netns exec 001 ip route add default via 10.0.0.1 dev eth1
Error: Nexthop has invalid gateway.