On Mon, Apr 25, 2022 at 7:52 AM Marcos Dione via discuss
<ovs-discuss@openvswitch.org> wrote:
>
>
>         Hi, I'm new here, so be patient with me. In fact, I don't know much 
> of OVN/OVS
> because I'm actually using it through LXD. I can follow much of what LXD 
> builds for me
> at a high level, but I need something LXD doesn't provide and this led me 
> here.
>
>         LXD can create containers with arbitrary NICs and attach them to 
> networks. The
> networks I create are now running on top of OVN and OVS; they consist of a 
> switch and a
> router. These networks are completely isolated, which is good, but I need at 
> least one
> of them to do the following:
>
> * Provide DHCP so one of the interfaces in the containers can get its IP from 
> it.
> * Provide internet access to the containers.
> * Provide an upstream DNS server to the containers.
>
>         This used to be provided by LXD with a linux bridge and dnsmasq 
> running on it,
> butr LXD does not do this for OVN networks, so I have to do it myself.
>
>         In my head, this sounds quite easy: create a new port on the switch, 
> and
> somehow connect an interface on the host to that switch and just run dnsmasq 
> on it. Let's
> look at what I did to accomplish the former:
>
>
> --- 8< ---
> # I get the switch's UUID; LXD does not create them with nice names :(
> sudo ovn-nbctl lsp-add $switch_uuid lxd-provision
> sudo ovn-nbctl lsp-set-addresses lxd-provision dynamic
>
> # then I get the MAC addr and IPv4 addr
>
> # I don't know why I have to do the following step
> sudo ovs-vsctl add-port br-int lxd-provision -- \
>      set interface lxd-provision type=internal mac="[\"${mac_addr}\"]" \
>      external_ids:iface-id=lxd-provision
>
> # that created an interface on the host, we have to assing the same IP to it
> sudo ip address add ${ipv4}/24 dev lxd-provision
>
> sudo ip link set lxd-provision up
> --- >8 ---
>
>
>         That works, meaning that if I configure the container and the host 
> properly (routes,
> forwarding, masquerading), I can ping from the container to say 1.1.1.1. My 
> first set of
> questions is:
>
>         Is this OK, or is it as hacky as it sounds to me?
>
>         Why do I have to go all the way down to OVS to create (another?) port 
> with the same
> MAC addr than the port I created at the OVN level? And similarly, why do I 
> have to assign
> the _same_ IP to the external interface on the host?

OVN does not create interfaces, it sets up interfaces created
elsewhere. (e.g. by your CMS, cloud / container management system).
When you create a ovs port, you establish a link between the ovs port
and OVN port entity in db through the external_ids:iface-id attribute.

>
>         LXD uses OVN's DHCP server to provide that initial IP, with these 
> params:
>
> $ sudo ovn-nbctl dhcp-options-get-options 22646e19-d7d8-4917-9a55-48b2cf329b1e
> server_mac=00:16:3e:e9:5f:fc
> router=10.138.38.1                <-- change to 10.138.38.2
> server_id=10.138.38.1
> mtu=1442
> domain_name="lxd"
> lease_time=3600
>
>         10.138.38.1 is the IP of the router I barely mentioned in the second 
> paragraph.
> Meanwhile the interface I just crated has IP 10.138.38.2, so I either want 
> this DHCP server
> to be off and replace it with dnsmasq, or I can live with this server as long 
> as I can
> configure it so the router and DNS server options can be changed so they 
> point to the dnsmasq
> running on my host. But once I change at least that highlighted option (yes, 
> I know I have
> to re-set all the options in one go), DHCP stops working. That leads me to 
> the second (set of)
> questions:
>
>         Where it the documentation for the capabilities of this DHCP server;

You can check ovn-nb(5), e.g. here:
https://man7.org/linux/man-pages/man5/ovn-nb.5.html

Search for "IPv4 DHCP Options". This will allow you to set router and
dns_server options for native DHCPv4 replies.

>
>         Or can you tell me what I'm doing wrong here?
>
>         I hope you got all the way down here. Thanks for listening. Cheers,
>
>                 -- Marcos.
>
> --
> Marcos Dione | Engineering EMEA - Installer
> Phone: +33 6 24 21 59 91
> Zoom: 261-124-4701
> https://cloudian.com/
> _______________________________________________
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to