Почему мой интерфейс vlan в пространстве имен сети linux не может пропинговать родительский интерфейс?

Поэтому я пишу программу, которая изолирует себя от пространств имен, но я застрял на том, чтобы заставить сеть работать так, как я хочу. Я планирую направить свое приложение через Tor, который является прокси-сервером Socks5, который предоставляет SocksPort на сетевом интерфейсе.

Мое приложение должно работать, когда оно уже изолировано виртуальными машинами и маршрутизацией только на хосте, при этом Tor на хосте должен сказать vboxnet1 (192.168.56.1:9051), eth0 внутри виртуальной машины - (192.168.56.101), тогда у меня есть сетевое пространство имен. Из-за этого я не могу просто использовать пару веток и привязывать Tor к ветке в родительском пространстве имен, потому что Tor даже не находится на виртуальной машине. В конечном счете, мне нужно получить соединение с SocksPort 192.168.56.1:9051 из пространства имен через eth0 (192.168.56.101) в родительском пространстве имен. Однако решение, которое я использую, также должно работать, когда я не на виртуальной машине и когда Tor находится в родительском пространстве имен (в отличие от хоста виртуальной машины с родительским пространством имен).

Это лишь некоторая предыстория того, почему ветеринарные пары и тому подобное не будут работать для меня, и в целом, что я пытаюсь сделать, мой вопрос более конкретен;

Я следовал за руководством по следующей ссылке: http://blog.scottlowe.org/2014/03/21/a-follow-up-on-linux-network-namespaces/

в Linux 3.16

Я сделаю это прямо сейчас и покажу точные команды, которые я печатаю:

ip netns добавить синий

ip link добавить ссылку eth0 имя eth0.100 тип vlan id 100

в этот момент "ip -d link" показывает следующее (с отредактированным MAC);

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether promiscuity 0 

352: eth0.100@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> 

ip link set eth0.100 netns синий

Я отмечаю, что ссылка ip -d из синего пространства имен имеет следующий вывод

ip netns exec blue ip -d ссылка

1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 

352: eth0.100@if2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
    promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> 

Обратите внимание, что сейчас это eth0.100@if2, а не @eth0, я не уверен, что это актуально.

Я поднимаю loopback, которого на самом деле нет в руководстве, которое я упоминал, но я считаю, что это необходимо:

ip netns exec blue ip link set dev lo up

ip netns exec blue ip addr add 192.168.56.102/24 dev eth0.100

ip netns exec blue ip link set eth0.100 up

ip netns exec blue ifconfig показывает это сейчас (слегка отредактировано)

eth0.100  Link encap:Ethernet   
          inet addr:192.168.56.102  Bcast:0.0.0.0  Mask:255.255.255.0
          Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:5598 (5.5 KB)

из родительского пространства имен, если показывает ifconfig

eth0      Link encap:Ethernet  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0

Но потом, когда я пытаюсь пинговать из пространства имен, как указано в руководстве;

ip netns exec blue ping -c 4 192.168.56.101

PING 192.168.56.101 (192.168.56.101) 56 (84) байт данных.

С 192.168.56.102 icmp_seq=1 целевой хост недоступен

Это всегда недоступно, то же самое, если я пытаюсь 192.168.56.1, который, в конечном счете, и является тем, к чему я хочу подключиться (это vboxnet на хосте, на который можно перенаправить из eth0 в vm, но я не могу даже маршрут к eth0 из пространства имен, даже с добавлением интерфейса vlan в пространство имен).

спасибо за любую помощь, которую я пытался сделать это часами, и я почти исчерпал каждый ресурс.

0 ответов

Другие вопросы по тегам