Если я запустил веб-сервер в пространстве имен по умолчанию SERVER
машина я могу curl
это из REMOTE
машина делает это:
curl http://SERVER:80/
Теперь я помещаю веб-сервер в пространство имен nested
с предоставлением veth
всматривался в nested's
сетевой интерфейс:
sudo ip link add veth type veth peer name vpeer
sudo ip link set vpeer netns nested
sudo ip addr add 192.168.3.77/24 dev veth
sudo ip link set veth up
sudo ip netns exec nested ip addr add 192.168.3.78/24 dev vpeer
sudo ip netns exec nested ip link set vpeer up
sudo ip netns exec nested ip route add default via 192.168.3.77
поэтому я могу пропинговать его из пространства имен по умолчанию:
curl --interface veth 192.168.3.78:80/
Мой вопрос: как пинговать веб-сервер в nested
пространство имен с удаленной машины? Кажется, что curl http://SERVER:80/
становится к lo
интерфейс. Могу ли я направить внешние запросы на veth
интерфейс или как настроить сопряжение?
192.168.3.78
). Настройка маршрутизации зависит от многих факторов.net.ipv4.ip_forward
должно быть 1
).veth
и интерфейсы LAN. В результате у вас должен быть успешный эхо-запрос между удаленным хостом и вложенным пространством имен.SERVER
доменное имя указывает на один из локальных IP-адресов, вы должны использовать DNAT
target для перенаправления запроса в пространство имен netsted:iptables -t nat -I PREROUTING -p tcp --dport 80 --dst <orig-ip> -j DNAT --to 192.168.3.78
iptables -t nat -I OUTPUT -p tcp --dport 80 --dst <orig-ip> -j DNAT --to 192.168.3.78