I've to connect to a service running inside a runc
container, I've written the below script and is able to ping the container from the host and can connect to the internet from inside the container.
But I'm unable to ping the container from another host.
bridge_setup.sh
#!/bin/bash
sudo brctl addbr br0
sudo ip addr add 192.1xx.xxx.xx/24 dev br0
sudo ip link set br0 up
net_setup.sh
bridge_name=br0
net_interface=alpine_network
cont_ip=192.1xx.xxx.xx
veth_host=veth_host
veth_guest=veth_guest
sudo ip link add $veth_host type veth peer name $veth_guest
sudo ip link set $veth_host up
sudo brctl addif $bridge_name $veth_host
sudo ip netns add $net_interface
sudo ip link set $veth_guest netns $net_interface
sudo ip netns exec $net_interface ip link set $veth_guest name eth1
sudo ip netns exec $net_interface ip addr add $cont_ip/24 dev eth1
sudo ip netns exec $net_interface ip link set eth1 up
ip netns exec $net_interface ip route add default via 192.168.20.1 #bridge ip as a deafult gateway
sudo iptables -t nat -A POSTROUTING -s 192.1xx.xxx.xx/24 -j MASQUERADE #connecting to the internet
sudo sysctl -w net.ipv4.ip_forward=1