Thursday, November 21, 2024

Cài đặt IP Address cho Ubuntu

-

Cách dễ nhất và được đề xuất là gán địa chỉ IP tĩnh cho thiết bị trong mạng LAN của bạn. Bắt đầu từ bản phát hành 17.10, Netplan là công cụ quản lý mạng mặc định trên Ubuntu, thay thế cho file cấu hình /etc/network/interfaces trước đây.

Netplan sử dụng các file cấu hình theo cú pháp YAML. Để định cấu hình giao diện mạng với Netplan, bạn cần tạo mô tả YAML cho interface đó và Netplan sẽ tạo các file cấu hình cần thiết cho công cụ kết xuất mà bạn đã chọn.

Netplan hiện hỗ trợ NetworkManager và Systemd-networkd. NetworkManager chủ yếu được sử dụng trên các máy tính để bàn trong khi Systemd-networkd được sử dụng trên các máy chủ không có giao diện.

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:ad:c7:0f brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:50:56:ad:e9:08 brd ff:ff:ff:ff:ff:ff

Các file cấu hình Netplan được lưu trữ trong thư mục /etc/netplan và có phần mở rộng là đuôi file yaml. Có thể bạn sẽ tìm thấy một hoặc hai file YAML trong thư mục này. Mỗi server sẽ có các thiết lập có thể khác với các server khác. Thông thường, file được đặt tên là 01-netcfg.yaml, 50-cloud-init.yaml, hoặc NN_interfaceName.yaml, nhưng trong hệ thống của bạn, nó có thể khác.

1. Access vlan.

Hãy mở file cấu hình YAML.

vi /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        ens192:
            addresses:
            - 192.168.13.225/23
            dhcp4: no
            gateway4: 192.168.12.5
            nameservers:
                addresses:
                - 8.8.8.8
        ens224:
            addresses:
            - 192.168.13.242/23
            dhcp4: no
            nameservers:
                addresses:
                - 8.8.8.8
    version: 2

Hoặc các bạn có thể sử dụng cấu hình này thay cho cấu hình trên để cài đặt gateway cũng được.

network:
  version: 2
  renderer: networkd

  ethernets:
    ens224:
      addresses:
        - 192.168.13.242/23
      dhcp4: no
      nameservers:
        addresses:
          - 8.8.8.8

    ens192:
      dhcp4: false
      dhcp6: false 
      addresses: [192.168.13.225/23]
      # gateway4 is deprecated, use routes instead
      routes:
      - to: default
        via: 192.168.12.5
        metric: 100
        on-link: true
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8]

Trước khi thay đổi cấu hình, hãy giải thích ngắn gọn về mã.

Mỗi file Yaml bắt đầu bằng network khóa có ít nhất hai phần tử bắt buộc. Yếu tố bắt buộc đầu tiên là phiên bản của định dạng cấu hình mạng và yếu tố thứ hai là loại thiết bị. Loại thiết bị có thể là ethernets, bonds, bridges, hoặc vlans.

Trong phần loại thiết bị (trong trường hợp này là ethernets), bạn có thể chỉ định một hoặc nhiều interface, trong ví dụ này mình chỉ sử dụng 2 interface ens192 và ens224.

Để gán địa chỉ IP tĩnh cho ens192 và ens224, hãy chỉnh sửa file như sau:

  • Đặt DHCP thành dhcp4: no.
  • Chỉ định địa chỉ IP tĩnh 192.168.13.225/23 và 192.168.13.242/23 tương ứng với file cấu hình ở trên. Bên dưới addresses bạn có thể thêm một hoặc nhiều địa chỉ IP IPv4 hoặc IPv6 sẽ được gán cho interface.
  • Chỉ định gateway4: 192.168.12.5 với ens192, còn ens224 mình không dùng gateway nên mình bỏ qua phần này.
  • Trong nameservers cho phép bạn khai báo địa chỉ IP addresses của DNS [8.8.8.8, 1.1.1.1].
sudo netplan apply

Xác minh các thay đổi bằng cách gõ ip addr show dev ens224 đối với interface ens224 và ip addr show dev ens192 đối với interface ens192.

$ ip addr show dev ens224
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:ad:e9:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.242/23 brd 192.168.13.255 scope global ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fead:e908/64 scope link 
       valid_lft forever preferred_lft forever

Bạn đã gán thành công IP tĩnh cho server chạy Ubuntu của mình.

2. Vlan trunking.

Nếu bạn sử dụng trunking thì có thể sử dụng cấu hình bên dưới.

network:
    version: 2
    ethernets:
        ens33: {}

        ens37:
            addresses:
            - 192.168.1.21/24
    vlans:
        vlan.101:
            id: 101
            link: ens33
            addresses: [10.0.101.1/24]
            gateway4: 10.0.101.254
            nameservers:
                addresses: [8.8.8.8]
        vlan.102:
            id: 102
            link: ens33
            addresses: [10.0.102.1/24]

Sau khi netplan apply, bạn sẽ thấy interface được tag thêm vlanid và được gán ip tương ứng như bạn đã khai báo.

$ ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:18:95:5e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff:fe18:955e/64 scope link
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:18:95:68 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.21/24 brd 192.168.1.255 scope global ens37
       valid_lft forever preferred_lft forever
    inet6 2001:ee0:4f86:10a0:20c:29ff:fe18:9568/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 2591988sec preferred_lft 604788sec
    inet6 fe80::20c:29ff:fe18:9568/64 scope link
       valid_lft forever preferred_lft forever
4: vlan.101@ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:18:95:5e brd ff:ff:ff:ff:ff:ff
    inet 10.0.101.1/24 brd 10.0.101.255 scope global vlan.101
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe18:955e/64 scope link
       valid_lft forever preferred_lft forever
5: vlan.102@ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:18:95:5e brd ff:ff:ff:ff:ff:ff
    inet 10.0.102.1/24 brd 10.0.102.255 scope global vlan.102
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe18:955e/64 scope link
       valid_lft forever preferred_lft forever

Mình gán gateway cho các vlanid tương ứng như bảng route table sau.

$ ip r
default via 10.0.101.254 dev vlan.101 proto static
10.0.101.0/24 dev vlan.101 proto kernel scope link src 10.0.101.1
10.0.102.0/24 dev vlan.102 proto kernel scope link src 10.0.102.1
192.168.1.0/24 dev ens37 proto kernel scope link src 192.168.1.21

Tiến hành kiểm tra kết nối, ta có kết quả như dưới.

$ ping 10.0.101.254
PING 10.0.101.254 (10.0.101.254) 56(84) bytes of data.
64 bytes from 10.0.101.254: icmp_seq=1 ttl=255 time=0.774 ms
64 bytes from 10.0.101.254: icmp_seq=2 ttl=255 time=0.930 ms
64 bytes from 10.0.101.254: icmp_seq=3 ttl=255 time=0.831 ms
64 bytes from 10.0.101.254: icmp_seq=4 ttl=255 time=1.20 ms

--- 10.0.101.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3023ms
rtt min/avg/max/mdev = 0.774/0.935/1.207/0.169 ms

$ ping 10.0.102.254
PING 10.0.102.254 (10.0.102.254) 56(84) bytes of data.
64 bytes from 10.0.102.254: icmp_seq=1 ttl=255 time=0.896 ms
64 bytes from 10.0.102.254: icmp_seq=2 ttl=255 time=0.807 ms
64 bytes from 10.0.102.254: icmp_seq=3 ttl=255 time=0.693 ms
64 bytes from 10.0.102.254: icmp_seq=4 ttl=255 time=0.744 ms

--- 10.0.102.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3008ms
rtt min/avg/max/mdev = 0.693/0.785/0.896/0.075 ms

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories